Merge Parties
No, not the party planning game you can find on the app store.
Recently, there has been a lot going on in my current company (and the tech industry in general) between layoffs, re-orgs, incidents and other things that can generally take the wind out of your sails. I know I'm not alone in feeling a bit unmotivated, or that it's at least feeling a little more challenging to get any momentum behind some of the changes you're trying to work on.
Due to a number of reasons, recently I've had a pull request sitting "In Review" and unable to merge for over 3 months. When a change has been sitting for that long, it's hard not to lose context, even with the most meaningful commit messages. Once things started moving again, additional restrictions were put into place to improve our security posture. Not that the processes in place weren't already pretty secure but there is always room for improvement.
Despite many of these events, my team has been a safe place. The culture in the team has always been positive, uplifting, and overall pretty fun. The side benefit is that the work we do is highly regarded across the company, which is something I'm very proud of.
During a recent retrospective, we were discussing the nerves of some of the team when it came to merging changes that have been sitting for a long time when it was suggested we do it as a team.
It was from this suggestion that the "Merge Party" idea came about.
It's not quite mobbing, which I would generally associate with doing the work to prepare for a change to be made. This idea was a little different: bring along any of the pull requests you've raised in recent days that have received the required approvals, and, as a team, we'll work through and merge them as a team.
This has a few benefits:
- One final review before proceeding. This gives other team members who haven't had the chance to review the change an opportunity.
- Moral support, yay! Everyone in the team is there, supporting each other.
- Fast feedback loop. If something doesn't work or breaks in unexpected ways, there are people there with access to rollback, and ultimately minimise impact to customers.
- Establishes a culture of collaboration, and trust. It provides a good opportunity to work together, and during the times when we're waiting for things to build, we can chat and get to know each other better. Background music is optional.
We've had a few merge parties so far, with three or four changes merged each time from different members of the team. Delivering some real value, and the joy experienced at making progress has been palpable from everyone in the team.
One thing it is definitely not: a rigid process. Making them mandatory, or even as a regularly scheduled meeting isn't the intention. The goal is to allow anyone in the team to request a merge party when they feel one is needed, and make it work for the team. Adding more process is against what the goal of this is.
I've enjoyed these enough that I thought it would be good to share. If you decide to give it a go, let me know. I'd love to hear if anyone else has success trying to introduce this kind of thing to their team!