The team at CodeHS is pretty small. This means that there are overlapping responsibilities among everyone on the team. It can become a big prioritization problem to figure out who should do what and when. This particularly comes up when there are technical issues that someone on the engineering team needs to address.
We don’t have a dedicated support team. We don’t have a dedicated ops team either. This means that whenever there’s an issue with the site being down or slow, one of our engineers needs to tackle it. Whenever there’s a support question that requires some technical insight or a bug report that’s urgent, one of our engineers needs to respond.
These “fires” that come up can happen any time and whenever they do, we want to make sure they are handled. This becomes difficult when there is ambiguity of responsibility, and it hurts time management when you need to be prepared to make a fix anytime.
To solve this, we created the Firefighter Hat. Every week, one of our engineers becomes “The Firefighter” for that week. We announce it to the team on Monday, post it on the team calendar, and give that engineer an actual firefighter hat to wear for the week.
This person is now in charge of handling anything that comes up during that week. This can be site performance issues. It can be bugs that require quick attention. It could be questions from the sales or customer success team about how something works. Or it could even be small projects to help gather data or fix someone’s workflow on something.
When an engineer is firefighter, they are only responsible for fighting fires and responding to urgent requests for that week. They pause work on their main projects, so they can be ready to jump into anything that comes up.
There are many benefits to this.
- During that week, it is really clear to the firefighter that they are the one to handle those issues. They know that if they’re not handling it, nobody is.
- The rest of the engineers can focus on their main projects without worrying about being interrupted to fix a bug or answer a support ticket. It is easier to get into flow and really get a lot of work done when they can trust that if anything comes up, the firefighter will handle it.
- It becomes really clear for non-engineers to know who to go to for questions that week without worrying about bothering someone or bothering the wrong person.
I’ve written before about distinguishing between things that are urgent vs. things that are important. The goal is to have most people working on things that are important, prioritizing tasks that are both urgent and important.
However, sometimes the tasks that are urgent but not very important need to be handled as well. Having one engineer designated as the firefighter makes this easy to figure out who should take the urgent tasks, so the rest of the engineering team can focus on the important ones.
At first glance, it may seem expensive to waste a week of an engineer’s time just focused on fighting fires and not pushing forward on projects. At a closer look, though, the math works out.
With a 4 person engineering team, imagine that out of a 5 day week, each person loses 1 full day to fighting fires. That’s 4 days of fighting fires right there. Additionally, everyone being on call all week means that they may get interrupted any time, so even a 20 minute fix costs closer to an hour because of the context switch. Even if they aren’t being interrupted, psychologically just knowing that you may get interrupted at any time makes it more difficult to get into deep work.
Overall, designating one person to fight all the fires for a week allows for all of the rest of the engineers on the team to focus and get a full 5 days of work in that week.
We have been designating a firefighter for the last several months, and the results have been really great. Our engineers really like it because it lets them focus, and the rest of the team likes it because they have a go-to engineer for questions at all times.
I highly recommend replicating the firefighter hat on your team.
CodeHS is a comprehensive teaching platform for helping schools teach computer science. We provide web-based curriculum, teacher tools and resources, and professional development.