Software quality part 2

A recent graduate wrote to me: “I only work as a software developer for three months. The project manager considers schedule as the most important but does not pay attention to quality. We often stop testing when schedule is due. The rule of the company is “It is good enough.” What do you think about the “Good enough” rule? Please advice.”

Answer: Let's me begin with a short story: A good house builder taught his son about the trade. His rule was simple: “Build each house as if you were building it for yourself”. After several years, he allowed his son to start building house on his own without his supervision. He told the young man: “You have learned everything from me so now you can do it by yourself. I will let you build a new house without me. I will see you when the house is finished, but just remember, build it as if you were building it for yourself.”

The son figured that without his father watching, he could do something that he like. He think: “I just do it “good enough” by changing things as no one would ever know.” So he bought cheap wood for framing materials, lower-rated cements, and low quality materials than his father would have used. Since paying less for the low quality materials, he can make more money for himself.

When the house was completed, the father came to see the finished house. On the surface, everything seemed to match the design of the house. The father commented: “It is great, I am happy that you learned to build house very well. Now, I have some good news for you. You have built this house for you and your family. It is my gift to you for the work you have done with me over the years. Now you can move to live in this house.”

I do not know whether your company is building software to an external customer or use internally. Testing is designed to catch bugs, if you do not test than it is possible that your software will have bugs. If software has bugs, somebody will have to fix it. Users will not tolerate defective software. Fixing bugs cost money and time so the idea of “Good enough” is a bad idea and very irresponsible. To do things in a hurry to meet schedule is bad management. There is no such thing as “good enough” software.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University