Cognitive bias in software development considered harmful


Books like Predictably Irrational (and its sequel, Upside of Irrationality) painstaking document the ways that we fall victim to our own cognitive biases, tripping over our own brains.

In an excellent 2013 article, Jonathan Klein lays out the many ways in which cognitive biases undermine the software development process. Whether it's fundamental attribution error ("my bugs are easily excusable mistakes, your bugs are the result of unforgivable sloppiness"); confirmation bias ("that's enough testing, we know that this works!"); bandwagon effect ("Bob's the bull-goose devops person, it would be silly to doubt his views on this software"); hyperbolic discounting ("a shortcut that saves me a day's work now is OK, even it costs me ten days' fixing in a year") and negativity bias ("the last time we did this it was a huge pain in the ass, screw it.")

But more importantly, Klein also suggests ways that you can mitigate these universal biases in your own software development practices -- procedures that you can follow to make sure that when your stupid brain tricks you, you can spot the slight of mind.

Cognitive Biases in Software Engineering [Jonathan Klein]

(via O'Reilly Radar)

(Image: brain 2, J E Theriot, CC-BY)

Notable Replies

  1. ("a shortcut that saves me a day's work now is OK, even it costs me ten days' fixing in a year")

    I think it's more that short-term thinking prevents even worrying about that future maintenance. Especially when stuff has to be fixed/released RIGHT NOW or when the developer is just fumbling along or sick of this particular problem at the moment.

    Sometimes the opposite happens: overengineering and really robust design and perfect implementation of a feature that isn't going to be used, or two weeks' development time that will save someone a few minutes of work once a year.

  2. I would add optimism bias to the list, which leads us to discount the possibility of unknown phenomena of unknown relevance.

  3. This example wasn't in the original article, so I assume @doctorow created it.

    A Google search to find out what "bull-goose" is was very... interesting. Something to do with strap-ons, apparently.

  4. Which bias is it where you deliberately do just the easy stuff and keep putting off the difficult work and then tell customers that it's on the long term roadmap - scheduled for release in 2 years?

    I'm gonna call it the Low Hanging Fruit bias.

  5. hyperbolic discounting ("a shortcut that saves me a day's work now is OK, even it costs me ten days' fixing in a year")

    In some companies that's called job security. Also, hourly pay.

Continue the discussion bbs.boingboing.net

1 more reply

Participants