Since this blog is focused on quality, it seems reasonable to start with a description of what the term means to me, in relation to software. I am NOT asking readers to adopt my definition of quality, or to limit your comments based on my definition. In fact, I would like to hear how you define the term.
What does software quality mean to you?
To me, delivering quality software means simultaneously providing:
- Code with the right features (capability) & with the features done right (consumability)
- Code which is performance optimized, quick to deploy & integrate, easy to learn, easy to use, easy to maintain, easy to scale, and competitive in terms of total cost of ownership
- Code assisted by comprehensive knowledge content delivery, and enablement of staff and customers, throughout the software life cycle
- Code with rapid support resolution available globally if and when problems occur
- Code supported proactively; by providing what’s needed before customers even recognize the need
- And finally, for hosted solutions, code and web delivery operations that meet Service Level Agreement (SLA) commitments for specified performance metrics, typically availability.
This encompasses both fitness for purpose, conformance to requirements, total cost of ownership (TCO), and maintainability & support aspects of quality. Would you modify anything in this definition?