In this post, we are going to take a look at some of the cognitive biases web developers, especially front-end developers fall victim to and eventu...
For further actions, you may consider blocking this person and/or reporting abuse
I don't think survivorship bias is over-estimating your chance of success. It's judging what works only on successful things.
The cannonical example being planes that made it back in WWII being the model for where the plane body should be reinforced, which was not helpful because it's the planes that don't make it back that tell you where the problems are.
So in web development that would be akin to using projects that have never been hacked as your model for where to harden security.
It's the projects that get hacked that reveal the weaknesses.
Great comment, thanks for that WWII planes trivia :)
Thank you for writing the article!
While being aware of the biases can really help, I am missing some perspective in some of the examples. My job (apart from being a programmer) is to lead a team of developers and be responsible for all technical things in a company. This requires me to think about things differently than when I was purely a developer:
While applications are started only once, the real trouble comes after a few years. To battle real world problems we have quite a lot of restrictions regarding external libraries and frameworks.
Most of you examples (or explanations) do not take 'the long term' into account. It would be nice if the examples would consider projects that live for a long time in the context of a company.
Yes I agree, long term perspective is one which is definitely an important consideration, thanks for pointing it out. Though I would like to understand how the time frame would alter the thinking process or support the bias in question. Is it okay to have some biased thinking for long-term strategy?
Yeah, in some cases it slightly changes how much of the bias you want to resist. A few thoughts on a few biases you mentioned:
Social Proof
In your post, without saying it explicitly, it comes across as: "Everyone else is using it, that does not mean it's the right choice". In the context of long term organisational survival it is actually most often best to use something that is widely used, even if it's not the best.
Default Effect
This can actually be good. It's worse if you have to support 10 different stacks. We have the rule to keep about 2 stacks maximum. We only introduce a new one when we phased out the oldest version. On top of that it should be 'a lot' better than the current version to compensate for the training, learning curve and future migration.
Authority Bias
It's good to question why. However at some point you know all tools within the company are selected carefully and at that point it is ok go with the bias.
Availability Bias
Working with freelancers can positively influence this. While they might like to learn something new, it also comes at a cost.
Sunk cost fallacy
This is a tricky one. I am the first to say: "It does not matter we have invested a lot in this, it does not bring enough anymore". It's however very hard to find a balance, sometimes you keep old things because upgrading does not bring more than it costs.
Not-Invented-Here Syndrome
We have our own forms and routing library. Two examples where there are popular community versions. It's not bad to roll your own libraries, even if there are pretty good examples. I often encourage my developers to write their own code first before searching for a library, this ensures that they understand what they are looking for. People also tend to forget the cost of introducing an external library, if your site lives for 5 years, the thing you introduce needs to be maintained for 5 years as well. On top of that, some popular choices for common things are actually not as good as you might think.
In any case, I would say this would be a good process: hack something together to get an understanding of that you need, search for a library that is close to what you need, if you can't find a suitable library (where suitable includes long term thoughts) roll your own (preferably open source).
Some good points, but looking at the examples that you give I think that in many cases these decisions/choices are down to practical reasons.
For instance, maybe people use CRA, even when marginally better choices are available, because CRA does the job and you don't lose time on retraining or relearning for another tool.
It's good to be aware of these potential biases, but there may be a multitude of reasons why in a certain situation a dev or an organization might choose this or that tool or option, it might be just a matter of practicality.
You introduced another bias :-)
It's not only the "Webdeveloper" who suffers from these side-effects, just use "Developer" and you're more right than ever.
Another one for you, which I encounter a lot because I'm a Principal Engineer: Because he has more experience, he must be right. (But then they forget I'm also a human). It will cause the one with an idea to shut up, afraid of having a "stupid" idea.
And another one. I won't ask my question, because they might think that I don't understand it yet (... or think I'm stupid). But the truth is, that you should not be afraid to ask a question about something you don't understand, because then you learn. People can't read minds, so speak up and let us give you our wisdom, so that you can be a more valuable team-member.
Yes, that's definitely some narrow-minded thinking from my part. Apologies. I agree with you on the "Developer" label, but I think it would be great if we don't target a particular set of people for these thinking errors. I think these biases applies to all human beings as a whole.
Nice post, you should also check out The Cognitivie Bias Podcast by David Dylan Thomas.
Sure, will check it out definitely. thanks for sharing.
I personally like your examples, although they might be biased as well. Thanks for the article and for linking to the sources!
biases... biases... everywhere biases...
but in Tamil Nadu I thought you were more spiritual ;)
visualcapitalist.com/50-cognitive-...