How to genuinely become faster and cheaper but without jeopardising the quality of your products. Keep your business happy by returning investment in the fastest possible way.
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Editor's Notes
Contents
What am I trying to achieve?
What are the benefits?
The Challenges…
Where do I start?
Improving the speed of the pipeline (route) to live enables your business to deliver more incremental deliverables in the shortest possible time, therefore making reducing total product ownership by releasing more features than before
Software factories – allow for a high degree of variance, standardization is the enemy but its also your best friend. Stop looking to standardise your code and focus on standardising your testing around that exercise your builds
Business alignment cannot be measured by continuous integration and unit testing alone
Your business value realisation can only occur once your code is live, if you measure one metric, make sure it’s the one that say ‘I’m alive’
A common problem – the dreaded double funnel
Though many have drawn up double funnel models, a few days back whilst talking with Dan Brown (aka Kanban Dan) about constraints and Kanban, we modified his double funnel diagram by adding in a vice with the initial applying forces of Command & Control and as these forces are applied the blame force grows exponentially.
The incoming funnel is the constraint the business places on the delivery (fixed scope, time and cost – even worse they may dictate the actual solution as apposed to presenting IT with the problem), the middle part is the teams attempting to run in an Agile fashion (iterations, test driven, etc…) and the outgoing funnel is the release train (rigid schedules, manual releases, over importance placed on documentation, etc…).
What affect does this have? Ultimately it festers a blame culture (without naming companies, I have seen this in two companies I have worked for). The business places unrealistic expectations on the IT function and the limited release mechanism limits their ability to get features to market (this creating an image of a slow IT function).
The business will complain that IT cannot meet its expectations and the release team will be Teflon and point the finger back at the delivery team (and often because they are doing butchered Agile they’ll say its the teams responsibility even though they place release constraints on the team; responsibility but side stepping accountability by the release team).
- Pics of vice and funnels amend image
What are the benefits
Small incremental changes, easy to understand granular change impacts and measure their value
Increased turn around time from cost to develop to return on investment
Supports Multi-variant testing
Makes your job easier, it ensures you won’t break your product/s and that you can get new great functionality to live as soon as its ready
Its all about the money baby. If you are constantly releasing great new functionality and features to your product/s in the shortest possible time you will make the company more money and they by return (hopefully) will reward you
Incremental product improvements is the fastest way to gain ROI as well as enabling true MVT depending on your customers wants. Its taken a lot of incremental product improvement since Nicolas-Joseph Cugnot invited the first automobile to the Bugatti Veyron
Stages – CI ASAP
Break for a pipeline session – use white board to draw out a pipeline, frequency of releases (what environment) and possible choke points
Draw one pipeline that represents your current route to live and then draw what you believe would be the optimal route to live
Take a break…
The challenges
Culture, beliefs, behaviors and perception, be prepared to challenge them all
Zero defects to live is achievable and for little cost
Understand now and map the outcome, and what the cost of not implementing is
It is possible to maintain quality whilst increasing speed of delivery
We maintain high quality through a managed automated pipeline that bakes automation around the builds, validate their decisions, validates the build and deploys the build to live
Technical resistance by those who don’t believe you can automate everything, lack of automation knowledge or value of aligning to the business
It is worth it – Keep trying
It starts in the business
Its automated
It finishes once its live
Lets get this over and done with, done should be measured once its live. A fundamental mistake is that we often deem it OK to mark something as Done whilst in a holding area (code in SC, a story in the Done column, etc…) but ask yourself, where’s the value realization of that?
If you are a leader… protect and empower your team to implement any automation changes
We don’t just want to build the right software, we want to build the right software
Using your value chain identify on what would gain the most from being delivered more quickly to market. You might find that ‘all of it’ will be the outcome
A critical game changer is when you write specification in a way that is testable; BDD is an approach to achieving this, it removes ambiguity through explicit specification that is understandable by a testing framework. Technical excellence (unit testing) is not enough to deliver business aligned value
Automate, automate, automate. Whatever you can…
Write specifications that are testable
Automate all tests
Build a Continuous Delivery pipeline
Remember to Including infrastructure (ServerSpec) to be expressed through testable specification
Now lets re-draw your pipeline
Hopefully you’ve had a moment like this little chap above
Measurement of your success? When this little fella can press a button on a mobile device that sends your product or increment live in a safe, controlled and quick fashion.
Now go forth and use automation to improve your route to live