4+ 1 Thinking Skills for Competent
Software Engineers

https://www.google.com/imgres?imgurl=https%3A%2F%2Fi.imgur.com%2FS3cpvak.jpg&imgrefurl=https%3A%2F%2Fimgur.com%2Fgallery%2F21

A turning point in my teaching career

That lecture was the perfect example of how to engage students in critical thinking. It has also motivated me to reflect on the role of thinking to learn new concepts. The question: Are there any other kinds of thinking skills apart from critical thinking? have been intriguing to me forever.

The 4+1 Skills for a Competent Software Engineer

Software Engineers form a major chunk (approx 6%) of the global workforce that influence our routine activities like shopping, watching movies, and selecting hotels for our favourite tourist spot. Hence, identifying such thinking skills is essential to have better applications for us.

My listing includes five skills namely (i) Computational Thinking, (ii) Probabilistic Thinking, (iii) Systemic Thinking, (iv) Ontological Thinking and Critical Thinking.

By taking inspiration from Phillipe Kruchten who specified The 4+1 View Model of Architecture to describe an information system, I would like to call these thinking skills by the name of The 4+1 Skills for Competent Software Engineers.

Here, the Critical Thinking skill is deliberately separated out to highlight its generic nature. I believe the other four skills are specialized skills most relevant to Software Engineers.

  1. Critical Thinking Critical thinking is a method of investigation involving the analysis of known information leading to a valid conclusion. Rigorous questioning is commonly used to engage oneself in critical thinking. It facilitates problem-solving and effective communication.
  2. Computational Thinking Computational thinking is a method to specify a computer-based solution to a problem. It involves identifying appropriate programming abstractions such as iteration, task decomposition, and data types to solve a problem. It is becoming as primitive thinking skills like literacy and numeracy.
  3. Ontological Thinking In the context of an information system, an ontology is a tool to manage knowledge. Ontology, in its broadest sense, provides a set of categories to classify observed phenomena in reality. These categories are useful to represent, relate and reason about many physical and social constructs. Ontological thinking develops insights about new knowledge by establishing associations with existing knowledge.
  4. Probabilistic Thinking Probabilistic thinking is about listing out various possibilities of events that may happen in future and associating them a degree of occurrences. This kind of thinking facilitates decision making, the reasoning for causality among events, diagnosing about system’s failure and analysing the impact of an event on a system. This kind of thinking is becoming an essential tool to build intelligent systems.
  5. Systemic Thinking Most modern information system involves a large number of components interconnected in a complex way. Part-Wise reasoning of such systems fails to grasp the emergent properties which occur through interactions between components. The systemic thinking is useful to describe such complex systems through multiple views.

It is not my claim that this list is complete, exhaustive, and unique backed by rigorous empirical research. Rather, it is my choice evolved through literature survey on thinking and effective teaching and self-validated against the professional growth of my students which I observed during my teaching career of about 30 years.

It is also true that a person possessing these thinking skills may be aware or unaware of its possession. Likewise, a teacher may intentionally or unintentionally cultivate these thinking skills among his/her students.

One good thing about these 4+1 skills is that they can be taught and learnt. A more effective teacher can cultivate these skills through highly stimulating discussion as observed in Prof. Joshi’s classroom. Moreover, a self-motivated learner can acquire these skills through extensive reading and purposefully aligning his/her thought process to one particular kind of thinking.

Arvind is a Professor of Computer Engineering in Dr. Babasaheb Ambedkar Technological University Lonere India.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store