I’ve been in software development for over 30 years. I’ve done everything from requirements engineering through software design and coding to integration testing. Over the years, I’ve started to notice that developers (including myself as a prime example, over and over and over again) often make the same types of mistakes, regardless of the type of project, language/framework/toolchain, or development paradigm.
About five years ago, I started looking into some of the ‘soft skills’ that affect what we do every day but aren’t necessarily taught in a collegiate CS program or coding bootcamp. The one that caught my eye the most was the effects of cognitive bias on rational thought. It was around this time that I was asked to give a 10-minute presentation on some aspect of software development as part of a lunch-and-learn series at my employer. The ensuing conversation went something like this:
Me: “OK, I’ll talk about cognitive bias as it pertains to software development.”
Organizer: “Um… what?”
Me: “‘Cognitive bias’ is a general term covering failures in logical thinking due to the fact that we humans are squishy meatbags whose lizard brains still wield more control over us than should be the case.”
Since that time, I’ve been learning more about cognitive bias and how it affects my profession. I’ve given probably a dozen presentations on the subject, tailored for different audiences both inside my company (who, btw, have asked that I not name them) and for broader audiences.
Not to put too fine a point on it, but here are a couple of relevant quotes from one of my favorite articles on software development (which is hilarious… and terrifying):
The human brain isn’t particularly good at basic logic and now there’s a whole career in doing nothing but really, really complex logic.
All programmers are forcing their brains to do things brains were never meant to do in a situation they can never make better, ten to fifteen hours a day, five to seven days a week, and every one of them is slowly going mad.
Would it be grandiose of me to say I hope to keep at least one developer from going mad? Yep, since I just read that back and sprained my eye-rolling muscles. Maybe I can do something to help that “situation they can never make better.” At least it’ll be fun to try.
I do enjoy reading many of your articles.
After coming across the Trading Places, a movie I adore, article, I do have one minor quarrel with it (or with Mr. Speare more directly):
Circuit Breakers came in to play after the crash of 87, Trading Places was made in 83.
Therefore, unless I am grossly mistaken, which does happen, no Hollywood License would have been taken in this instance.
So basically 13 months after your comment, I finally have a sufficient intersection of free time, inclination, and skill to actually moderate and accept it (long story, not worth telling, condenses to “I’m an idiot”)!
I guess that makes sense on the timing; at any rate, I’m a lot more tolerant of Hollywood License than I used to be. For instance, when Top Gun first came out, I couldn’t avoid picking apart every bad detail I could find: “Oh wow that new MiG looks exactly like an F-5, the Soviets designate their MiGs with odd (not even) numbers, and why the hell are are the French selling them anti-ship missiles?” It was literally years before I could shut down my inner Well Actually guy and just enjoy the movie.
Looking back on it now, I get it – they wanted to use real planes and there probably wasn’t an airworthy MiG in all of North America that A) they could have flown and B) was new enough to be a plausible brand-new “MiG-28”. As for the missile, only MilAvGeeks (or Tom Clancy fans, but I repeat myself) would have known about the Kingbolt, but this was only 4 years after the Falklands War so ‘Exocet’ would probably at least have rung a bell for most viewers.