Friday, January 05, 2007

What is quality anyway?

You could practically start a holy war with the number of interpretations of the word Quality and what it means in the context of software development. In some contexts it follows the battle cry of "ZERO DEFECTS". In other cases it is the cry of "no problems in production."
In fewer instances it is the question of "what will thrill our customers?"

In the grand scheme of software development and usage the first two are valuable, of course, but the last one is what keeps customers. In personally would maintain that it is the one that is most important. Of course customers won't be thrilled if the software is buggy, constantly
going down in real world use of inconsistent in operation. But with that basic understanding of a foundation on which to build what really amounts to quality is not pure defect free or 100% incident free systems but ones that meet customer's needs. There are multiple levels of meeting those needs since in business, the rules change very frequently requiring basic functions and a constant ability to adapt.

So what does this mean? To me this means we should set up steps that allow us to focus on quality of features not just quantity of features. Taking advantage of things like Test Driven design allows us to focus on the right features and changing things quickly to adapt to needs.
It means that we shouldn't hold on to every single feature that has ever been dreamed up and try to win a numbers race of total features. It means we should focus on delivering the right FEW features that are really what customers want, make sure that all of those items are fully
functional, high quality and stable in production.

Numerous stories of start up companies in the computing industry can be told regarding how a start including a SIMPLE product that was widely successful because those few features met a customer need. In some cases a need that wasn't even known at the time. Computers on a grand, multi-room scale existed for a while but the personal computing industry itself came when Woz created a simple computer with just a very few functions called the Apple 1. By keeping things as simple as possible a computer costing only $666.66 was created and took off like gang busters. Think about the productivity tools you use today like Word that started with little more than the ability to put in text and save it. (and man were they ugly when they started)

So... drive down the number of features we are pushing in a release. Focus on doing them really well. Make the features differentiating and easily assembled to allow customers to do the work that really needs to be done. Do the IMPORTANT, customer THRILLING things, first and REALLY well

No comments: