Does the continuous delivery cycle of Agile seem like an exciting or scary prospect? For those that come from the traditional, waterfall approach to project management and software design, continuous delivery might be a little intimidating.
A couple of weeks ago we published a post on the Agile Manifesto. We highlighted not only the values but also the twelve guiding principles that underpin the Manifesto. The first of these principles reads as follows:
Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.
Think about those words. That continuous delivery is the highest priority of Agile software development says enough to me – we should be paying attention to this concept.
So it sounds very simple – deliver continuously. But taken literally, this could lead to chaos. Even a very short delivery schedule can be well-planned and carefully orchestrated using the proper approaches. In this post, we’ll explore the key enablers to continuous delivery. As a reference, we’ll look to some of the principles from Jez Humble, co-author of Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation.
At Agile Alliance 2012, Jez opened up his session on continuous delivery by noting three key enablers to continuous delivery.
Automation – where possible, automation needs to be built into the process. This might look like automated testing tools or automated software build and release management. Without some level of automation in the process, the
Patterns and Practices – this is the process part. The environment needs to be well-defined up front so that everyone knows where the current development code, testable code, and released code resides. Testers should know when and where they are to test. The product and Scrum backlog both need to be highly visible and understood by all. The time box needs to be defined, understood by all, and adhered to. The development team needs to work in close proximity to one another. And on and on. Without established patterns and well-known practices, continuous delivery will suffer.
Collaboration – continuous delivery will be an utter failure without widespread collaboration. Should just one member of the team operate in a vacuum, the current iteration and even the entire project could come to a screeching halt. The breadth of the collaborative efforts extends to everyone – developers, testers and the QA team, and operations staff.
In our next post, we’ll look at the three secret ingredients that Jez proposes to support these enablers. In the meantime, which of the key enablers does your team struggle with? Do you wish to move closer to a continuous delivery cycle but find that something always seems to go wrong? Let Braintrust Consulting Group help you find and fix the underlying problems. With our experienced team of Scrum coaches, Braintrust can help you overcome these barriers and restore the flow of continuous delivery to your shop. Click on the Contact page to hear from one of our product specialists. Or, head over to the Services tab to find out more about our offerings.