As the cliché goes, there are few certainties in life. For programmers, bugs are one of the certainties. How we react to bugs matters.
There are plenty methodologies, processes and technologies that deal with bugs. These are all important and are widely written about.
I think that programmers also benefit from a better understanding of behavioral and emotional responses to bugs. These responses can lie close to the surface and affect the performance of individuals and teams. This post looks at both constructive and negative responses to bugs as a kind of “field guide” to identifying these behaviors in yourself and others.
Here’s a story I have heard many times about programmers.
“I asked Joe to write a simple bit of code to do <xyz>. It should have taken a few hours, maybe a day at worst. He took several days, he wrote a general framework that was far more complicated than we needed. Why does he keep over-engineering his code?”
It could be that Joe is an Abstract Oriented Programmer. Here’s a few snowclones…
If you often over-engineer your software, you might just be an Abstract Oriented Programmer.
If you spend more time thinking about tomorrow’s problems than today’s, you might just be an Abstract Oriented Programmer.
If you love looking for deeper patterns, get thrills from unconscious insight or talk in analogies, you might just be an Abstract Oriented Programmer.