- What is Critical Thinking?
- What is Cognitive Bias?
- List of Cognitive Biases
As an architect, decision-making is critical to the success of software design and development. The architect makes decisions on the significant requirements that strongly influence the choice of structures for the architecture. The structure and the quality attributes of the architecture have far-reaching consequences that reverberate throughout the system.
The architect has to think creatively to solve complex obstacles that occur due to requirements, constraints and also legacy systems. Critical thinking is there for an essential skill an architect requires.
What is Critical Thinking?
Critical Thinking has several techniques and tools that assist an architect in making better decisions. The ability to discern biases from facts makes you a better critical thinker which leads to making better decisions.
Critical thinking is the intellectually disciplined process of actively and skillfully conceptualizing, applying, analyzing, synthesizing, and/or evaluating information gathered from, or generated by, observation, experience, reflection, reasoning, or communication, as a guide to belief and action. ~ Foundation for Critical Thinking
What is Cognitive Bias?
There are a number of cognitive biases that influence our ability to make decisions.
“The way a particular person understands events, facts, and other people, which is based on their own particular set of beliefs and experiences and may not be reasonable or accurate.” ~ Cambridge Dictionary
List of Cognitive Biases
The following biases affect belief formation, reasoning processes, decisions, and human behaviour in general.
The Availability Heuristic
“The availability heuristic is a cognitive bias in which you make a decision based on an example, information, or recent experience that is that readily available to you, even though it may not be the best example to inform your decision.” ~ Tversky & Kahneman, 1973
The availability heuristic can be described in simple terms where recent memories are given greater significance when a decision is made. It can also be described as a mental shortcut our mind uses by using information that is easy to recall. So when we need to make a decision or solve a problem, the mind will use information that is easier to recall.
After reading about Design Patterns, the software architect starts to overuse the design patterns throughout the design of the software. Since the design patterns are easy to understand and can be easily recalled from memory, the bias implies it must be important or at least more important than other options which can not be easily recalled.
It is not entirely possible to avoid the Availability Heuristic, since this is the way our brain is wired. Hence the goal is not to override or avoid it, but rather to recognize it and be aware of it when making a decision of solving a problem. You can however try and avoid making impulse decisions and consider all the facts. Also, seek out information other than your normal sources that have another point of view.
The Attentional Bias
A person’s failure to consider alternative possibilities when making decisions while their mind is occupied with an existing train of thought is known as the Attentional Bias. The attentional bias implies that your decisions are biased to what you pay attention to. As an architect, this occurs when you only pay attention to specific topics or requirements while ignoring the others since this is what you currently read about as part of your continuous learning.
An architect is learning about the Microservice architecture style as part of his continuous learning. So when the architect has to decide which architectural style to use for a software architecture project, he might be more biased toward using a microservice architecture style. The bias in his decision is due to all the self-learning and research occupying his attention. His mind ignores the other architectural styles and the requirements within the system that might require a different approach.
An architect makes decisions and solves problems on a continuous basis within software engineering projects. To ensure that better decisions are made and more creative solutions for the problems are found, it is important to recognise the different cognitive biases that influence your human beings.
These cognitive biases cannot always be avoided, but one should keep an open mind when making decisions not to be biased.