release management

Mattermost Playbooks How-to: Release Management

Releasing software to users has become a sophisticated and intricate process that requires high levels of consistency and coordination. A release has to be built, brought together, documented, tested and deployed, which requires coordination of at least four separate teams and a generous handful of pipelines and other tools. Without a well-documented process things can get messy very quickly, causing stress for everyone involved.

The first step is one you’ve likely already taken: creating a checklist to follow for every release. Now you can codify that checklist right inside Mattermost, so all those teams and stakeholders involved in a release can find the information they need and understand what’s expected of them alongside their daily messages. By creating a runbook with all the necessary steps, you and your team can ensure predictable releases every time.

In this guide, we’ll show you how to customize a pre-built Mattermost Playbooks template to create your own reusable process playbook. For every future release, you’ll click run on your playbook to kick off that process and have all the steps, links, and tools on hand right alongside team conversations. Each run will help your team gain and document new learnings and expertise, offloading institutional memory into reusable and easily referenceable collective documentation. 

What you’ll need:

About the Release Management template

  • All Playbooks in Mattermost have the same set of features, but how you fill out the details varies depending on the process you are building a playbook for. For release Management, the playbook template includes checklists with some basic tasks and short templates for status updates and run summaries.
  • Your team will especially want to modify summary links, checklist items, metrics, and actions in order to use this template to create a custom playbook from which you will create regular runs:
  • The Release Management template is designed to give you a solid starting point to coordinate releases. The checklists include these sections:
    • Prepare Code – Gather PRs and tickets, check dependencies, draft release notes, and queue up QA assignments.
    • Release Testing – Cut a release candidate and hand it off to testing teams, managing any bugs that arise.
    • Prepare release for production – Publish documentation, marketing materials, and update all deployment and installation pipelines.
    • Post-release – Schedule a retrospective, plan out the next release, and check out your metrics and analytics.
  • For example, our team has two separate playbooks for the release of Mattermost; one for cloud and one for self-managed release. The latter has a total of 109 tasks and is viewable to the public on our community server.

How to use and modify the Release Management template

  • In a Mattermost install, navigate to Playbooks using the global menu in the upper left corner. Select the Playbooks button next to Runs. Scroll down if needed to bring a section titled “Do more with Playbooks” into view. Select the “Release Management” template.
  • OR, to download and install any PB template from github.com/mattermost/mattermost-product-templates (or a friend) you may copy, export and import playbooks as .json files
  • Once you are looking at the template in Mattermost, you’ll be able to start modifying it to match your own process. Start with the title! Here are some other areas you might consider making changes:
    • Update the playbook description so teams know what the playbook is for and who should use it.
    • Update the run summary template with a framework for the team to fill in with links to repositories, documentation, and other frequently referenced materials.
    • Set a cadence, destinations, and template for regular status updates. Most playbooks create a dedicated run channel. You may want to send updates to other channels in Mattermost, or to outgoing webhooks. These can be changed during a run, in case the situation evolves.
    • Update the checklists. Add and rename sections, add checklist items, and especially add links (markdown is supported here) and slash commands for things like starting a team call or triggering a test environment build.
    • Define your key metrics in the retrospective section – For example, the Mattermost Self-Managed release playbook measures “on time releases” with a target of 21 days per run of the playbook. 
    • Set up a retrospective template. Give your team something to keep in mind during the run, as simple as: what went well, what could be better, what should we change for the next run?
    • Set actions to automatically add the same people to every run, assign a run owner and categorize the run channel to keep things tidy in the lefthand sidebar.

Learn more about using Playbooks 

With every release your team will be able to follow the same steps and be assured that nothing has been forgotten. There will be plenty of new steps to add over time, leading to greater accuracy and efficiency in the process, as well as the ability to quickly onboard new team members. Mattermost Playbooks are a powerful tool for any developer team, check out more ways to customize in the documentation.

Read more about:

How-to Guides release pipeline

Elli found her career path so far thanks to joining and building open source communities. As a mentor and organizer in the Drupal community since 2013, she has helped new contributors get started in open source and helped organize DrupalCons in the US and EU. She is always happy to help others find answers to their challenges, whether big or small, and is dedicated to being straightforward and open in the process.