19 statuses and invisible bugs in the team tracker. Cut it to 9 and tagged 369 issues
It started as a mundane complaint about my own tooling: the script that collects my issues from the tracker “keeps failing to find a task”. I went in expecting a script bug and found a hole in the team process instead.
Issues nobody could see
The default status for a new issue was a product draft, not a development status. Everything landed there: issues I filed from the command line, issues filed by QA. That status isn’t on the development board, so filed bugs never appeared in front of anyone.
At the time of the audit 15 of my issues sat there, 10 of them web and desktop bugs, and the oldest had been waiting between 28 and 46 days. My script reported 47 issues and was blind to 95 live ones. That’s not an inconvenience, those are bugs everyone honestly reported and nobody fixes.
The second finding was smaller with the same root: the team had issue type and platform mixed into one enumeration. You could neither filter “everything on desktop” nor assign an owner automatically - the platform lived as text in the title, and the rule “it’s mine if the title says Web” produced three other people’s issues and zero useful ones on real data.
What I did
Agreed it with the manager and applied it in a live tracker that already held hundreds of issues.
- A separate Platform field instead of a title prefix: web, desktop, backend, Android, design, infrastructure. Each value has an owner.
- An auto-assignment workflow: an issue gets its owner from the platform on its own, without manual hand-outs at standup.
- 9 statuses instead of 19. I archived the eleven old ones rather than deleting them, so issue history stays intact. The default is now a working backlog, so a filed bug hits the board immediately.
- Rebuilt the development board - swimlanes by platform instead of by type.
- Tagged 369 issues and wrote the team an article on how to file and run issues now.
I took a full backup of the project configuration before the reform. The admin REST API turned out to be undocumented in places, and part of the evening went into figuring out why a field wouldn’t attach to a project and how to set board swimlanes - I wrote those down so nobody has to rediscover them.
Outcome
A filed bug no longer vanishes: it shows up on the board the moment it is created. The owner is set automatically. Cross-platform work stopped being one card pulled by two people and became a container with a subtask per platform.
I also updated my own tooling for the new statuses, so the work status report stopped lying.