This post is a mea culpa. I’ve always believed that a software team must be led by someone who still knows how to code and
When You Absolutely Must Use Test-Driven Development
On my team, we try to use Test-Driven Development (TDD) whenever possible, but I confess that we sometimes get either over-confident or lazy. Some of
I Promise You Will Have Bugs
Even when we were happily married, my wife and I used to marvel that any marriages manage to make it until “death do us part,”
How to Avoid Performance Bugs
Suppose your application works but is just slow. Is that a bug? I suggest that if it is slow enough that your users will dislike
How to Avoid the Surprises in Third-Party Components
Six percent of the defects we found in a recent release of my company’s software were directly attributable to documented but surprising behavior in third-party
How Missing Abstractions Cause Defects
It’s pretty obvious how WET code (We Enjoy Typing or Write Everything Twice) breeds defects: developers modify one instance of the duplicated code block and