Your Deployment Pipeline is Your Biggest #Fail

A well tuned software toolchain and deployment pipeline saves every developer on your team between two and three hours a week. On a team of 12 developers, that’s almost an entire man-week of time saved every week (36 hours).

As a software developer, repeated computer tasks simply bore me. If it’s possible to make my fancy machines do the job for me, I want to do that. Software deployment is a smart use case of automation tools because it’s the worst possible case of a repeated task.

A manual deployment pipeline:
  • Limits how frequently your team will deploy
  • Limits how many people on your team are capable of reacting to a critical bug
  • Happens infrequently enough that you’re likely to forget a step
  • Happens frequently enough that it’s a big time sink
  • Requires constant communication about what steps are required to deploy
  • Depends on manual checks for deployment validation
Manual deployment is the worst kind of repeated task. A lot is on the line, it takes time, and it breeds overconfidence.

In contrast, an automated deployment pipeline:
  • Minimizes the dreaded context switch
  • Prevents unexpected downtime by ensuring tests pass before deploying
  • Allows everyone to share the responsibility of reacting to critical bugs
  • Serves as a canonical source of steps required to execute a deployment
  • Automatically validates deployment success
The gold standard for what an automated software pipeline should provide include these developer most loved features as well:

  • Continuous Integration to run and validate tests before code is merged
  • Test coverage and source code lint analysis tools, if you’re into that
  • Automatic deployment to staging or test environments
  • Automatic, sanitized production database dumps
  • Push button, zero downtime deployments

Depending on your software stack, setup time on these tools can be as short as a week. The earlier automation is introduced, the easier it is to implement and the more time it’ll save.

Luckily, a lot of the tooling required to set up these developer favorites is out there, waiting to be implemented for your stack. A dozen available CI providers and API driven cloud providers can make quick work of a deployment pipeline, if you’re willing to invest the time.

Robert Carpenter is a deployment engineer and cloud architect with Tumbler Lock consulting. He has 15 years of full stack experience with software startups and loves making developers more productive through automation.