Co-founder/CTO of Sleuth, a deployment tracker. Ex-Atlassian architect with 20+ years of experience.
Building a healthy productive engineering culture is hard and just deploying frequently with continuous deployment is not enough. I'm going to show you how you can use a carrot, not a stick, approach to take continuous deployment to the next level by celebrating team values with deployments.
When I worked with the US Navy, every few weeks, they would have ceremonies celebrating awards and achievements by their sailors. I thought it was overkill at the time, but looking back, I see that it was a key tool used by the Navy to reinforce their values, traditions, and desired behaviour. Software teams can take a similar approach to building and maintaining a healthy engineering culture by celebrating deployments.
If you're a large company, you probably already have engineering values. If you're a small company, this is probably a good exercise to go through. What you're doing is trying to capture values your team feels are important. These might be values such as "Be the change you seek", "Put customers first", or finally, "Leave the code better than you found it".
For example, if your value was "Be the change you seek", perhaps you would want to celebrate deployments where a developer had an idea and built it themselves without asking for permission or complaining about it. If your value was to "Leave the code better than you found it", perhaps you'd want to celebrate deployments that did some refactoring, included a low-level rewrite, or introduced a new library to dramatically improve how your code was working.
Celebrate and reinforce those values through your code deployments. Before you can celebrate deployments, you need to track, visualize, and communicate them. For most teams, deployment information is buried in a continuous deployment system or perhaps nonexistent with a manual deployment process.
A simple way to track deployments is to include a notification of some sort in your deployment process. This may be an email to a team mailing list or Slack message in the development channel. You could also use a deployment tracker like Sleuth (disclaimer, I am a co-founder). The idea here is to raise the visibility of deployments and make them the pinnacle of developer activity. It doesn't matter what meetings you went to or discussions you had but what code you shipped.
Next, start celebrating those deployments. If the deployments are announced in Slack, use Slack reactions to visibly react to the deployment. For example, if there was a deployment that fixed the bug that everyone was really excited about, team members can then go to Slack and give it a "thumbs up", "awesome", or some other sort of celebratory emoji.
It's a fun way to encourage your team to live its values through deployments. Of course, points don't matter and this should never be used to actually measure team's effectiveness. However, it does allow your team to celebrate certain behaviors and reinforce to new developers that these are the things that this team finds important and wants to encourage.
What are some of the team values that your team has that you want to start celebrating with deployments?
(Disclaimer: IThe author is a co-Founder at Sleuth)