Published on: March 7, 2019
5 min read
How one engineering team is using GitLab CI to automate asynchronous retrospectives, making collaboration across four continents a breeze.

As an Engineering Manager at GitLab I spend most of my working day using GitLab for a variety of tasks – from using issue boards for team assignments, epics for tracking longer-term initiatives, and todos and notifications to manage my own workflow.
We also use GitLab in a number of unconventional ways, so I wanted to share with you one interesting use case we've been experimenting with.
Each stage group at GitLab has its own retrospective, which then feeds into the GitLab-wide retrospective we have for each monthly release.
The Plan team is fairly widely distributed: we have people on four continents, and only two members of the team are even in the same country as each other. We wanted to try asynchronous communication wherever possible, so we used GitLab issues for our retrospectives, too.
A quick note on terminology: we say team to refer to a manager – like me – and their reports. We say stage group to refer to the people who work on a particular DevOps stage, even across multiple teams. The Plan stage group is even more widely distributed.
Creating the retrospective issue was fast, but adding links to notable issues that we shipped or that slipped was time consuming and tedious. In the spirit of xkcd 1319, I decided to automate it, so I created the async-retrospectives project. This project makes retrospective issue creation a hands-off process:


I only intended this for use in Plan, but a nice thing about a company where we give agency to people to solve their problems is that people like me are able to try out things that might not work globally, like this.
As it happened, it's also been picked up by other teams and groups. We configure the creation in a YAML file, just like GitLab CI is configured, to try to make it as easy as possible for other managers to contribute and set this up for their team.
We've had a lot of positive experiences from these asynchronous retrospectives. In particular:
Asynchronous retrospectives aren't perfect, of course. Some of the downsides we've noticed are:
Over all, we don't intend to go back to video calls for retrospectives, and we're really happy with the results. You can see all public retrospectives from the teams and groups at GitLab in the GitLab retrospectives group on GitLab.com.
Photo by Daniele Levis Pelusi on Unsplash
Enjoyed reading this blog post or have questions or feedback? Share your thoughts by creating a new topic in the GitLab community forum.
Share your feedback