I like Continuous Delivery (CD), as I’ve said before I believe it is the only way for organisations to keep up with their competitors, or ideally stay ahead of them! The rapidly changing world hasn’t got time to wait for updates; people want quality updates regularly. Gone are the days of 10 years ago where customers would wait months to see changes they’ve paid for. Expectations have changed drastically, without CD companies will fall behind, then be left behind!
This really isn’t anything new, companies are adopting CD, many have been doing it for years. But, as with most things, we sometimes lose focus and drift away from original paths. This doesn’t have to be a negative, when we find an easier way to do something, we tend to do it without thinking on the greater impact. Watching Steve Smith’s presentation – InfoQ: The Death of Continuous Integration – made me think how relevant this is.
My background has been in SVN development, I’ve only started using Git recently. It doesn’t take long to see that branches are a core concept with Git, it becomes very easy for developers to create them. I can see many developers using feature branches without much thought to Continuous Integration (CI) practices. The branches are used until the feature is complete, only pushing to master as the final step. Having been through CD kick-offs and having many talks about the principles of CI & CD it’s worrying when a few drift away so quickly.
Steve mentioned it in his talk, and it should not be forgotten, that trunk based development is a “steep learning curve”. On the whole, CI and CD principles are quite simple, but having complete adoption in development teams is a challenge. Obviously getting buy-in from senior management is a big step, but this unfortunately is only half the battle. I’ve found that the other half of the battle is mindset!
The mindset change can never be overstated, for all stakeholders! For developers though this can mean changing habits that have been ingrained for years, even those who are doing ‘agile’! You can talk about daily check-in’s to master, automated testing, feature toggles, branch by abstraction until you’re blue in the face but it comes down to the individuals to want to change their approach to development.
Understanding the value of CD should be enough for individuals to want to change. As Steve shows in the presentation with HP, less time firefighting, more time for innovation – need I say more?! It’s not about moving away from Git, it doesn’t matter which version control system is used, it’s about how it is used. Any team can be committed to CI & CD, but unfortunately it only takes one person to decide differently and the process breaks down. I fear it will be an ongoing battle, but it’s an important one needs regular attention!
Another essential part is to include this in your hiring process! Do you currently ask candidates on their experience/thoughts on CI/CD? If not, I would recommend starting. Do they know the basic principles of CI and CD? Do they know what a deployment pipeline is? Are they aware of the differences between Continuous Delivery and Continuous Deployment? There are many other questions, the point is to hire people for your teams with the right mindset for CD, otherwise it could be a uphill battle. Growing teams with people who are passionate about CI & CD can make a big difference.
Steve Smith is one of the organisers of the PIPELINE, a Continuous Delivery conference. I went last year and will be going again to this year’s in a few weeks. It’s an excellent conference with good speakers covering very relevant topics. I highly recommend it whether you’re practicing CD or not!