Continuous Delivery in the Real World
Limited Time Offer!
For Less Than the Cost of a Starbucks Coffee, Access All DevOpsSchool Videos on YouTube Unlimitedly.
Master DevOps, SRE, DevSecOps Skills!
Source:-devopsonline.co.uk
I feel appropriate to mention is that I do not blindly follow any particular methodology or rules for the sake of it. That may be down to the rebel in me always wanting to question, but in contrast, the professional in me always wants to understand the rationale for doing things in the way we do. Working very much in the âchange and transformationâ space itâs a trait that I think (my peers may be a better judge) has served me well.
To challenge and question if what we are doing is the best way to do it is no bad thing when we are ever striving to do less with more. Personally, I also find it adds far more value if you understand why you are embarking on whatever plans you have before looking at how you are going to do it. Then determine what it is you want to do. Now Iâm not claiming to have discovered a magic formula and Iâd imagine some of you might recall the teachings of Simon Sinekâs and recognise Why, How & What as the layers of the Golden Circle but it is a really simple way to evaluate and assess the things you are doing and if you should continue or change your tact. Itâs also key to remember that whatever you do the people involved will either make or break it.
Getting back to the point, Continuous Delivery is a term that seems to mean various different things depending on where your specialism lies. For me, I use the definition from Jez Humble and David Farleyâs book âContinuous Deliveryâ:Â
âthe ability to get changes of all typesâincluding new features, configuration changes, bug fixes and experimentsâinto production, or into the hands of users, safely and quickly in a sustainable way.â
I like this definition for a number of reasons but primarily I like that there is no reference to timings or technology. It is also derived from the first Agile Principle:
âOur highest priority is to satisfy the customer through early and continuous delivery of valuable softwareâ
Again, there is no mention of how frequently this should happen or how you do it only that customer satisfaction is important. One thing we cannot get away from though is that by its very definition Continuous Delivery is directly linked to Agile and its methodologies.
âDifferent stages of a journeyâ
As a term, I find that Continuous Delivery is often used interchangeably with Continuous Integration and Continuous Deployment. But to me, they are different stages of a journey. You need Continuous Integration to be able to Continuously Deliver and when youâre there you can progress to Continuously Deploying. Understanding this is key as the journey should focus on improving what you are doing and the quality with a view of simply getting better. The only benchmark you should focus on is the one you set and try to avoid making comparisons with some of the so-called âunicornâ companies that might be deploying 100 times a week.
So why bother starting on this journey? Well, there are some significant benefits to doing so. The key three, in my humble opinion, are:
Lower risk to live releases â This starts to open real confidence benefits. If you are consistently delivering without issue then youâll quickly find yourself in a good place.
Improved speed to market â Ah the possibilities! Some pretty big players in the software delivery world have made a business out of getting things in front of customers quickly. The quicker you can mobilise the quicker your chances of hitting those market gaps before your competitors.
Higher quality of delivery â Lower risks, better outputs all coupled with the above. Quicker feedback and a product improving rapidly again lend itself to being in a really strong position.
However, it is really important to first determine whether or not this is right for your organisation and your customers. If it isnât then is the investment worth it?
Highlighting unexpected points
Embarking on a never-ending search to âbeâ an organisation that âcontinuously deliversâ can highlight some things that you may not have expected initially and itâs important to be wary of those. Forewarned is forearmed after all! Youâll need to be conscious that this isnât a magic bullet, doing things quicker and more frequently will not fix all of your problems. In fact, itâs very likely to highlight some areas as being a bit worse than you expected. I like to look at it as a giant spotlight you shine on every aspect of your delivery cycle. Whether you want people to see it or not youâre going to. All you are really striving for is a constant commitment to discipline and build on that time after time again. Remain focused on your why and persevere even when it feels tough. The more you do something the better you get at it. But you only achieve this by constantly evaluating what you are doing and how it went then applying these findings the next time around. People are key and you have to create an environment that people feel comfortable being honest in.
Going back to the âwhy bother?â I started a couple of paragraphs ago though if youâre noticing some of the things listed below then youâre probably in a position that would benefit from a shakeup anyway, so why not do it in a way that encourages some elements of continuous delivery:
Large unmanaged (or lightly managed) âchange queuesâ
Implementation of change requires 6-12 month projects
Smaller changes pooled together as âprojectsâ
Distinct handovers between teams (dev, test, UAT, etc)
Complex release plans
Operational frustration at âslow ITâ â lack of trust
Disconnect between technical & operational
In my own experience, Iâve seen them all and ultimately, they have been improved by collaboratively adapting and changing ways of working. Sometimes you can do this with just individual teams or departments but the likelihood is your looking a real cultural shift spanning both top-down and bottom-up changes.
Why Continuous Delivery?
What originally inspired me to talk about this subject came down to working with a single organisation that had simply hit a point whereby it was going to struggle to do the right thing for its clients, usually some of the most vulnerable people in society, and the people involved knew something had to be done but struggled to find a solution. The changes made, looking back, were significant but very gradual and subtle although they felt pretty quick to implement to most. There was a lot of background work to make it seem that way. Iâm also talking about an organisation that had previously failed to implement Agile principles so there was a careful managing of ideology required. From this Iâve learned that itâs important to pick your battles and also pick your proving ground. Look at low-risk business areas to thoroughly test, iterate and improve your methods. Do this until youâre comfortable and can show real business benefit. You want to be in a position that almost makes it seem too simple to be true. Bring your business colleagues into the mix and engage them early. This process is as much about engagement and communications as it is anything else. Be prepared to coach, support and promote what you are doing and the people involved. Live it and breath it with them this isnât a process to be managed from afar.
Once you have a framework and your methodology defined against your why then look to formulate a structure that delivers what you need. This can be anything so long as it works! If it doesnât work then change it based on the recommendations and suggestions of those involved. Once youâve started to get a bit of consistency build-up and scale based on your ambition.
This isnât all straightforward though and you really do need to expect some negative outcomes, at least initially, and if youâre expecting them then you can avoid the knee jerk reaction of falling back to whatever process or ideology that wasnât working before â usually because itâs comfortable and, to be honest, usually because those pushing it arenât accountable! Expect a slow start and improvements to come gradually, you may even go backwards first but stay the course and trust the people.
Taking a deeper look
NowâŚ. When talking about this and actually saying these words out loud one thing really resonated, and this goes back to the definition of continuous delivery I started out with, a lot of what I mentioned can be covered off with implementing some form of Agile. What I discovered was that this often fell a bit short and stopped at the point when a sprint ended and a âdeliveryâ team handed over, what is known in the trade, as a shippable increment. A handoff lends itself to just ticking boxes and not focusing on the reason why you are working in this style. Looking back to the most recent occasion of applying this to an organisation I found that there were issues in quite a few areas that just reinforced a mentality of handing over something so it was someone elseâs problem. To combat that we looked holistically at the entire delivery pipeline and actually re-engineered the environments model, team structures, release strategy, and delivery cycles. In that particular organisation it was also necessary to implement an overarching function whose responsibility was to effectively keep the cogs turning, planning, coaching and maintain the standards that underpinned this methodology. This goes back to one of my earlier points of ensuring what you are doing is right for where you are and not blindly following a methodology for the sake of it.
Whilst this wasnât a quick process and could be likened to the turning of freight ship it was hugely beneficial to do. By improving the standards and the processes around delivery and actually creating a repeatable, scalable framework it also lay the foundations to really kick start some grander ambitions. At the point of starting on this journey the organisation I was helping was delivering around five or six large big-bang projects per year (sometimes more sometimes less) with a huge resourcing overhead and nervousness around releasing to live. After the move to a model that supports continuous delivery, the number of live releases dramatically increased, in the first 6 months of the year well over a hundred live releases had happened, with little to no impact on operational systems. The right people in the right place doing the right things for the right reasons (did I say right enough?!). Not only that the increase in speed with no loss in quality, in fact, but quality also improved, putting it simply â by doing more we had more feedback to act on and by acting on it we had better engagement and ultimately better products.
If you are just beginning on embarking on this journey then I wish you luck. If youâre midway through your journey then I hope itâs going well. But if youâve finished your journey and are now a âcontinuous deliveryâ organisation, are you sure?
On a personal note, Iâd love you to hear about your experience and what youâre doing, how itâs going, the challenges youâve hit and overcome. So, feel free to get in touch.