In my last article, I wrote about what Continuous Delivery is and it's advantages and disadvantages. This time I'll be discussing how the Continuous Delivery process can co-exist with Agile methodologies. Continuous Delivery is a defined process that can sometimes conflict with traditional Agile practices - one of these conflicts is iteration completion. Many organizations develop software in slices or iterations. Each iteration is usually defined by some boundary or milestone. When the team achieves this milestone, work is halted and the focus shifts to the next development phase which is usually preparing the iteration for release. With Continuous Delivery, iterations are no longer a rule and no additional work is required in testing and releasing the software. This means 'work in progress' items can be deemed releasable.
This conflict in definition doesn't necessarily mean that they can't both work. Traditionally, Agile has suggested iterations be completed in either a time-boxed manner or through some milestone or component completion. Although these constraints are viewed as arbitrary in Continuous Delivery, teams can still require all work to be completed within narrower iteration boundaries even though it may slow down the overall development process.
Continuous Delivery should be viewed as an alternative deployment method rather than a completely different process from what Agile offers. By using Continuous Delivery within your Agile processes you're able to mitigate deployment issues, provide software releases with minimal risk, and improve the quality of the software by tackling bug fixes sooner rather than later.
Want to Learn More?
This is just a sample of what we can do. We have 15 years of experience working in nearly every technology and industry. Whatever you are doing, we've done it and are prepared to tackle your project. Reach out and we will discuss it with you.