Don’t fear the release

A few weeks ago I said that typical project manager thing of “we don’t release on Fridays” Then I paused and thought. Why don’t we? We’ve got a good team of developers, a suite of automated tests and a QA department with excellent domain knowledge. We have ‘like live’ environments that are managed by puppet, source control in GIT, code reviews in Crucible that link to the feature descriptions in Jira.

We don’t release on Fridays because of fear. Like most companies, there is a niggling doubt in the back of our minds that says “this might break. This might not work. some styling might be bad. And we will need to work the weekend fixing it” Totally normal thought process, sensible mitigation of risk even. But really, what we are saying is we don’t trust the tools and processes we have put into place to manage a release. We still think that the coverage they give is not enough.

So what do you do to fix it? What are the steps?

First: Identify the bugs and issues you’ve seen reach production and their cause. Put tests or processes in place to catch that type of issue. Not the issue itself, but the category of issue from which it stems.

Second: embrace the pain. Challenges and struggle strengthen the team. Start putting the pressure on to release when you wouldn’t normally. Start trying to do smaller releases more often. Get comfortable releasing a particular API on Fridays because its 100% backwards compatible. These struggles will highlight holes in the process, gaps in the test suites, weak-points in the coding standards. From there you can fill those holes.

Third: Say no. How often does your release go out, with bugs found in the wild but you knew, on some level, it wasn’t ready, that it didn’t have the testing, or the feature completeness that it needed, but there was a client deadline or event so it just “had to go live”

Is it easy? No. Have I done it? Not yet. Its not a rapid change-over. It’s a cultural change at least as much as a technical one. But its worth doing because in the end you’ve used that “we don’t release on Fridays” fear to bring you to a situation where you are always ready to release new features to the customers and you can do it without stress, fear or failure.