Continuous delivery panel discussion at ThoughtWorks

So I went along to the ThoughtWorks quarterly update on Continuous Delivery today. This took the form of a panel discussion with Martin Fowler, Evan Bottcher and Neal Ford. Smart guys, interesting topic and tantalising banner ad:

Flickr deploy ten times each day... why don't you?

The good news is that I didn’t hear anything that sounded too foreign. Either they were principles I’d written about, experienced firsthand or at least had a good understanding of. Usually it was all three but hearing the words from these guys in a very candid fashion is a great endorsement of the beliefs.

Here’s the “best of the best” in terms of the messages that really resonated with the crowd:

  1. Software that is not automatable is broken.
  2. Not being able to reproduce a production environment on demand is extremely risky.
  3. Get the computers to do the low value, automatable things (i.e. deployments) and let the humans focus on the high value work.
  4. If it hurts, do it more often (i.e. build and deploy).
  5. Any time a dev executes a repetitive task manually, all the servers get together late at night and laugh (always wondered why they looked so damn smug each morning).
  6. Everything – EVERYTHING – that is required for the app to be built and deployed must exist in source control.
  7. Get used to pushing into production regularly, it takes away the fear.
  8. Far too much emphasis is put on “it’s looking good” and “code complete” (downplays the risks yet to be faced by deployment).
  9. Every time you’ve done something for the third time, automate it!
  10. No test should remain un-automated that could be automated.
  11. Once you start automating, you find all sorts of ways of doing it better.
  12. Start pumping lorem ipsum text into change scripts and see if anyone notices (funny, I found a “If you are reading this I will buy you a coffee” statement in a standards doc last week; apparently I was the only one to spot it in the last year).
  13. Smells – sysadmins manually logging onto servers installing patches, prod server being thrown out the window (deployment to new one should be mundane), trying to “fix” an environment rather than just re-deploying.

Want more continuous integration and deployment goodness? Try these:

  1. You're deploying it wrong! TeamCity, Subversion & Web Deploy part 1: Config transforms
  2. You're deploying it wrong! TeamCity, Subversion & Web Deploy part 2: MSBuild and deployable packages
  3. You're deploying it wrong! TeamCity, Subversion & Web Deploy part 3: Publishing with Web Deploy
  4. You're deploying it wrong! TeamCity, Subversion & Web Deploy part 4: Continuous builds with TeamCity
  5. You're deploying it wrong! TeamCity, Subversion & Web Deploy part 5: Web Deploy with TeamCity
  6. Continuous code quality measurement with NDepend and TeamCity
  7. Continuous project statistics with StatSVN and TeamCity
  8. Continuous web application security scanning with Netsparker and TeamCity
  9. Automated database releases with TeamCity and Red Gate
Continuous Integration Conference
Tweet Post Update Email RSS

Hi, I'm Troy Hunt, I write this blog, create courses for Pluralsight and am a Microsoft Regional Director and MVP who travels the world speaking at events and training technology professionals