Code Smell 179 - Known Bugs

Every software has a list of known bugs. Why?

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

Problems

  • Hard to-track lists

  • Technical Debt

  • Functional Debt

Solutions

  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!

Context

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

Wrong

<?

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

Right

<?

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

// we pay our debts

Detection

[X] Automatic

We need to avoid creating bugs and issues.

Tags

  • Technical Debt

Conclusion

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.

Relations

More Info

Famous Bugs

Disclaimer

Code Smells are just my opinion.

Credits

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.