How would you define perfect software? Would be it bug free? Would it be lightning fast? Would it print money? Would it solve all your daily challenges? What would your perfect software do?
Defining perfection will always be subjective because no two people will have exactly the same criteria and/or measures. But maybe we can agree on broad criteria and go from there.
Maybe we can start by rating the importance of stuff like….
a) Richness and variation of Features (functionality)
b) Accuracy and consistency (of features)
c) Speed and Responsiveness (to inputs)
d) Security of features/data/information (is any of the data sensitive or private)
e) Look and Feel (of visible interfaces) – this could be defined as part of Usability
f) Ease of Access and Availability (to features) – this could be defined as part of Usability
g) Safety (could a feature harm someone)
h) Simplicity/Complexity/Flexibility of features (this could be defined as Risk or Usability)
i) Cost (overall or by feature)
j) Satisfaction (should a customer or user gain satisfaction or joy from a feature
(NOTE: This is not meant to be an definitive list, but it provides a taste of how we need to approach the task of defining the “perfect solution”.
If we take the approach of discussing criteria like these BEFORE we start our projects (not before we start Testing) and set expectations accordingly, I believe we will increase the probability of building perfect software.
Perfectly simple, huh?
Dateline: Friday February 28, 2014; NSW Central Coast