Every morning I have the same routine, open email check for anything urgent, delete all mail from Jira (I get a lot) and then look at the agile board for highest priority issues.

Recently this has been a lot of bugs. So I want to talk about why bugs are way worse than you can imagine.

In jira bugs are represented as a red dot. Red is a cool (not cold!) colour in both Eastern and Western cultures. Unfortunately for us (western) red is associated with negative things like danger, stop, warning. So imagine seeing a sea of red first thing in the morning.

The obvious answer to this is to stop creating bugs but that’s sometimes just not possible. I have a long standing joke that most of our systems are built using BDD. Traditionally BDD stands for Behavior Driven Development but I’ve tweaked it to be Bug Driven Development. This is only half tongue in cheek.

What creates bugs?

  1. Poor code
  2. Technical debt
  3. Poor ticket management

All the above reasons create a cycle of moral draining issues. Working on bugs 24/7 is a depressing task, add that to impending deadlines and rushed code it leads to technical debt. So you can see how it’s a vicious cycle.

And poor ticket management comes in many forms.

  • Overwhelming “In Progress” queue - having so many issues in a in progress state is a great way to lose focus on what actually needs doing.
  • Not Bugs - Missing functionality, improvements to the way the system works. Arguably the most frustrating all of all bugs.
  • Misunderstanding of the system - This is a grey area that I don’t believe is an issue caused by a developer more the solution that was being designed.

The solution is simple here. The agile board isn’t the enemy. Better ticket management from all parties would greatly improve moral, code quality and developer happiness. We need to re-understand what a bug is, going back to the red circle of Jira, improvements are a green tick, green is a positive colour, a tick also reinforces this. With this in mind bugs need to be investigated and treated appropriately. If I work on a improvement that’s such a moral booster, it’s not a problem with the system or flaw in the code it’s something I’m actively doing to make the system better.

Ultimately bugs are a downwards spiral, a never ending self defeating hole that can be solved with some fundamental changes to our development workflow. I don’t think that any of these are hard to accomplish, the hardest thing is getting people to understand the psychological background behind a developer and how these thing impact our daily lives.