Zero tolerance is not something we hear much in IT. But while in Hong Kong with a client they had a zero tolerance for defects. What does zero tolerance mean: in the last 2 years the client had 10 reported defects and one team had no defects reported in 5 years.
How is this possible? Well the simple answer is “because the boss says so” and that really is a very large part of it, but the more thorough answer is that it is part of the fabric of the organization. From the chief executive on down quality is the primary concern and it is reinforced and reiterated regularly.
Now this client’s business is not mission critical, lives are not at stake, society and services would not end if an error was to manifest in the applications. But this client has a very public face and a reputation it wants to preserve and so zero tolerance is their starting point.
What is all the more remarkable is that this client also has once of the most complex configuration management problems I have ever seen with a theoretical 9,000 variants it has to manage and support. That is why no less than 60% of any development project is devoted to testing. And what is more remarkable than that perhaps is that the majority of the testing falls upon the developers. Here QA is just that, Quality Assurance.
As one developer once told me, “Kevin, I spent all morning debugging this code and all afternoon re-bugging it.” At the client in Hong Kong they understand that the developer is responsible for putting defects in the code and that also means they are responsible for finding them and fixing them. And these developers take such pride in their work they want to deliver perfect code every time.
If you want to get the code right you have to invest the time. My first boss once said to me “If you don’t have time to do it right Kevin, when do you have time to do it over?” A little more wordy than “zero tolerance” but just the same message.