Software development is heavily influenced by many of the most common cognitive biases: technical choices are made following hypes (pro-innovation bias) or gurus (bandwagon bias); we create homemade tools instead of using de-facto standards (not-invented-here syndrome) and fix bugs without a full understanding of the problems (placebo bias) or even we pretend that there isn't any problem at all (ostrich bias). The first step to bring software development closer to an engineering discipline is recognizing this biases and admitting that we all suffer of them.
2. A bias is a
thinking
pattern that
leads to
systematic
mistakes of
judgment
3.
4. 1. Too much information: we are overloaded by
information, so we aggressively filter. Some of the
what we leave out is actually useful and important
5. 2. Not enough
meaning: we
imagine details that
were filled in by our
assumptions, and
construct meaning
and stories that
aren't really there.
6. 3. Need to act fast:
quick decisions can
be seriously flawed.
Some of the quick
reactions and
decisions we jump
to are unfair and
counter-productive
7. 4. What should we remember?: our memory
reinforces errors. Some of the stuff we remember for
later just makes all of the above systems more biased
8.
9. Framing effect: people react to a
particular choice in different ways
depending on how it is presented
10.
11. Choice-supportive bias: when you
choose something, you tend to feel positive
about it, even if that choice has flaws
13. Well traveled road effect: travelers estimate the time
taken to traverse routes differently depending on their
familiarity with the route. Frequently traveled routes are
assessed as taking a shorter time than unfamiliar routes
14. Overconfidence: some of us are too confident
about their own abilities, and this causes us to
take greater risks in our daily lives
The amount of
damages that you can
cause with a wrong
decision is proportional
to the level of
overconfidence with
which you take it
15. Law of triviality (or bikeshedding): giving
disproportionate weight to trivial issues
26. Bias blind spot: we recognize the impact of
biases on the judgement of others, while failing
to see the impact of biases on our decisions
27. A non-repeatable
process producing
few great successes
and
many miserable failures
We got what we deserved
for making software
development a
craftsmanship instead of an
engineering discipline
30. Those who cannot develop software,
teach software development methodologies
31. Life is easier on giants' shoulders
It's a curious thing about software industry: not only
we do not learn from our mistakes, we also don't
learn from our successes
- Keith Braithwaite
32. Listen to listen, not to take a pause
and think what you'll say next