Culture of Continuous Delivery
“Release Early, Release Often” is the key for building the right thing and Continuous Delivery helps you to achieve the same. Its been rightly written in the Agile Manifesto as the first principle i.e. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. But many miss the big picture i.e. “Continuous Delivery as a mindset”, with the practices that it suggests. This talk is about “why” continuous delivery and “how” to achieve the same.
It does not matter what a good design or architecture you’ve, at the end of the day what matters is whether the code is ready for production. Most developers miss the big picture i.e. improving value stream for customers. The talk is about how to help the teams keep in mind the “big picture” during their day to day activities. In my opinion Continuous Delivery is building the culture of improving the value stream which in turn is improving the frequency in which the value gets delivered to the customers. This involves a major cultural change in the entire life cycle of delivery:
- Planning and developing in small chunks, which helps us to deliberately discover risks, both at the product level and at the technical level
- Be very persistent to create a Repeatable and reliable delivery process with automated tests and deployments
- Disciplined to be alert by listening to the feedback systems to react when problems are found
The major challenge for Continuous Delivery is building a highly collaborative devs and ops teams. The same is referred as DevOps where Devs are referred as the team responsible for delivering and Ops referred as people involved for decision making which usually is the business people.
At a very high level, the structure of the presentation would be as follows:
- Why Continuous Delivery is important
- What are the initial steps to be taken towards creating a culture for Continuous Delivery
- What are the practices to be followed for Continuous Delivery
- Overview of tools [mainly opensource]
The talk will also touch upon my experience on implementing Continuous Delivery for both Web Applications and Mobile Apps. Web applications are somewhat straight forward, but Mobile apps have some challenges as the deployment process is different, but still very much possible.
The intended audience is anyone who is involved in software delivery i.e. anyone who comes under DevOps where Devs can be programmers, testers, analysts etc and Ops people are mainly the decision making people. A high collaboration among the above Devs and Ops are required for implementing the Continuous Delivery.
I’ve also done TDD workshops during DroidCon 2013 and Angular JS MiniConf 2014.
- I will be giving the same talk in RailsConf. http://www.railsconf.com/program