Bugathons can be a fun and collaborative way to clear up that backlog of issues you've been putting off. In this article, we'll share the lessons we learned from hosting a bugathon at Supermetrics and how we turned it into an opportunity to donate to charity.
Step 1: Identify your goals
At Supermetrics, we have three main reasons for hosting bugathons: We wanted to give our distributed team the opportunity to work closely with each other. We also wanted to spring-clean our backlog of issues in a fun way. Finally, we wanted to donate to charity, and the bugathon was the perfect excuse.
Step 2: Gather your team
First, decide who will take part. Maybe you'll involve the entire engineering department, and maybe it's just for one development team. Whichever the case, we recommend blocking off a day (or a few hours at least) in the participants' calendars for the bugathon so they can focus on it fully.
Bugathons are the best fun when you do them with the whole team in person. The Supermetrics Engineering team is distributed in various cities globally, but for our latest bugathon, we brought everyone together at our HQ in Helsinki. It was a great opportunity for everyone, especially our fully remote team members, to practice pair programming and work together face-to-face.
Of course, you can also run successful bugathons fully remotely. That's what we did during the pandemic — it was a joyful experience, too.
Step 3: Make it feel like a fun competition
We started our bugathon with a kick-off session where we briefly explained the objectives and rules of the event. Teams then picked a mascot and came up with a team name — both important elements in creating team spirit.
Before the teams spread around the office to squash their bugs, everyone joined the bugathon Slack channel to keep tabs on the competition and banter with rivaling teams. We've also found that having a screen displaying our progress toward the bugathon's goals creates a shared feeling of accomplishment. Including a timer on the screen can also boost the sense of urgency for teams to complete their tasks.
Step 4: Assign points to each story
If you make a competition out of it, you should have a system for grading the bug-fixers' accomplishments. In our system, each story was labeled with a specific color — bronze, silver, gold, or platinum — representing a different number of points. More importantly, each label represented a specific amount of money we'd donate to charity at the end of the day — but more about that in Step 8.
Step 5: Maintain quality standards
While the goal of a Bugathon is to fix as many bugs as possible, it shouldn't mean lowering your standards for quality. In our events, each change goes through a proper code review and automated tests, as with any other code we write. And if a story turned out not to be a bug after all, its points were still counted for the team. After all, figuring out a bug isn't a bug, or figuring out a game plan for resolving a bug is almost as important as fixing the bug itself.
Step 6: Vary the day with extra activities
Hunting for bugs can be fun, but doing it for hours can get mind-numbing. To keep things fun and engaging, we had some extra activities throughout the day. The team had a chance to bond over a catered and take a fun trivia quiz with questions about the company, its culture, and traditions. There was a chance to earn extra points for secret achievements. Some of those achievements were:
- The first bug of the day.
- More tests than actual code.
- The team with most stories closed.
- The best team work.
- The least new code added.
- The best photo taken with the team mascot.
We also like to have talks from experts inside and outside our team during our bugathons. In the past, we've had talks from various experts — once, we had Google coming to talk about Pub/sub — and this time, two of our own developers gave talks. One was on debugging, the other on the lessons learned by building a new software product in 70 days.
Step 7: Celebrate success
At the end of the bugathon, you should gather together, count the points, crown the winners, and celebrate the shared achievements. In our latest Bugathon, we identified and resolved nearly a hundred bugs. It was a fantastic achievement with a positive impact on our products and our customers
Step 8: Donate to charity
Last but not least, we encourage you to use bugathons as opportunities to donate to charity. You can assign the stories a monetary value based on the number of points and donate the pot to a charity of your choice. In our latest bugathon, we donated 8000 EUR to earthquake relief in Turkey and humanitarian aid in Ukraine. Not only did we have a great day of collaboration and fixing bugs, but we also positively impacted the world around us.
We believe organizing bugathons is a great way to bring your development team together, clear up the backlog, and give back to the community through charitable donations. We hope these steps help you run your own bugathon, and you'll see the same positive impacts as we have.
Learn more about dev life at Supermetrics: supermetrics.com/careers/engineering
Top comments (0)