pointer-image   8   Question Until You Understand

 

“Accept the explanation you’ve been given. If you’re told where the problem lies, that’s where you look. Don’t waste your time chasing ghosts.”

images/devil.png

The last few tips have talked about improving your skills and those of your team. Here’s one technique that almost always helps and will help with design, debugging, and requirements understanding as well.

Suppose there’s a major problem in an application, and they call you in to fix it. You aren’t familiar with the application, so they try to help you out, telling you the issue must be in one particular module—you can safely ignore the rest of the application. You have to figure out the problem quickly, while working with people whose patience may be wearing thin.

When the pressure is on like that, you might feel intimidated and not want to question too deeply what you’ve been told. To solve the problem, however, you need a good understanding of the big picture. You need to look at everything you think may be relevant—irrespective of what others may think.

Consider how a doctor works. When you’re not well, the doctor asks you various questions—your habits, what you ate, where it hurts, what medication you’ve been taking, and so on. The human body is complex, and a lot of things can affect it. And unless the doctor is persistent, they may miss the symptoms completely.

For instance, a patient in New York City with a high fever, a rash, a severe headache, pain behind the eyes, and muscle and joint pain might be dismissed as having the flu, or possibly the measles. But by probing for the big picture, the doctor discovers the hapless patient just returned from a vacation to South America. Now instead of just the flu, a whole new world of possible diagnoses opens up—including dengue hemorrhagic fever.

Similarly, in a computer, a lot of issues can affect your application. You need to be aware of a number of factors in order to solve a problem. It’s your responsibility to ask others to bear with you—have patience—as you ask any questions you think are relevant.

Or, suppose you’re working with senior developers. They may have a better understanding of the system than you. But, they’re human. They might miss things from time to time. Your questions may even help the rest of your team clarify their thinking; your fresh perspective and questions may give others a new perspective and lead them to find solutions for problems they have been struggling with.

“Why?” is a great question. In fact, in the popular management book The Fifth Discipline: The Art & Practice of the Learning Organization  [Sen94], the author suggests asking no fewer than five progressive “Why?”s when trying to understand an issue. While that might sound like a policy oriented more toward an inquisitive four-year-old, it is a powerful way to dig past the simple, trite answers, the “party line,” and the usual assumptions to get down to the truth of the matter.

The example given in the Fifth Discipline Field Book for this sort of root-cause analysis involves a consultant interviewing the manager at a manufacturing facility. On seeing an oil spill on the floor, the manager’s first reaction is to order it cleaned up. But the consultant asks, “Why is there oil on the floor?” The manager, not quite getting the program, blames the cleaning crew for being inattentive. Again, the consultant asks, “Why is there oil on the floor?” Through a progressive series of “Whys” and a number of employees across different departments, the consultant finally isolated the real problem: a poorly worded purchasing policy that resulted in a massive purchase of defective gaskets.

The answer came as quite a shock to the manager and all the other parties involved; they had no idea. It brought a serious problem to light that would have festered and caused increasing damage otherwise. And all the consultant had to do was ask, “Why?”

“Oh, just reboot the system once a week, and you’ll be fine.” Really? Why? “You have to run the build three times in row to get a complete build.” Really? Why? “Our users would never want that feature.” Really? Why?

Why?

images/angel.png

Keep asking Why.

Don’t just accept what you’re told at face value. Keep questioning until you understand the root of the issue.

What It Feels Like

It feels like mining for precious jewels. You sift through unrelated material, deeper and deeper, until you find the shining gem. You come to feel that you understand the real problem, not just the symptoms.

Keeping Your Balance

  • You can get carried away and ask genuinely irrelevant questions—if your car won’t start, asking about the tires probably isn’t going to help. Ask “Why?” but keep it relevant.

  • When you ask “Why?” you may well be asked, “Why do you ask?” in return. Keep a justification for your question in mind before you ask the question: this helps you keep your questions relevant.

  • Don’t settle for shallow answers. “Because it used to…" is probably not a good answer.

  • “Gee, I don’t know” is a good starting point for more research—not the end of the line.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.8.222