Our #bug-reports channel was a Wild West, so I tamed it by banning humans

When I joined my current company as an engineering manager, there was one particular Slack channel that appeared in desperate need of TLC: our #bug-reports channel.

It was a channel with lots of activity that was critical to our business — but it had no structure.

Bugs, outages, and other production issues were reported by stakeholders across all departments, often with a dreaded @channel or @here, but with no consistency as to how these reports were constructed or managed.

This was, as far as I could tell, an attempt at ChatOps that was missing the "Ops" part.

Reining it in

I was able to bring more structure to the channel by creating a Slack workflow that collects bug-report information via a simple form, with the following fields:

• Describe the bug. What is broken or inaccessible?

• Scope: How many users are affected?

• Impact: How urgent is the issue?

• Which teams should be notified?

• If you have screenshots or other files that illustrate the problem, please upload them.

When a user submits this form, the information is posted in the channel, and we also notify the specified teams.

The workflow also displays a "Claim for review" button, which the relevant engineering team can click to indicate that the report is being triaged or investigated.

Much of the conversation around the issue then takes place in a dedicated thread, and when the issue is resolved, an engineer will click another button, "Resolve the issue," at which point all data related to the workflow gets populated in a spreadsheet, which we can use to track incident response metrics, such as Time to Acknowledgement and Time to Resolution.

Locking it down

The introduction of the Slack workflow achieved some immediate benefits. It brought structure to the bug reports, it helped us quickly route the reports to the relevant teams, and it gave us valuable data that we could use to assess and improve our response times.

However, getting members of the channel to use the workflow consistently was more difficult than I anticipated. Many users of the channel only visited it occasionally (when they had a problem to report) and were missing the regular reminders about the "right" way to post in the channel.

After multiple months of having to gently remind users to follow the prescribed process, I decided to take a different approach and not give them the option to do otherwise.

I persuaded our Slack admins to adjust the posting permissions so that no humans could post in the channel.

Instead, posting permissions were granted only to two Slack workflows: the "Report a Bug" form, which is the primary way users can interact with the channel, and a general "Announcements" form, which can be used to post any other information relevant to the channel that's not a bug report.

Human users can still reply in threads, but the ability to post a free-form, top-level post was removed.

Fully tamed

The end result was a Slack channel with structure and organization. The orderly flow of information, starting from a well defined form, continuing into the channel itself, and eventually into a format where we could track and analyze the data, was a drastic improvement over where we began.

And, as expected, it has led to faster incident response and higher satisfaction among our stakeholders.

Indeed, this effort has been so successful that we're looking to transform other support channels to use similar restrictions and workflows.

Will this ChatOps approach to incident management scale indefinitely? Maybe not. But for now, we've put in place a solution that's a good fit for our current company size and processes, with plenty of room to scale upward before we need to explore other options.

About Shaun

Shaun Gallagher is the author of three popular science books and one silly statistics book:

He's also a software engineering manager and lives in northern Delaware with his wife and children.

Visit his portfolio site for more about his books and his programming projects.

The views expressed on this blog are his own and do not necessarily represent the views of his publishers or employer.

Recent posts


This online experiment identifies dogmatic thinking

Adapted from a 2020 study, this web experiment tests a cognitive quirk that contributes to dogmatic worldviews.

Read more


Distributism: A Kids' Guide to a Third-Way Economic System

This student guide explores three economic systems (capitalism, socialism, and distributism) and explains how distributism is different from the other two.

Read more


You can thrive in a high-paying career without being money-driven

What if making money is not one of your top goals? And what if you happen to stumble into a high-paying career nonetheless?

Read more


On compassionate code review

How to build up and encourage code authors during the review process

Read more


Rules for Poems

A poem about all the rules you can break — and the one rule you can't.

Read more


Other recent blog posts