Managing Bugs and Defect Creep
We all learn in project management/engineering 101 that feature creep is the number one reason for why 99% of software projects are always delivered late. While this is true, and incredibly damaging to not only profits, but team morale, this is often attributed as the sole reason for why projects fail.
Time to shed a bit of truth.
Defects hurt your product more than overcommitting to your customer. Prioritizing new features over existing bugs won’t make your app shinier. You can brush bugs under the carpet for a while, but its only a matter of time they come back out as your software gets larger. As new lines of code are added, new paths to revealing your bugs are exposed.
In theory everybody wants a 100% bug-free product, and it’s easy to say “fix that bug and then move on”, but fixing bugs has an engineering cost. Defects typically take longer to debug and don’t add any business value to the customer. It is a behind the scenes skunkworks operation that gets no recognition.
In a perfect world, we would rally the development team and assign all bugs for the current software iteration and have the QA team on-call to make sure the bugs get tested in every scenario, while product management pushes back new features to the next software iteration (this can be weeks).
Yeah right. The world isn’t linear. There is no right approach but I typically stick to a few rules:
- QA should log all bugs with reproduction steps and stacktraces in a defect backlog for the tech/product team to prioritize. It’s extremely important to include reproduction steps and a stacktrace as it will save debugging time, which is engineering time, which is costly time.
- Bugs that will impact the customer over 50% of the time are showstoppers and must be addressed immediately in the current software iteration. No new feature will help you gloss up your app when a showstopper bug is apparent. Fix that shit.
- One day of the week should be dedicated strictly to fixing bugs. This will stop bugs from piling up and keep the software integrity in tact.
- Celebrate being 100% defect free because it won’t be long until new bugs get introduced into your software. Enjoy being 100% bug free as a team. Development/QA/Product teams are polar opposites of each other. While we all work together, things can get rough during crunch time, and celebrating common success is a great team building activity.