To recap, you can basically tell how high performing a team is by asking four questions: time to delivery, time to recovery, failed deploys and frequency of deploys.
We even get paid to do it -- what incredible fortune!!
Before DORA, most of our attempts at improvement were (at best) cargo culted.
But the DORA report also shows why the solutions are so counterintuitive. When we falter, our instinct is to slow down and regain control;
Slowing down and tightening your grip will not prevent failures or make them less disastrous. It will do precisely the opposite.
If you anxiously throw up gates and processes around shipping code so it takes longer and happens less often, you are dooming yourself to a life of big bang deploys and high stakes recovery events.
✨Fix your eyes on deploys.✨
The *right* thing should be easy, fast, and obvious. Ideally even automatic. Do you want code to roll out to users every time you merge a branch to master? Then it should just magically happen.
🔧IT🧯
🔩IS🛠
🗜THAT💣
🧨BAD🔫
If you have deploy aversion, I'll bet that 95% of it is a completely valid fear based in the trauma of batched up deploys.
Your entire business, team and culture will suffer if you cultivate a fear of shipping code to users. Instead, step by step, you must earn their trust, and I will tell you how.
(This always makes me think of @lacker's terrific, hilarious keynote on great API design. Watch it. )
The right way must be the fastest way to ship code, or engineers will reach for a shortcut at the worst possible time -- and it will be untested.
google.com/amp/s/www.inte…
Not with a big bang change -- please! -- but with small, iterative changes that center their current pain and rebuild trust faster than you are asking them to take on new risks.
Watch while a new hire attempts to navigate the system to ship their code. Fix the traps they fall into. (Docs are code too.) Make it harder and uglier to do the wrong thing.
It may take years to get there, and that's fine. You definitely won't get there if you don't know where you're trying to go.
INSTRUMENT
THE FUCK
OUT OF
YOUR
PIPELINE🧨
Practice observability-driven development. Instrument *ahead* of your building, not as a trailing job or an afterthought.
@IntercomEng has a really cool case study, they used us to get time elapsed between merge and end of deploy down to *4 min*. 🥳
Look, I've said a million times that we systematically underinvest in deploy tooling as an industry
This has so many ripple effects on your ability to hire and retain good people. You *have* to care. You have to spend resources on it.
Anecdotally, there's a real hunger coming from honeycomb users to better understand and refine and simplify their build process.
Which means it can be a powerful lever for ✨systemic change.✨