Why we have to "Ask Why"

I'm always interested to find personality traits that seem to be common to "smart" people. When I use the term "smart" I don't mean to imply that they have some knowledge that is unattainable by others, also I don't mean to imply that they are more intelligent than the average person (although I suspect that if we were going off IQ that could be true). To be clear, I don't typically include myself in the "smart" category, I tend to think that I just happen to have a good memory which gives the impression of being smart, as well as being prone to asking the question why, which I have observed as being a trait of "smart" people.

When people passively accept information that is given them without asking the question why, the result is often that the person receiving the information winds up with only a cursory understanding of the subject matter. In some cases I would completely agree that the "right approach" is to only obtain the cursory overview so as to be able to quickly dive into whatever task prompted obtaining the needed information in the first place. However, it seems to be that too often this cursory understanding becomes the default level for most persons even after the use of the information becomes more critical. To put it another way, after a person gets the "minimum" information to accomplish a given task there is no further effort put into obtaining a better understanding of why "things work the way they do".

In a large enterprise (such as the one I spend my days currently) the end result of NOT asking why is that people go about their jobs doing completely unnecessary tasks simply because the default understanding is to "do it the way the person before me did it". I'll admit that this is probably easier in terms of the mental energy needed to have someone learn a set of tasks; however, I'd argue that anyone who has to complete a particular task repeatedly over the course of many months and perhaps years would benefit from a deeper understanding of what is attempting to be accomplished.

In the case of a developer the need to ask the question why, IMHO, is NOT optional. If you are a developer and you DO NOT ask "why" at least once a day there is a good chance that you are NOT a good developer. It is easy to fall into the snare of believing that getting a good requirement document means that the "why" question has already been asked and answered and you simply need to implement the technical aspects of the requirement; however, this is almost never the case (except perhaps in the most fundamental of features).

At every level of the development process all parties involved will be benefited by having a deeper understanding of asking the question why at each step along the way. In fact there is even a "method" called the 5 whys which shows how asking the question 5 successively (at least 5 times) will help to uncover the root cause. It would be good to note that as quoted by Jeff Atwood (of Coding Horror fame) if you ask why too many times the answer winds up "because there are people on the earth" which is a good indication that you may have dived too deep.

So if you are a developer don't forget to ask why, in fact in life in general it's probably a good idea to remember to ask why, just to keep things interesting.

Comments

  1. This is very good post.

    If you're not asking why? Then why are you doing anything?

    This is so fundamental to innovation and progressive thinking. Yet it's quashed by many modern institutions. Asking a teacher "why do we have to learn this?", is always a fair question in my book. Yet, society encourages people not to ask questions like that, not to ask "the hard" questions. This unfortunately translates into the workplace where people become scared to question their superiors. Those who question often are either recognized for their "innovative thought process" and promoted or recognized for their "disruptive behavior" and fired.

    Asking "why" can be risky business, but if you don't ask why, you risk far more. If you ever stop and ask yourself "why", and the answer is because (xyz) told me to*. You're doing it wrong.

    *note: This becomes significantly more complex if someone is asking you to do something, and they don't even know "why" themselves.

    ReplyDelete

Post a Comment

Popular posts from this blog

Using telnet to troubleshoot connectivity.... and watch Star Wars

.NET MSTest and DeploymentItem Attribute

Example of using LazyInitializer.EnsureInitialized