What
has Second Law of Thermodynamics got to do with Software Maintenance ? Or means
to learn from other disciplines to make better decisions
I think Robert Frost had it easy. He had to choose between two roads and took one and survived to write a poem about it. But Knowledge workers of the day, rarely face such binary choices or have it this easy. Their work life is full of making such choices big and small. They have to make choices where the consequences are rarely obvious and there is no travelling back. knowledge workers mess it up more often that not.
The problem is that human beings are not great decision makers. In fact, we are poor decision makers and worse, don’t realize that we are poor decision makers most of them time. Given below are a few reasons why we are poor at making decisions.
Specialization Vs Generalization
The world demands specialization but Problem solving needs knowledge from multi disciplines. While specialized knowledge is very much used to solve advanced problems, the problems that we face / the decisions that we need to make are typically in the boundaries between different domains ( for e.g. which activity has to be prioritized when resource requirement is the same or which project has to be chosen when their resource requirements are the same) where our advanced problem solving skills are not of much use. They also typically need a breadth of knowledge than a depth of knowledge. The other problem with Specialization is that we also risk allowing our thinking to be narrowed down, thereby making us incapable of using lessons from a different domain and use it for solving problems
Need for Multi Discipline Thinkers
Grady Booch in his book ‘ Object Oriented Analysis and Design with Applications -2e’ talks about how the complexity of Enterprise Software exceeds the human intellectual capacity. To quote from the book
For a person who is familiar with the concept of entropy and also software development can see the relationship between the closed system and a software system. The concept can be extended to maintenance of software systems . People who are familiar with software system know that without proper maintenance and servicing of technical debt, it can become instable over a period of time. many such examples can be quoted, but how do we learn from other disciplines ?
Enter the concept of Mental Models
I first came across the term Mental Models in Peter Senge’s ‘The Fifth Discipline’. Senge defines Mental Models as ‘conceptual frameworks consisting of generalizations’. To quote from Wiki , A mental model is an explanation of someone's thought process about how something works in the real world. It is a representation of the surrounding world, the relationships between its various parts and a person's intuitive perception about his or her own acts and their consequences.
Mental models are important because they help set an approach to solve problems and do tasks. They also help to transfer experiences from one domain to another since the thought process is what is important and is independent of the domain. While certain mental models are generic, many mental models can be specific to a certain domain or discipline.
The more the mental models a person has at his command, better will be his/her problem solving ability. Remember the folk saying "To a man with only a hammer every problem looks pretty much like a nail." We don’t want our problem solvers to have a few mental models and use that for solving all problems / take decisions.
The mental models can be from physics, chemistry, biology, mathematics and systems thinking. And it is important that the person who uses the mental models stores them relating to each other and not in isolation. When that happens, the array of knowledge / experience takes a very usable form. Charles T Munger calls this a ‘latticework of knowledge’ .
Inversion: This simply means ‘begin with the end in mind’. This is attributed to Carl Jacobi. One of his maxims was: 'Invert, always invert' ('man muss immer umkehren'), expressing his belief that the solution of many hard problems can be clarified by re-expressing them in inverse form. This allows us to look at a problem forward and backward and un cover any hidden assumptions that we may have. The advantage with this approach is that it helps us to avoid making mistakes that are steps that don’t help progress towards a solution. Many a time in life, we can arrive at good decisions by avoiding the usual mistakes . this is a point that is already called out in my old article ‘Plan to do new mistakes’.
Second Order Thinking: while it is very obvious that the decisions that we take have their own consequences, many a time, we really don’t give the consequences enough thought. The reason can be that we are under pressure to act fast or don’t have the time to think through the consequences or even if we think through, the consequences are known and people in the know simply have the ‘ let us cross the bridge when we come to it’ attitude. In work as well as real life, a successful outcome is the sum of many correct decisions and not a single decision. If we do this, then what and then.. is how this mental model is structured. In response, we need to validate whether the consequences are what we desire. In this lecture, Charlie Munger has mentioned Warren Buffet as “Thinking naturally in terms of decision trees”. Decision trees essentially allow one to compare the potential outcomes of different paths of action. Second order Thinking will be covered in more detail in one of the following posts.
Map is not the Territory: A map is a representation of a territory and it has a certain level of abstraction built in to it. A map may present certain dimensions of a territory. But for all the resemblance to reality, the fact is that it is not the territory. It may be about the terrain and not about the weather. So when people mistake the map for the territory to solve problems and make decisions, they address certain parameters and not all. Reality is messier and parameters not considered in a map may role in the outcome. For example, if you are planning for a trek and only consider the terrain and not the weather because the map didn’t contain the details, there is a very high probability that the trek may not meet its objectives due to weather . And more importantly, maps can be also wrong. Hence Map is not the territory is one of the fundamental models. For planning, this translates as ‘the reality represented by the plan and the reality once we start executing are quite different’. Very rarely plan and reality end up the same in enterprise projects due to the nature of complexity involved.
Image Courtesy: Internet and all copyrights to the rightful owner
I think Robert Frost had it easy. He had to choose between two roads and took one and survived to write a poem about it. But Knowledge workers of the day, rarely face such binary choices or have it this easy. Their work life is full of making such choices big and small. They have to make choices where the consequences are rarely obvious and there is no travelling back. knowledge workers mess it up more often that not.
The problem is that human beings are not great decision makers. In fact, we are poor decision makers and worse, don’t realize that we are poor decision makers most of them time. Given below are a few reasons why we are poor at making decisions.
- We are not Rational: As human beings, we are not as rational as we think to be. To be more precise, we are irrational beings and think and try to act rational at times. This realization has given birth to a field called behavioral science.
- We don’t Capture enough information about problems that we face: We don’t know what to do or how to approach the problem / issue in front of us
- We look for easy means to take decisions: Many times, we fall back to decisions based on ‘gut-feel’ . While it works well for certain scenarios, one rarely is successful using gut-feel for decisions in complex domains ( of the kind that we come across in work life).
Specialization Vs Generalization
The world demands specialization but Problem solving needs knowledge from multi disciplines. While specialized knowledge is very much used to solve advanced problems, the problems that we face / the decisions that we need to make are typically in the boundaries between different domains ( for e.g. which activity has to be prioritized when resource requirement is the same or which project has to be chosen when their resource requirements are the same) where our advanced problem solving skills are not of much use. They also typically need a breadth of knowledge than a depth of knowledge. The other problem with Specialization is that we also risk allowing our thinking to be narrowed down, thereby making us incapable of using lessons from a different domain and use it for solving problems
Need for Multi Discipline Thinkers
Grady Booch in his book ‘ Object Oriented Analysis and Design with Applications -2e’ talks about how the complexity of Enterprise Software exceeds the human intellectual capacity. To quote from the book
"The world is only sparsely populated with geniuses. There is no reason to believe that the software engineering community has an inordinately large proportion of then" Although there is a touch of genius in all of us, in the realm of industrial-strength software we cannot always rely upon divine inspiration to carry us through. Therefore, we must consider more disciplined ways to master complexity.It helps us to take better decisions if we can not only learn from other people’s experience, but also learn from other disciplines. For e.g. the second law of thermodynamics talks about the concept of entropy. This essentially means that the disorder in any closed system keeps increasing and external intervention is needed to keep the system stable.
For a person who is familiar with the concept of entropy and also software development can see the relationship between the closed system and a software system. The concept can be extended to maintenance of software systems . People who are familiar with software system know that without proper maintenance and servicing of technical debt, it can become instable over a period of time. many such examples can be quoted, but how do we learn from other disciplines ?
Enter the concept of Mental Models
I first came across the term Mental Models in Peter Senge’s ‘The Fifth Discipline’. Senge defines Mental Models as ‘conceptual frameworks consisting of generalizations’. To quote from Wiki , A mental model is an explanation of someone's thought process about how something works in the real world. It is a representation of the surrounding world, the relationships between its various parts and a person's intuitive perception about his or her own acts and their consequences.
Mental models are important because they help set an approach to solve problems and do tasks. They also help to transfer experiences from one domain to another since the thought process is what is important and is independent of the domain. While certain mental models are generic, many mental models can be specific to a certain domain or discipline.
The more the mental models a person has at his command, better will be his/her problem solving ability. Remember the folk saying "To a man with only a hammer every problem looks pretty much like a nail." We don’t want our problem solvers to have a few mental models and use that for solving all problems / take decisions.
The mental models can be from physics, chemistry, biology, mathematics and systems thinking. And it is important that the person who uses the mental models stores them relating to each other and not in isolation. When that happens, the array of knowledge / experience takes a very usable form. Charles T Munger calls this a ‘latticework of knowledge’ .
“What is elementary, worldly wisdom? Well, the first rule is that you can't really know anything if you just remember isolated facts and try and bang 'em back. If the facts don't hang together on a latticework of theory, you don't have them in a usable form.”While there are many mental models that people are familiar with ( laws of thermodynamics, pareto principle, laws of diminishing returns and so on), let us look at 3 Mental Models to start with
Inversion: This simply means ‘begin with the end in mind’. This is attributed to Carl Jacobi. One of his maxims was: 'Invert, always invert' ('man muss immer umkehren'), expressing his belief that the solution of many hard problems can be clarified by re-expressing them in inverse form. This allows us to look at a problem forward and backward and un cover any hidden assumptions that we may have. The advantage with this approach is that it helps us to avoid making mistakes that are steps that don’t help progress towards a solution. Many a time in life, we can arrive at good decisions by avoiding the usual mistakes . this is a point that is already called out in my old article ‘Plan to do new mistakes’.
Second Order Thinking: while it is very obvious that the decisions that we take have their own consequences, many a time, we really don’t give the consequences enough thought. The reason can be that we are under pressure to act fast or don’t have the time to think through the consequences or even if we think through, the consequences are known and people in the know simply have the ‘ let us cross the bridge when we come to it’ attitude. In work as well as real life, a successful outcome is the sum of many correct decisions and not a single decision. If we do this, then what and then.. is how this mental model is structured. In response, we need to validate whether the consequences are what we desire. In this lecture, Charlie Munger has mentioned Warren Buffet as “Thinking naturally in terms of decision trees”. Decision trees essentially allow one to compare the potential outcomes of different paths of action. Second order Thinking will be covered in more detail in one of the following posts.
Map is not the Territory: A map is a representation of a territory and it has a certain level of abstraction built in to it. A map may present certain dimensions of a territory. But for all the resemblance to reality, the fact is that it is not the territory. It may be about the terrain and not about the weather. So when people mistake the map for the territory to solve problems and make decisions, they address certain parameters and not all. Reality is messier and parameters not considered in a map may role in the outcome. For example, if you are planning for a trek and only consider the terrain and not the weather because the map didn’t contain the details, there is a very high probability that the trek may not meet its objectives due to weather . And more importantly, maps can be also wrong. Hence Map is not the territory is one of the fundamental models. For planning, this translates as ‘the reality represented by the plan and the reality once we start executing are quite different’. Very rarely plan and reality end up the same in enterprise projects due to the nature of complexity involved.
Image Courtesy: Internet and all copyrights to the rightful owner
No comments:
Post a Comment