Three devops practices to avoid the Thursday Night of Dread

These devops practices will have your team actually looking forward to deployment days

Repeatable rehearsals are a critical DevOps practice so everyone's ready for deployments

In a previous post, I described devops as an investment in team happiness. It can mean actually looking forward to deployments, rather than fearing the Thursday Night of Dread.

In particular, I’ve found three specific devops practices that go the farthest in boosting team morale:

Fast feedback

Developers feel most engaged when they know they’re building something that works and adds value. You achieve this by creating a tight feedback loop, using test-driven development. Before you write a line of code, you define the criteria for success and create an automated test suite to verify you’ve hit your goal.

You have to commit—really commit—to automation and telemetry. People sometimes claim they’re doing test-driven development when they’re actually relying on manual testing. They say automation is too hard, or they can just get an army of offshore QA folks to do the manual testing.

But that’s not good enough: you need feedback in milliseconds—not hours, certainly not days. Manual QA, performed by armies or anyone else, will never be fast enough. It will always create a bottleneck. If every release takes four weeks or more of manual regression, that’s as fast as your development cycle will ever run.

Over the long term, it’s always cheaper to automate. It’s also much easier on your team, and frees up their headspace to do the innovative work you hired them for.

Frictionless flow

The point of devops is to move from idea to code to deployment as quickly as possible. To do that, you need to ruthlessly eliminate friction wherever you find it.

Hand-offs are a common bottleneck, especially when you’re handing off across time-zones. Executives like to boast about development teams that “follow the sun.” In practice, following the sun often means injecting a day of delay into every work cycle. One team identifies a problem and goes to sleep. The next team fixes the problem and pushes the code for review. Twelve hours later, the first team wakes up to find the code still not running properly, and the cycle repeats. Instead of following the sun, you end up chasing the sun.

Sometimes you get the most ROI from streamlining your workflow: pruning useless activities, getting rid of non-value-adding policies that add work without adding value. In high-performing organizations, I’ve heard leaders tell staff: “Don’t let the process get in the way. Have a conversation. Do what’s right.” In others, I’ve seen team leads force people to execute outdated, meaningless procedures, just to check a box.

Repeatable rehearsals

You should rehearse production release and monitoring as part of your daily work. When it comes time to deploy, you want the team completely at ease. They should be confident that they’ll know right away that the rollout is either going to work flawlessly, or, if something goes wrong, the rollback will be so fast and painless that failure will be nothing to worry about.

You get to that point by deploying the same way multiple times a day, every day, for months. Store everything (app configuration, server settings, network config, etc.) securely under source control. Automate the entire deployment process, and have great telemetry from your infrastructure and application.

With all these measures in place, deployment is as simple as running a command or pushing a button: The machine you’ve been practicing with clicks seamlessly into gear. If something goes wrong, you simply activate the automated rollback. It all happens in minutes.

The common thread for these three practices—fast feedback, frictionless flow and repeatable rehearsals—is the need for discipline. It’s true that doing devops right means choosing a slightly harder course now to ensure a much easier time later.

But like exercise, I’ve never found anyone who regretted doing it once it’s done.

Copyright © 2017 IDG Communications, Inc.

How to choose a low-code development platform