- 15 Non-Certified IT Skills Growing in Demand
- How 19 Tech Titans Target Healthcare
- Twitter Suffering From Growing Pains (and Facebook Comparisons)
- Agile Comes to Data Integration
Network World - This vendor-written tech primer has been edited by Network World to eliminate product promotion, but readers should note it will likely favor the submitter's approach.
Software quality, as Churchill might say, is an enigma wrapped in a riddle inside a mystery. Even IT pros get flustered about how to define and measure software quality.
Should it depend on technology? Should it depend on the type of methodology? And how do you make quality measurement practical -- easy, inexpensive and reasonably accurate?
Not surprisingly, these difficulties have resulted in an undue focus on the process by which software is built rather than the product that is the result of this process. We think we can define these activities precisely and measure them accurately so what people see and focus on are the activities required to create, enhance and manage software. What they can't see and hence don't focus on is the quality of the product produced by these activities. Out of sight, out of mind.
ANALYSIS: The (sorry) state of software security
But it's pointless to have a flawless process leading to a flawed product. Unfortunately, that's the kind of failure we risk when we're not able to measure software quality.
This lack of visibility into software quality is at the root of many software management problems. Business owners can't understand why software costs so much, takes so long to build and costs even more to change. CIOs can't understand why estimates always drift radically. CFOs and CEOs can't understand why investment in IT is so high.
What's more, these folks can't get their arms around the value of software. What VALUE am I getting for the money I sink into software?
It's as if Michael Phelps tracks his time in the gym, the time it takes him to eat his meals, the time he spends on his Xbox, time walking his dog ... but bizarrely, not the time it takes him to swim the 100 meter butterfly!
The only indication of software quality is what you see on the outside -- how the software behaves in the real world. But external indicators of performance are too little too late. It would be nice to have an early-warning system that saves us from being purely reactive.
At this point you're thinking, "Don't we take care of quality by testing software?" But testing is at best a partial solution. Testing is not really designed to measure the structural quality of software -- the quality of an application's design and the fidelity of its implementation to this design.
Well designed, well architected and well executed software is high quality software. It's easy to work with, maintain and enhance to satisfy a pressing business need. It's not possible to write test cases for this kind of quality.
So we know that measuring software quality -- the quality of the product itself -- is good. It's the key to making the software black box transparent. But can we define it reasonably well and can we measure it without losing our shirts (or our minds)?
Yes, because there are products out there that measure software product quality. And obviously, they must be able to define software quality, which is a prerequisite to measuring it.