In my everyday life, here and there, I perceive
humour and kindness, discipline and grace, personality and competence, easily and clearly. But when my colleague Matthew asked me to measure them, I realised that’s a whole different story.
When you ask to 10 experienced software engineers, users and entrepreneurs what bad quality is in software, they will provide you plenty of examples. Then when you ask them to define good software quality and how to measure it, you’ll easily get 10 different answers. This is because
nowadays we still don't have a rigorous definition for it, and we don't even know if it exists at all.
It is not a simple problem for sure, it took about 27 years to Tom De Marco to realise the nature of this complexity.
It was 1982 when Tom De Marco wrote in
Controlling Software Projects the famous quote “You can't control what you can't measure”. In 2009 Tom De Marco wrote the article
Software Engineering: An Idea Whose Time Has Come and Gone? for the IEEE Software journal, and there he wrote "do I still believe that metrics are a must for any successful software development effort? My answers are no, no, and no.”
So why is so difficult just to define and measure software quality?
Maybe because
- quality perception is subjective
- quality is in part in the eye of the beholders and in the eyes of engeneers
- quality can be relative, for example can be superior or inferior to a competitor’s product
- quality is contextual, it is fitness-for-pourpose, depend on the context and on the person that judge it
In the end
the problem of defining and measuring software quality can be like the problem of predicting the future: when software engineers create new and unprecedented software applications and are asked to figure out how do it right at the first time, without exactly knowing what ‘right’ will mean.
Now that you know the nature of software quality, how do you deal efficiently with that ?
One suggestion from
Jim Highsmith: do not focus on what is easily measurable and than ignore important characteristics that are harder to quantify !