Biases in Software Development
BoHong (Boden) Chen
Department of Computer Science, Allen
Computer Science III
Professor Ben-Yaakov
9 December 2022
Cognitive bias is common in our daily lives and affects every decision we make throughout the day. This is a common problem throughout our lives, and understanding it is vital in making objective decisions that can best solve it. In software development, this skill is vital since the production of an efficient product is crucial and the diversity of the users emphasizes the need to be as objective as possible. This essay focuses on cognitive biases, their effect on software development in general, and ways to counter them.
Confirmation bias is one of the most common biases in our daily lives and probably the most famous. People tend to trust themselves more, and therefore the way we intake information is warped to follow their interests. For example, a common effect of this is Self-Serving bias, where we make decisions that serve ourselves than consider others (Ruhl, 2021). To counter this, it is important to focus on other opinions and not ignore them.
In software development, a developer might believe that their idea is better since it works well with adult testing, but they will ignore the fact that it failed with child testing. This can be worsened as they follow the people supporting this while refusing to listen to the other side (Cherry, 2022). To be a good debater, a person must also understand and acknowledge the other side. Achieving this can help you see the flaws in your own ideas and improve them.
People usually fear change, and Anchoring Bias is a great example of this. We are heavily influenced by our first decisions. When the first idea does not work, people often branch along, attempting new ways to approach the problem using the same idea. To counter this, you will need to be open to new and unique ideas and approach the same problem from a different angle (Cherry, 2022).
The Einstellung Effect is similar to this, showing that people often apply their previous solutions to new problems. If a software developer started on a solution from scratch, they might make a highly efficient and simple design. However, if they used recursion to solve many previous designs of similar nature, they might feel recursion is the solution again, not realizing it might not always fit. Reflecting upon a design choice and confirming it is truly the best approach is important (Sturm, 2020).
The Consensus Bias, more commonly known as the False Consensus Effect, warps our perception of the world. People will often overestimate how many people agree with their own beliefs and opinions. This can be particularly troublesome in controversial occurrences as people will think the majority is on their side (Cherry, 2022).
In software development, this bias would create products that would only match the developer's opinions due to their belief that the majority would love it. Instead of listening to other opinions, the developer would think that others would like their idea better and use that instead. Although you might see a product as simple and easy to use, the reality might be different from what you think. Understanding statistics and statistical bias is key to overcoming this false perception and understanding the true percentage of people who understand a product.
People often take a major influence on those around us, therefore, our interactions with others can subconsciously change our own opinions. An example of this is the Bandwagon Effect, where people would ride along the hypothetical bandwagon since everyone else is doing so. Due to this, we will believe that what everyone else is doing is correct without taking a second to think it over.
If multiple developers agree on one solution, other developers will be pulled to do the same thing. This can be common in using third-party tools where importing a library is not vital, but due to small consequences, developers would follow along with the popular opinion (Zelenska, 2018). Making sure to not let peer pressure influence you and presenting your own solution in meetings is important.
When you are invested in something, there is a low chance you will drop it. Sunk Cost Bias, more commonly known as the Sunk Cost Fallacy, makes people feel that more effort and time equivalates to a good idea. This leads to people obsessed with using their solution they placed a lot of effort into, and they are not willing to just give it up (Zelenska, 2018).
This can be a hard bias to counter, yet still prevalent throughout society. This affects software developers as they would often sink many hours into a product and refuse to continue to do something else even if the original product does not work. Logically, the simple solution is to understand where to stop. However, at what point do you determine that the idea will not work? There are many examples of people's perseverance leading to success even when society told them it would not work.
In the end, the solution to this bias can contradict many other messages of commitment and perseverance. Insuring a good balance between commitment and obsession is the key to traversing this fine line.
Cherry, K. (2022, November 6). Types of cognitive biases that distort how you think. Verywell Mind. Retrieved December 9, 2022, from https://www.verywellmind.com/cognitive-biases-distort-thinking-2794763
Mohanani, R., Salman, I., Turhan, B., Rodriguez, P., & Ralph, P. (2020). Cognitive biases in software engineering: A systematic mapping study. IEEE Transactions on Software Engineering. Retrieved September 2, 2022, from https://doi.org/10.1109/tse.2018.2877759
Sturm, M. (2020, February 24). The Einstellung effect and functional fixedness. Medium. Retrieved December 9, 2022, from https://medium.com/mind-cafe/the-einstellung-effect-and-functional-fixedness-two-dangerous-cognitive-biases-and-how-to-31e79e92d1e7
Zelenska, M. (2018, September 7).Cognitive biases in software development. Medium. Retrieved December 9, 2022, from https://medium.com/@myroslavazel/cognitive-biases-in-software-development-part-1-developers-495466573718