Code Smell 179 - Known Bugs

Every software has a list of known bugs. Why?

Play this article

TL;DR: Don't track bugs. Fix them.


  • Hard to-track lists

  • Technical Debt

  • Functional Debt


  1. Stop calling it a Bug

  2. Reproduce the Defect.

  3. Cover the scenario with automation

  4. Make the most straightforward fix (even hardcoding solutions)

  5. Refactor

Welcome to TDD!


We don't like to be interrupted.

Then, we create lists and delay fixes and solutions.

We should be able to change software easily.

We need to improve our software if we can't do quick fixes and corrections.

Not by creating To-Fix lists.

Sample Code



function divide($numerator, $denominator) {
  return $numerator / $denominator;  
  // FIXME denominator value might be 0
  // TODO Rename function



function integerDivide($numerator, $denominator) {
  if (denominator == 0) {
    throw new DivideByZero();
  return $numerator / $denominator;  

// we pay our debts


[X] Automatic

We need to avoid creating bugs and issues.


  • Technical Debt


We need to discourage bugs and issue trackers on the engineering side.

Of course, customers need to track their findings and we need to address them ASAP.


More Info

Famous Bugs


Code Smells are just my opinion.


Photo by Justin Lauria on Unsplash

In general, the longer you wait before fixing a bug, the costlier (in time and money) it is to fix.

Joel Spolsky

This article is part of the CodeSmell Series.