Dev9 Coffee Talk: the Psychological Benefits of Continuous Delivery

Welcome back to Dev9 Coffee Talks! This interview was with Jason Marshall and Keith Bloomfield, both of whom are developers at Dev9. They will be sitting down with us a few times over the next few weeks to talk about a number of different topics.

I started off this time by asking what the deployment process is like in a traditional environment, and how Continuous Delivery methodology is different. Jason jumped in right away. “Traditionally, developer teams write the code, QA checks it off, and Ops deploys it. It is a slow process, even when it done well.” Jason said. “More often than not it’s painful too. Particularly if you are dealing with preexisting customers and live deployments.”

“There is just so much that can go wrong with deployments" he continued. “When you are changing the shape of the data, changing schema, and trying to preserve all of the old data there are a lot of points where a product can fail. That’s why deployment time is so stressful for developers. Deployment day means pagers, all-nighters, and scheduled downtime. That’s where the image of developers hunching over glowing monitors in the dark with soda and cold pizza came from.”

Keith was the first one to stop laughing. “When large deployments are done all at once, it is extremely taxing.” He said. “The late nights mean you and your team get sleep deprived, and when you are sleep deprived you make mistakes. You attention to detail gets worse, and you want to get home so bad you just focus on the obvious problems. Then all the non-obvious problems slip through the cracks and crop up later.”

“Once all the red lights go off, victory is declared.” Jason chimed in. “Then, just as you pull into your driveway at home, the pager goes off and someone tells you everything is broken.”

“Continuous Delivery is about getting rid off all of the pain. Really, you could say that the goal is to make the deployment as boring as possible.” Jason went on. “If you are fresh when you hit the deploy button, you can figure out any problem. The best part, is that if you have set things up so that you are fresh when you hit that button, so many other things need to have been done right, that you probably don’t even need to be fresh.”

Stay tuned, we'll have more from Jason and Keith soon.