If it hurts, do it more often

Motivation

Formally, you have a quarterly deployment to production. Informally, the last three attempted deployments caused so much unforeseen problems and downtime that no amount of testing is now enough to confidently deploy. Key stakeholders book their vacations so as to not be around at release time. Getting sign-off takes months. Releases are cumulative, so each missed release increases the risk of the next one. The last five release windows were missed because of this. The organization is paralyzed, no code has made it to production in over a year.

Applicability

The scenario above is extreme, but not unheard of. If any particular task is so daunting that it gets delayed to mitigate risk, an organization may end up in a downward spiral that completely stalls its software delivery. When this occurs, it is often, but not exclusively, in the final step of deploying to production.

Application

The most effective antidote is radical exposure therapy. Force your organization to perform the stalling task at an increasing pace that quickly becomes impossible unless the process is fixed. This hurts, this will initially fail, but tightening the schedule works in two ways: it reduces the scope of each iteration (thus making it easier to manage) and it increases the pace at which you learn from and adapt to the problems that occur.

Consequences

Shortening your time to production increases your ability to respond to change and, ultimately, your competitiveness. There's no upper bound, internet giants like Facebook and GitHub successfully deploy to production hundreds of times per day.

References

The Xebia Essentials Cards

This page is part of the Xebia Essentials, a pack of flash cards about Software Development Done Right. You can get your own deck of Essentials cards in the Xebia store.