Scaling and Developer Productivity (2016)
blog.coinbase.com
blog.coinbase.com
This strikes me as a lot. I can't imagine one quarter of all deployments failing. Does it means cases where the application doesn't start in production, like due to a typo in the source code?
I don't think, as a manager, I'd be prioritizing statements like "we encourage new engineers to deploy coinbase.com on their first day" if I worked at a financial institution.
That can all fall apart rather quickly as soon as you turn something you're measuring into a performance indicator that will be imposed on people as a way of assessing how well they're doing their job. If there's any room at all to game the numbers, then you've just created a huge incentive to do so, and it will happen. At which point the thing you're measuring has stopped being a metric in any meaningful sense of the term.
You want to incentivize people to deploy as often as possible because it forces people to address the pain points of deploying. The idea is you build a cultural idea and drive towards a goal, in this case deploying on the first day, and use the cultural goal to address the technical pain points.
All of this seems odd for coinbase though. We did stuff like that at Etsy, because the key insight was that it's cheaper to fix errors than it is to prevent them in an e-commerce context. A hiccup on an e-commerce page just forces a reload and it's usually not a big deal. A hiccup in a bank transaction is much more frightening.
How about, instead, you optimize _time to deploy_. i.e. the delta between code submitted for review and code running in production. Then, who cares if we didn't deploy 5 times today. Maybe we didn't have 5 things that needed updated.