In an earlier post, Red Hat CEO Jim Whitehurst’s critique of software quality and the software industry as a whole was examined. Whitehurst highlighted three aspects of quality – the number of program bugs, high prices / costs, and the disconnect between vendor development plans and customer needs. Software quality is a much larger challenge with more aspects than listed by Whitehurst. This post will survey the bigger picture of the software quality challenge, with future posts addressing details of and ways to address each aspect of software quality.
Most important is the quality of the partnership between a software vendor and its customers. Without a solid partnership there is little hope of improving the other aspects of software quality. [ed. Some thoughts here]. Think of this partnership as Quality 2.0 – a community including customers dedicated to improving software quality.
Second is meeting customer needs, ensuring development plans and deliverables match emerging business requirements of the customers. Quality doesn’t matter if the product isn’t designed to do anything the customers need it to do.
Next is vendor responsiveness to quality issues as they arise. No problem is resolved until the fix (in whatever form) is implemented in the customer’s production environment. The vendor needs to respond quickly, accurately, and do so with a focus on the impact to a customer’s business.
Customer self sufficiency provides a software quality safe harbor. The vendor needs to transfer enough knowledge of the software product and how it may be used or modified that the customer can avoid problems before they impact live production environments.
Software ease of use helps prevent user error and resulting recovery time. Ease of use also encourages end users to take advantage of extended features which streamline business processes and improve return on investment.
Open technologies and open architectures greatly reduce the time and costs of integrating one vendor’s software with another. No software vendor holds a monopoly on technology based ways to improve business results.
A development process focused on customer requirements reduces program bugs. Clear requirements improve test plans and free quality managers to focus testing resources on vital product capabilities.
That is a list of seven aspects of software quality to be defined in more detail. HarrisData addresses each of these aspects through something we call Aggressive Quality. The white paper on Aggressive Quality highlights customer oriented parts of a far greater whole. The follow on posts will include HarrisData’s internally focused Aggressive Quality initiatives. For us, Aggressive Quality is the foundation for providing high quality software at competitive costs.