I used to work for a team who had great software quality. I’m defining software quality as the number of bugs making it into production in this case. Said quality came at an enormous cost, one which our business partners used to complain non-stop about. It became a joke – “we don’t show up for less than a year and a million dollars.”
Bothered by the apparent disconnect between what the business wanted and what systems was offering, I proposed that we (I’ll paraphrase) “back off on some of the quality stuff and take the risk that something might go wrong for a significantly cheaper price.” Sadly, I got laughed out of the room. I know that I was not wrong. You don’t need to have been around long to experience an arrogant system’s organization who thinks they know better than the business on what the business wants.
Would you put up with this in the real world? I think not. What if you came into a grocery store looking for a can of green beans and I as the cashier said “I’d like to sell you that basic can of green beans, but it wouldn’t be right for me to do so. What you really want, but didn’t know it, was a machine that will automatically deliver you green beans right to your door before you even ask. Sure, the can of green beans only costs $1.09, but you’re really going to like my machine for $250,000!” … “what do you mean you don’t want to spend two-hundred fifty thousand dollars? I’m sorry, then I can’t help you.” Sounds like hyperbole? It isn’t in software development. It’s part of the reason Agile is appealing to businesses – the business gets the last say in EVERYTHING. I believe in that philosophy (I just don’t think you need to go Agile to live it). It is the job of all good software development organizations to deliver what the business needs. If you aren’t doing that get out of the software business.
Accept this reality (with the exception of software development companies): YOU ARE A COST CENTER, NOT A PROFIT CENTER! If the company could figure out how to do business without paying for your software services they would! Most companies are NOT software companies and they need the software to a) do the job they need done and b) cost as little money as possible. They don’t want to spend money on you; they don’t particularly like you. They show how much they dislike you by outsourcing or off-shoring you.
This is not a bad thing. It just is. That’s the way the world is - maximize profit, minimize cost. And frankly, you are and always will be a cost. Now that you understand how I feel about software developers, and I was/am one, you can see why I might suggest that we back off on some of this quality stuff and take the risk of some defects.
I could build you an invincible car probably that would run forever. You just wouldn’t want to afford it. To get to that kind of quality would cost more than you’d reasonably pay for a vehicle. The same is true of software development. Users can and will accept a certain number of defects in exchange for a reasonable cost. If you haven’t seen this curve before, it’s not to any particular scale, but it represents the law of diminishing returns when it comes to software quality.

Essentially, at some point, you pay exponentially more and more to get smaller and smaller increments of quality improvement in software. For each company, there is somewhere along this curve where the trade-off is no longer worth it. Sure, if you’re working on the space shuttle or a medical device, very, very few defects are acceptable. Defects on a project like that kill people. But what about defects that could be resolved without anyone dying or losing their life savings? I’d rather not have them, but if it is detectable and reversible I’d probably be OK as long as you eventually fixed it. And then there are certain things which are quirky or annoying but don’t do any real damage ever. Frankly, for most purposes, who cares?
And this is exactly where I was coming from when I said we should back off on some quality activities. Clearly, though our quality was excellent, we were too far up the curve and it was costing too much to get that level of quality. I know that the development process had gotten to where it was because with each mistake the team added something to the development process to assure that “it never happened again.” Now, for a given project that “thing” might be irrelevant, but we’d be damned if it snuck in somehow. We always had some quality activity to assure that a given mistake was never, ever repeated. In my opinion, these are exactly the things you should back off on. It was unclear if the mistake could even be made again, so the quality activity wasn’t necessarily adding quality. Nobody had measured it and nobody knew for sure, but they were deathly afraid to find out that they might miss that same something again.
Do not be afraid to test the limits and find where the right trade off for the customer’s needs are. There is a certain quality they need, but there also is a cost they aren’t willing to pay. In terms of a Kano analysis, over optimizing for cost suggests you believe that quality is a primary satisfier of your customers, and it is likely to be a must be. You have to have a certain amount of quality, but more of it isn’t going to make your customers that much happier.
Posted by ProcessRants 
Posted by ProcessRants
Posted by ProcessRants