From her early start with Extreme Programming to learning how to integrate testing with Continous Delivery, we explore Leena’s story and describe some of the most important lessons she collected about adopting CD/CI.
Read on to learn what were Leena’s main lessons, as well as the main challenges teams face when adopting CD/CI.
Stop using branches, use Feature Toggles instead
One of the major worries teams have about adopting CD is how long it takes to develop a new feature to the level of quality that allows its deployment to paying customers. As Leena started her journey of adoption she started learning about different techniques, and one that she highlights is Feature Toggles, a technique that allows you to de-couple release from deployment. You can always release the latest version, but only deploy the feature once it is ready for customer use.
From that technique, we obtain one of the important aspects of CD/CI, the ability to always work on “master”, the single branch in your version control system that allows for the latest version of the software to be always in test.
Learn to monitor in real-time, stop being afraid of releasing
Even if we continuously test our software, the fact is that once released, there will be surprises. Maybe it is because of unintended uses of the software, but it could also be about facing environments where the software isn’t fully tested in. To remove the fear of releasing broken software, we must be ready to recover from failure quickly. Leena shares her lessons learned about monitoring software in production. When using CD/CI, monitoring becomes a critical feature of the software we release.
Leena shares the story of a hospital, deploying Android tablets for patient care and information, and how they were able to keep tabs on how the devices were being used and ensured they were always in working order by using monitoring and other software features.
The main challenges teams face when adopting Continuous Delivery
Next, with Leena, we dive into the problems, and challenges that teams face when adopting CD/CI. As you’d expect, there are many and some have easier solutions than others. We list the following (and discuss some of the solutions):
- How to always push to master?
- How to understand the deployment pipeline?
- How much is enough test coverage?
- What level of deployment automation is needed and sufficient?
- What are the critical silos to break?
- The first steps for teams wanting to get started
Resources to help you adopt Continuous Delivery / Continuous Integration
In this episode, we list the following resources to help you dive deeper into Continuous Delivery:
- The book Continuous Delivery by Jez Humble and Dave Farley. Dave Farley was a guest on the podcast on CD/CI.
- The Phoenix Project by Gene Kim at al., a business novel based on The Goal, but specific to the IT world.
- The Unicorn Project, a follow-up book to The Phoenix Project by Gene Kim.
- Building Evolutionary Architectures: Support Constant Change, by Neal Ford, Rebecca Parsons and Patrick Kua.
Happy Learning!
About Leena N
Leena is the Co-founder/CTO @ Good Karma, Bangalore, India. She is a strong believer of lean principles for delivering software and an evangelist and practitioner of Continuous delivery. CD is there to ensure that the software can be reliably released at any time helping the business to get faster feedback from the market.
You can link with Leena N on LinkedIn and connect with Leena N on Twitter.
Read more about Continuous Delivery from Leena N at Medium.