When all around is a mess, what sort of software gets produced?
I’m quite a fan of Gordon Ramsey’s Kitchen Nightmares and the version of Gordon Ramsay portrayed by that show (he may be an arse in real life – I’ve never met him). In the show, they look at something that’s not working and look at:
- The human relationships between the staff
- The processes of execution
- How the product meets the needs of the customer
- The state of the environment
All of these are critical for software development, but let’s look at a metaphor for the last one. The state of the kitchen.
What sort of food gets produced in a kitchen like this?
Do you really need me to tell you?
When sections of your codebase feel like the above, or when your team’s conduct is chaotic, then you are cooking in a filthy kitchen.
In a kitchen, you probably shut the whole place down (as they do on kitchen nightmares), replace the completely broken stuff, and clean it down. It will generally take about 2 days and 2 – 20,000 dollars to do that properly.
In software, the problem is more complex, more deep and you can’t stop the world while you sort it ALL out.
Here’s what to do when you’re surrounded by chaos.
- Stop – not for long, but for long enough to…
- Determine what clean looks like – what are the basic rules for new stuff
- Train – maybe overlap training with more doing, but solve any skills gap that led to the issue
- Set expectations – often chaos results from overcommitment. In rare circumstances, you can genuinely meet a short-term commitment by increasing chaos and then make space later. Most times even short terms commitments are hampered by mess and the return on investment for even the simplest of improvements is worthwhile
- Hold everyone to the same high standard – stop tolerating the practices that led to the problem, even in trivial cases
- Know where to draw the line – if every move on the journey was predicated on fixing the whole world you could do nothing – work out the inverse-square-law between change site and potential improvement sites and apply it.
- Celebrate success – those improvement are product value too – you just made the product have a lower total cost of ownership
- Don’t hold the product to ransom over your changes
- Don’t compromise quality for short-term gain
You CAN do it.