The headline is a quotation of Mary Poppendieck from her keynote at the Agile Testing Days conference in 2009 in Berlin. Today while reading through Jerry Weinberg’s Quality Software Management Vol. 1 I understood why.
In chapter 17 Weinberg explains why it is a defect to start tolerating defects. The feedback when applied in the long term will hit the team back. The customer start complaining after some time, filling more and more customer bugs, which overload the project staff to the degree, that they start to hustle through delivery after delivery. It’s a negative feedback loop put into place when going down that road. Without a management decision this reinforcing feedback is unlikely to end before the whole system collapse and your company goes bankrupt or loses a majority of their customers.
Zero (known) defects?
In the Software Craftsmanship movement the question about whether or not to allow a known defect to ship has been heavily discussed. Should we allow zero defects? Or one? Should we ask the customer? Clearly it is context-sensitive what to do with a defect. If your product owner or direct customer states that he gets more value out of a buggy delivery of your software, then ship it. But by then it is a business decision to accept that bug, and maybe get it fixed later.
As Mary pointed out in here excourse over the past few decades of software development, our business is in a crisis since 1968. There have been several approaches to help us getting out of there. Jerry also mentions the regular curve presented at conferences, where the new idea is sold to the listeners. Is software craftsmanship just one of those? Clearly, I am no fortune-teller. Therefore I can’t and won’t tell you whether or not the ideas behind software craftsmanship are getting you an improvement of one order of magnitude. What I can tell you about software craftsmanship is the fact that the ideas seem to be promising. The understanding of our craft is meaningful to me. In addition I have the claim from Tom Gilb still in my ears who called out for more craftsmanship in the testing movement also. “We need more people who actually know what they do. We need more craftsmanship.” Knowing what to do with a known is one aspect of craftsmanship therefore. So, let me pass the question on: What do you do with a known defect in your product deliverable? Do you tolerate them during development?