I'm Brett Slatkin and this is where I write about programming and related topics. Check out my favorite posts if you're new to this site. You can also contact me here or view my projects.

13 June 2012

Continuous Deployment as a Remedy for Burnout

Our team has been practicing continuous deployment for the past 6 months. What does that mean? Depends on your viewpoint.

  • Engineers: Commit code and it will be live in production in ~8 minutes, automatically
  • Ops: Deliver same-day fixes for customer issues
  • Sales: Receive quick turn-around on pulling metrics and one-offs
  • Product: See that every day we're better than the day before

Other projects I've worked on have had stable release cycles of one per month or better. That's impressive, especially for core infrastructure. However, over time I learned something about myself: The wait between writing code and releasing it to the world is a huge drain on my morale and motivation. I think this is part of why I focused on open source projects, where I could release whenever just by committing code.

Continuous deployment eliminates the wait. Using continuous deployment has been the most liberating experience I've had as a professional software engineer. Every day when I arrive at work I know that I can ship some code, however minor, the very same day. It's like a persistent remedy for burnout. I cannot recommend it enough.

The weird, unanticipated side-effect is that my days have gained an aspect of performance. Every day is game day. But unlike when I carried the pager for App Engine, this as-it-happens problem solving is product-oriented, not just firefighting: What are our customers saying? What new behaviors do we see in our analytics? How well are new features working? It makes programming feel more whole.
© 2009-2016 Brett Slatkin