If I’m a user of your product and I’m reporting a simple bug by contacting you, how much time does it take to deploy a fix to production?
As the current Tech Lead of notification.canada.ca, a government platform, I can reasonably say that it should take us less than a business day. This number is “business as usual”, we can go to as low as 15-20 minutes for urgent fixes. And I’m pretty proud of this number. Being able to deploy a quick fix (say less than 20 minutes of work for a developer) to production in a matter of hours speaks a lot about your organisation, your infrastructure, tools and your processes.
To be able to achieve this in a matter of hours, you should:
- have a team working full time on your product. If your product is in maintenance mode and you have to fill in documents, fax it to another department and have lunch with another director to get your budget approved, your timeframe is in weeks (months, anyone?), not hours.
- be user-centric. The non-bullshit version of it. Writing that you care about your clients on your corporate website isn’t going to be enough this time. You have to have product people looking at support requests coming in, or a close feedback loop between your support team and your product managers/developers.
- have reliable automated tests. Are you ready to risk shipping stuff without tests you can trust to please someone? You’re a fool. Are you still doing it but have no fears? Great, you have an automated test suite you can trust. You rely on it every day to deliver value to your users quickly while minimizing tedious work to make sure features work as intended and there are no regressions.
- leverage continuous integration and continuous deployment. Turns out DevOps are not just costly developers who don’t like CSS after all! Seems like they took the time to put in place tools and processes enabling you to do changes in a staging environment and then to production, without downtime, without fears and without humans plugging in USB sticks in a server room. And if it doesn’t work as intended, you can roll back in minutes without any fuss, right?
- Have a streamlined approval process. Everybody agrees that this change makes sense but yeah, sorry add it to the list of things we’ll get our board to review and approve for the next trimester. Why? Another developer approved a pull request, this change had tests and a product manager could even take a quick look at a review application that was created automatically to check that it works. Why should it be more complicated?
So I’m asking you this question: how much time does it take to release a straightforward fix to your production environment? Are you proud of it?