In a recent post, I addressed the issue of developers blindly following directives from superiors on implementing technical solutions, or adhering to processes without understanding the underlying reasons for the guardrails. This is especially prevalent among remote developers, who often implement products without considering broader implications or trade-offs. This observation prompted me to reflect on a crucial skill that appears to be lacking in our current era, especially in light of recent real-world events. This skill is critical thinking—the ability to think independently rather than simply following the crowd.
The Role of Critical Thinking in Development
For developers, critical thinking is an essential skill, especially when making architectural decisions. One effective way to cultivate critical thinking is the “Five Whys” technique. This involves asking:
- Why is this process the way it is today?
- Why is that particular element included?
- What is its purpose? Why do we do it this way?
- Why was it implemented like that at the time? What were the constraints?
By questioning processes and policies, developers can avoid blindly following them without understanding their underlying reasons. It’s common for people to adhere to business or development processes without questioning their validity or origin. When asked why they follow these processes, many respond with, “I don’t know, it’s just the process.” However, understanding the ‘why’ behind a process is essential. While communication of these reasons is important, individuals also bear the responsibility to understand them. Don’t be a follower—understand and question the processes you follow.
In the linked posts below, I explore the problems of not applying critical thinking, the benefits of incorporating it, and techniques to effectively use critical thinking. Before you click on those links, continue reading this post to understand how critical thinking extends beyond software development and how you can apply it in your everyday life.
Potential Problems from Lack of Critical Thinking in Software Development and Architecture
The Importance of Critical Thinking in Software Development and Architecture
Critical Thinking Beyond Development
Critical thinking isn’t just vital in the realm of software development; it’s crucial in everyday life as well. This is particularly true when consuming media and news. For many years, I believed certain individuals were bad actors based on media portrayals. However, I later realised that these portrayals were often misleading or taken out of context. Media can sometimes push agendas that lead people to accept information without question.
Consider the example of a teacher in America who shred a video encouraging students to critically evaluate social media posts about JK Rowling. The student was asked to form their own conclusions by reading JK’s words themselves, rather than accepting popular opinions. This exercise revealed that the certain popular portrayal was not entirely accurate.
The Danger of Blind Acceptance
Many people accept information from sources with political, monetary, or cultural agendas without questioning its validity. This can lead to a distorted view of reality. For instance, individuals or policies labeled as racist, hurtful, “phobic,” or far-left/right extremists often turn out to be different upon closer examination. It’s essential to listen to what these people actually say and read their words for yourself, evaluating their actions rather than accepting labels at face value.
Encouraging Independent Thought
If you read something controversial or hear a policy being labeled as dangerous, take the time to investigate it yourself. Read the policy, listen to the person’s actual words, and make your own judgment. Form your own ideas and opinions based on evidence and critical evaluation. Avoid becoming like the sheep in Orwell’s “Animal Farm,” who blindly repeat slogans without understanding their meaning. Free thinking and independence are vital for personal growth and societal progress.
In conclusion, critical thinking is an indispensable skill in both professional and personal contexts. Whether you’re a developer questioning a technical process or an individual evaluating media and group narratives, the ability to think independently and critically is crucial. Don’t just follow the crowd—engage, question, and form your own conclusions.