Fix a problem, not look for easy answer

From Programmer 97-things

Jump to: navigation, search

We spend significant percentage of our time in trouble shooting of problems or bugs in the software we or someone else developed. Although most IT degrees or training do not include problem solving skill, most of us believe we know it well, it is simply logical deduction.

I have gone through many trouble shooting exercises in my career. Trouble shooting is not a simple rational exercise. Many IT professionals including myself can easily be disoriented in the process.

For example, I got the following responses when I passed the problems or bugs to a programmer or development team:

We spent huge effort to test this functionality thoroughly. Did they set up the software properly?
The software has been running in our lab for months without crash. Was it caused by a faulty hardware in client site or a Microsoft Windows bug?
The customer should not see wrong data. I am getting good data in my machine. Is the customer connecting to the correct server?

The first common mistake in trouble shooting is the lack of critical attitude to our own work. After some successful projects, a programmer or a development team establishes the confidence on their products or their skills. When a bug is reported, programmer assumes or believes that it is not caused by something he or she developed.

The second mistake is prejudice. It is so convenient to blame someone with bad reputation.

The third issue is the urge to get quick and simple answer when there is pressure to solve the problem quickly. It would be a good news if it is someone else's problem or it is not really a software problem. We want our answer to be the answer.

Once we fall into this trap, we are not solving the problem.

After we locate a bug, we fix it and believe the job is done. However, proving the fix really fixes the problem is also important. Remind yourself that there may be more than one bugs contributing the problem and that fixing a bug can uncover another bug. No one would like to release a fix to customer which is ineffective or causing more problems.

Personal tools