The Guessing Game

by Krishna on January 23, 2008

A few days ago, I had a discussion with a programmer about his solution to a particular problem. Since he was having difficulty getting it to work, I suggested a different approach. He said that he had already considered that, but it would be too expensive in terms of performance.

So I asked him how much more expensive the 2nd approach was. Was it a few percentage points (which we could live with) or orders of magnitude. He said that he was not sure, but based on the logic, it would be slower. He had never measured it.

Let me not end the story by saying who was right or wrong. The point I want to illustrate is that in many situations, people tend to make decisions without ever having factual data. Their decision may be right. It may be wrong. But at the time they make it, they base that on pure speculation without any basis in real data.

It is interesting how often this happens in software development decisions. Why was a particular technology, language or methodology chosen? Usually, the decision maker will point to it being “better”, “higher-performing”, “more efficient”, etc. than other choices. Unfortunately, those persons cannot explain why other companies (and perhaps superior-performing competitors) seem to do very well with those sub-standard technologies.

In many cases, a person makes a decision based on one primary factor, and then uses other reasons to justify the decision. For example, a programmer may be more comfortable with Java or C# or Ruby, because of greater experience in and knowledge of the language and tools. It is perfectly okay to say, “This works for me because I know this better”. Instead, we get religious wars suggesting that there is only one pure language and the others are all doomed. Apparently, no one has created working software in those other languages.

Once someone has made a decision, it is very easy to find evidence to support it. Take your pick in any area: politics, religion, technology, arts, etc. Think of one belief you have right now and Google it. You will find many results supporting it. Now, Google the opposite of that belief. Lo and behold, you can find just as many results.

The more important the decision, the more people are prone to guessing. What should the company do for its employees and its customers? How should it respond to market trends and competition? One of the most frequent sentences I hear from people in various companies is, “I think so (or he/she said so) and hence we will go ahead and do this.

How about saying, “I have no clue. Let us experiment. Let us try this out. Let us get the results. Let us ask people and get feedback. Maybe we are making a mistake. Let’s see if it works. If it doesn’t, let us try something else.

The key thing that stops people from doing this is the horror of admitting they are wrong. Of course, if they have guessed wrong, they will be proved wrong. But then, they can always blame bad luck and other convenient scapegoats. Some people can never make wrong judgments.

Very often, leaders and managers do not explain the reasons why they ask for something. By doing that, they put themselves in an impossible position. There is no one to correct their reasoning or provide contrary data. And when their decisions start showing signs of failure, they are hesitant to change them because it highlights their original wrong thought process.

I think the solution for this problem is a method of decision-making that incorporates honesty and introspection. What is the real reason behind a particular decision? Sometimes, the honest answer to that question can be pretty ugly. Maybe the decision is made out of fear, or selfishness. Maybe so, but denial will only lead to problems down the road.

Understanding the true reasons behind a decision will help divorce you and your ego from the decision and marry the reasons to the decision. If the reasons change, you can change your decision without thinking that you are at fault.

Comments on this entry are closed.

Previous post:

Next post: