My Continuous Delivery Moment
This is a re-post of some content I originally wrote on my personal blog. Having been involved in discussions around doing a similar thing with my current client and meeting resistance, I felt it timely to repost.
The original post goes as follows…
So, I had a moment at work the other day. I was left shocked. Something I’ve dreamed about, talked about and often ranted about for almost two years, I actually saw with my own eyes!
What, prey tell, am I on about?
Cast your minds back to 2014, that was two years ago. A lot can happen in that time. I spent most of 2014 writing a MSc dissertation on Continuous Delivery (CD) at the same time as working for a large corporation full time as a software developer. My dissertation was an investigation into how modern software companies are shipping products more rapidly and changing the market place at a pace only Road Runner can dream of. Think of Netflix. Founded in 1997, began streaming in 2007 and now has an absolutely massive user base, and is working off an infrastructure that us geeks simply marvel at. How do they do it?
How do companies like Etsy, Netflix, IMVQ and many others, build software that many people want and give it to them so quickly? Well, there’s a myriad of answers and many of those answers happen to contain the words “Continuous” and “Delivery” (CD). So through my MSc research I started looking into this CD some more. Turns out, it’s actually quite handy.
I’d like to point out that I think CD is somewhat of an umbrella term for many things, and is much bigger than just the underlying technology and build pipelines etc. It’s a culture.
So, back to 2016 and my freeform waffle continues…
At my day job, because of learning all this cool CD stuff on the side, I convinced a couple of people to put some bits into practice. We couldn’t deploy all the way to production at first. But when we did, the business didn’t seem ready. Testers were left scratching their heads wondering where they fit in as code was moving through their environment without stopping to say “hey”. Problems arose like code shipping to production and then the pipeline breaking, causing us to have live failures and no ability to sort it happened regularly. It’s all a learning curve and we were at the bottom looking up, aspiring to greatness with a tool belt full of shiny Cloud-hosted Jenkins boxes and more Test Driven Development then we were capable of wielding. It was ace. I learned a lot. So massive props to that organisation for giving me that exposure.
However, while the technology was there, the culture wasn’t quite ready. People were still struggling to shake the Waterfall mindset and we were hiring more Managers and Analysts to determine new work for our small development teams faster then you could say “Feature File”. Every day, new people arrived to help manage. We had Project Managers, Product Managers, Business Analysts, Delivery Managers, Technical Managers and a small helping of Developers and Testers. Basically, more people managing the code then writing and shipping it. It got too much for me.
I left.
I was seduced by a smaller company still finding their Agile training wheels as they described it. I wanted to help. I felt this was my opportunity to apply some of what I’d learned to actually help an organisation grow, and they wanted to grow too. It was a great fit. I jumped at the chance. Plus they were based about ten minutes from my house, Jackpot!
When I joined they were in the midst of planning for releasing a revamped section of their site. Day One and I was presented a Gantt Chart that we were standing at the top of. “This is gonna be ace”, I thought! I genuinely did.
The Designers had done a desktop version of the site. Yet the business demanded Mobile and Tablet too. That left a bit of a gap for the Developers to fill in. No worries, they’re all smart people and after a bit of back and forth we got a design “signed off” — still only for desktop, but hey, we pressed on.
Aside: It’s funny how when you show people a picture of what their website might look like, everyone has an opinion. Yet, show them a banging Javascript API or some new Database Schema and they’re not that arsed.
Development began and a seasoned Business Analyst and I pushed to have the team deploy straight into production behind a hidden “Beta URL”, essentially bypassing the current deployment setup where each project has it’s own staging environment. Naturally this felt foreign to many of the current developers. We were talking about pushing straight into production every day for something that wasn’t finished. They were used to only pushing to production once every ticket on their Epic was fulfilled in an large feature branch ready to be merged. It was going to be quite a leap, but not incomprehensible.
We set about re-developing the new section of the site and started doing “dark launches” to our /beta/ address. It was pretty uneventful, dull in fact. Code was just moving from development to production without any hiccup.
What the Business Analyst then realised is that we could start filtering traffic off to this new version with an A/B test. The section was not feature complete though. But did it need to be? Maybe we’d done enough after the first page or two to bring the conversion rate up. Did we need to build everything we had on our roadmap? It raised a whole new set of questions which are so much nicer to answer than the usual: “When can we see it in production?”
My moment finally came; (“thank goodness!”, I hear you say…) when in a meeting with the project sponsor. Instead of showing her flats and staging environment code that existed on a developer’s laptop we were able to demo actual real live code. The pinnacle being when she was handed a mobile phone with the live site on. Her face lit up! The code we’d written and shipped was in her hands, and it was only a matter of a small routing change to push it user facing! It’d been less then a fortnight since development began and here we were showing her a product in the production environment!
This for me was a realisation, all the research, all the talk of dark launching, feature toggling, continually merging small pieces of work, designing in the browser, not on flat mock ups. IT WORKS, IT ACTUALLY WORKS.
She left the meeting having seen real, tangible progress, that she understood and had interacted with. She parted by saying “let’s switch it on, just for mobile, this weekend”. My boss was also at this meeting. He was a happy chappy too. His team, usually in the spotlight for slow delivery and borked releases were ahead of schedule and pleasing the rest of the business with a new strategy towards product development.
I know some of this doesn’t sound that great, or revolutionary. You may already be doing dark launching, feature toggling, deploying straight to live etc. etc. But for me, to see the joy on her face and know it was down to a new strategy which I am championing, was very rewarding. It’s the first time I’d seen a real user not take for granted the work of the development team and actually be really keen to press on. Her enthusiasm was infectious too. Other business stakeholders have been heaping praise on this method of working. It’s a great sign that we’re heading in the right direction, and that the changes we’re making will lead to greater things!
In summary, I’ve always wondered what doing Continuous Delivery / Lean / Agile would actually feel like. I guess this was it. The feeling of real actual progress in the hands of users and being able to confidently say “your feature is in the main codebase and we can put it live right now”. However, not to take away from this minor win. There is still plenty of room for improvement and many more tactics we can employ for larger gains. This was just a little lip whet into what we can achieve and it feels great.
Right, I’m done, thanks for reading. My advice to you if you’re banging the CD drum and no one is listening is, persist. Someone will, and when they do, it’ll be ace.
Many thanks to some people who’ve been there along the way for my CD journey: Keith, Pottsy, Al Jones, Rach, Will B, Rob M, Adam L, Martin W and Matt B.
Originally posted here: My Continuous Delivery Moment
Get in touch!
We're waiting to help you, so please drop us a line!