Watch or listen to this episode:
Summary and Resources
You probably know you need to use Continuous Delivery to release software to your customers.
There's much confusion in the market around Continuous Delivery. How does it relate to Agile Development? How does it relate to DevOps?
In this video, I'll demystify Continuous Delivery by helping you understand the big picture. It's a capability - not a technology.
The key innovation is reducing your cycle time. This is the length of time from when the business or customer has an idea, until it's available to users. To reduce cycle time, we often need to use automation technologies so less manual work is done between releases of our products.
Operations personnel, in a traditional software company, are the keepers of production and have the keys to that environment. These folks are typically motivated by keeping the system stable, since they are measured on uptime and performance as examples.
Developers are often measured on their ability to introduce change, and so their motivations are often at odds with operations.
DevOps is about bringing these two disciplines together to overcome this psychological barrier so companies can truly be more agile. In a lean company, that's delivering software frequently to its customer for feedback - automation may not be necessary however.
You can achieve continuous delivery for a small product or project through manual deployment - assuming the appropriate quality checks and process are in place. The most important thing about continuous delivery is reducing cycle time, so whatever you need to do to achieve that is getting you closer to that capability.
Try not to get caught up too much in whether your team is using the right technologies to achieve continuous delivery. It's about cycle time - period.
If you are in software product management, understand that this capability is what will help your team deliver software in a lean fashion. This capability is a necessary practice if you wish to get feedback from your customers in a fast enough time to take action on it.
One of the most common aspects of releasing a software product that increases cycle time is automated testing. You don't need to do test driven development (write the tests before the code), but you absolutely must have whatever tests /are/ written be AUTOMATED.
Is your team having any challenges with seeing the big picture behind continuous delivery? Leave me a comment below.