This is anything around CI/CD
The goal of CD is to be able to release software frequently,
and reliably, in a frictionless manner.
By Daniel Horton
“By now it should be clear that the only way to create value is to release. Testing your products against the marketplace is crucial for the agility of your organization,“ Don McGreal wrote in his book “The professional product owner.” An organization’s ability to release features to its customer base in a fast and reliable manner is a differentiator that we see in many industries. It is the difference between being the top company or the runner up.
Each client I meet has the same problem. They are inundated with manual processes, procedures, and habits that have built up over years. The statement “it’s just how we do it” is often used. However, these habits are the reason they cannot move forward. The focus is too much on the deliverable and less on the process of delivering. Thoughtworks Studios sums it up well in a white paper on agile release management.
“Many organizations have a release process that takes hours or days. Why is this so? The most common reason is that releasing new versions of software is predominantly a manual process that involves changes to many separate systems. Operating systems, infrastructure, and middleware must be configured, and their state verified.”
Manual processes increase the percentage of errors. Coordination becomes more difficult, and the correct procedures are normally not written down for teams to follow. Everything is done based on experience and memory. Additionally:
“Another major contributory factor to painful releases is poor collaboration between the people involved in delivering software. Developers, testers, DBAs, operations staff, and managers all need to work together from the beginning of every project to ensure its success. Instead, it is typical to see developers throwing work over the wall to testers, testers entering bugs into defect systems rather than working with developers to fix them, and the operations team trying to deploy software that is not production ready, and in many cases, hasn’t even been tested in a production- like environment.”
Many of these issues can be reduced and even eliminated with a clear focus on release management, automation, and communication. Start small and focus on a vertical slice that cuts through everything. Add metrics to show the benefits of your changes and your on the right path for success.