If such non-functional requirements and expectations are not formally collected and published, each team member is left to assume such details of final deliverable. One member may decide to build a self-healing core... while another deciding on a failure alerting and managing system.
Here is a formal list of such potential “Solution Qualities” published with “Microsoft Solutions Framework” [MSF].
Following should be considered for every effort and implemented as appropriate
|Performance-Oriented Qualities of Service|
|Responsiveness - Allowable amount of delay when responding to an action, call, or event.|
Concurrency - Ability to perform well when operated concurrently with other aspects of a solution and with its environment.
Efficiency - Capability to provide appropriate performance, relative to the resources used, under stated conditions.
Fault tolerance - Capability to maintain a specified level of performance irrespective of faults or of infringement of system resources.
Scalability - Ability to handle simultaneous operational load.
Extensibility - Ability to extend a solution without significant rework.
|Trustworthiness-Oriented Qualities of Service|
|Security - Ability to prevent access and disruption by unauthorized users, viruses, worms, spyware, and other agents.|
Privacy - Ability to prevent unauthorized access or viewing of data.
|User Experience-Oriented Qualities of Service|
|Accessibility - Extent to which individuals with disabilities have access to and use of information and data that is comparable to the access to and use by individuals without disabilities.|
Attractiveness - Measure of visual appeal to users.
Compatibility - Conformance to conventions and expectations.
Discoverability - Ability of a user to find and learn features of a solution.
Ease of use - Cognitive efficiency with which a user can perform desired tasks.
Localizability - Ability to be adapted to conform to the linguistic, cultural, and conventional needs and expectations of a specific group of users.
|Manageability-Oriented Qualities of Service|
|Availability - Degree to which it is operational and accessible when required for use. Often expressed as a probability.|
Reliability - Capability to maintain a specified level of performance when used under specified conditions, commonly stated as mean time between failures (MTBF).
Installability and uninstallability - Capability to be installed in a specific environment and uninstalled without altering the environment’s initial state.
Maintainability - Ease of modification to correct faults, improve performance or other attributes, or adapt to a changed environment.
Monitorability - Extent to which health and operational data are automatically collected while operating.
Operability - Extent to which a solution is controlled automatically while operating.
Portability - Capability to be transferred from one environment to another.
Recoverability - Capability to reestablish a specified level of performance and recover the data directly affected in the case of a failure.
Testability - Degree to which the solution facilitates the establishment of test criteria and the performance of tests to determine whether those criteria have been met.
Supportability - Extent to which operational problems are corrected.
Reusability - Ability to repurpose solution components with little rework.
Conformance - Adherence to applicable rules, regulations, policies, and standards.
Interoperability - Capability to interact with other solutions in the environment.
To be Practical
- Pay attention to required “Solution Qualities” from the beginning of a project.
- Keep a generic list of solution qualities that you can compare your solution requirements to.
- Publish the agreed upon qualities (and value) that must be present in the delivery.
- Get sign-off for high-cost items [i.e. 99.999% uptime is an expensive requirement].
- Don’t forget to estimate building and support cost of each “Quality” [need should be balanced against implementation and maintenance cost].
- Post-production "stability and bug" issues can also be categorized and monitored against original "Qualities" as “issues due to non-functional-complexity X”.