How Lever makes addressing technical debt… fun?
Technical debt is a reality for every team. We make tradeoffs all the time about work we wish we could have done, wrongs we wish we could right, and delights we could build if only we had a little bit of extra time.
Once a year the engineering team takes time out of our regular product delivery cycle to do a deep clean. We dedicate time to revisiting the small, irritating bugs that no one ever has time for and to cleaning up and improving our existing features. We call this annual tradition a “Polish Party.” This event is my favorite intersection of exhibiting cross-functional empathy (XFE), delighting our customers, and settling technical debt.
Why we do it
Being part of an engineering team that delivers value to customers means a constant struggle between speed, quality, and feature creep. We move quickly at Lever, but prioritize creating time for Polish Party to address some of those things that are nagging us.
What’s the secret to a successful Polish party?
Prepare your Purpose
Decide what your goal is. If what you’re doing doesn’t have a purpose, it’s time to go back to the drawing board and find something that does. Do you want to make a dent in your support ticket backlog? Clean up some technical debt? Sprinkle some customer happiness in your feature backlog? A free-for-all on your bug board? Let the team loose … but not too loose.
Once you know what your focus is, get to prepping the work. Polish Party involves the entire engineering, product and design teams — it’s an expensive exercise. Preparing a slim and focused backlog lets the team be as productive as possible during that time. For us, this starts with gathering JIRA tickets onto a board that’s specific to Polish Party. Each ticket is prepared with a description, a level of effort, and any design mocks that are necessary.
Foster the spirit of friendly competition
One of my favorite experiences was hearing a new engineer say “I can see what you’re trying to do with this competition thing, and I’m not going to be vulnerable to it.” He ended up winning the MVP award, and then sheepishly admitted how much fun he had.
With your purpose in mind, create teams, define a point system, and choose some awards based on what you want to incentivize. Assign points to each issue based on level of effort, or how badly you want it to get done. Give product management, your support team, or the management team ‘bounty points’ that they can spend to raise the likelihood of issues getting addressed.
Set the stage for the competition by defining awards for the team that earns the most points, tackles large issues, writes the most unit tests, or closes the most issues. Then leave some leeway to define additional prizes so you can reward different types of valuable contribution or simply spread the love. Looking for ideas? “Most Code Reviews”, “Most CSS Fixes”, “Rookie of the Year”, “Most Code Deleted”, or “Prettiest Refactor”.
Team spirit/make it fun
Organizing into teams is part of what makes Polish Party fun. We mix things up at Lever to give people the chance to work with new teammates. Divide up the teams to spread out experience, speed of delivery, and fun factor. Let the teams pick their own names, or give them a theme — and the accessories to match. My first team was the Power Rangers, and there are still a bunch of power ranger masks lurking around the office. Create Slack channels for each team to organize their plan of attack, and a Polish Party channel for sharing team standings to drum up the competition.
Build in ways for everyone to contribute
I had only been at Lever for a month when the first Polish Party happened. I wasn’t sure I knew enough to be able to really contribute. But our PM was one step ahead of me — he’d gone through the Polish backlog and created a special ‘Kate’ label for issues he thought I could tackle. He took me from being an outsider to being committed to joining in the fun.
No two Polish Parties have to be the same. Who are the team members that might feel close to the edges? Think about how can you pull them in. Assign points for doing code reviews; assign points for QA or unit tests for Quality Engineers; assign points for doing releases to prod; assign points for conducting interviews or for responding to urgent issues.
Kick it off
The kick-off sets the tone. — make it fun, make it competitive, motivate and inspire.
- Introduce your teams: We discovered our team name in a conference room across the building, and then proceeded with our power ranger masks across the office to the cheers of the customer support and product teams.
- Explain the polish purpose: This is your opportunity to motivate and inspire. Gain some XFE: Our PM, Product Ops, and Customer Success teams pitch their biggest pain points to put a face to the people we’ll help with the work we do.
- And finally, set up the rules for competition
Set up an information radiator to stoke the competition and keep the excitement from the kick off going throughout polish party. Tally up the point totals every evening & share them in a slack channel. What are the team totals, are they close? How many issues have been closed? (‘Can we get to 100 issues closed?!)
At the end of polish party, it’s time to celebrate. Throw an awards ceremony and take the time to look back at what you’ve accomplished. Happy hour, mini cupcakes, boba — whatever your team enjoys, go for it! And make sure to present to the wider company the impact that the team’s week of work will have.
Why should you Polish Party?
Polish Party is my favorite time of the year because it gives me the time to pick exactly what I feel like working on, and I get that feeling of accomplishment from starting and finishing a bunch of little things. But Polish Party is more than that — it imbues a sense of pride and energy across the team, and ultimately across the company. We bond with people we don’t normally work with; we hone our XFE by connecting with other teams. We step away from the bigger, deeper, more serious engineering problems to make some fun out of tackling a backlog of nuisances.