Quality of Service (QoS) is used here as a shorthand term for performance, scalability and availability
What does it mean to be a full service consulting practice for QoS? The list below comprises a holistic view of the best practices for QoS1, updated to reflect learnings since publication and reorganized into categories.
Organizational
Most of the organizational best practices are set in place by the senior management team of the project.
- Secure the commitment to QoS at all levels in the organization
- Ensure that Analysts and Developers have QoS training, and tools
- Secure cooperation and work from the team to achieve QoS goals
- Require contractors to use QoS best practices on your products
- Establish a QoS Center of Excellence to work with project teams
Project Planning and Initiation
- Perform an early estimate of QoS risk and match the effort (and budget) to level of risk
- Integrate QoS tasks into your development process and project schedule
- Track QoS costs and benefits
System Requirements Analysis
- Spell out Specific, Measurable, Agreed-upon, Relevant and Trackable (SMART) requirements for Quality of Service
- Identify critical use cases and focus on the scenarios that are important to QoS
Architecture and Infrastructure Planning
- Identify key metrics that represent a risk to the project, include them in regular management reporting
- Perform an Architecture Assessment to ensure that the software architecture will support QoS objectives, making sure to include vendor products in the assessment
- Use measurements to gather data for constructing QoS models and validating their results
- Use QoS models to evaluate architecture and Design alternatives before committing to code
- Establish a configuration management plan for creating baseline QoS models and keeping them synchronized with changes to the software
System and Technical Design
- Use best- and worst-case estimates of resource requirements to establish bounds on expected QoS and manage uncertainty in estimates
- Add details as your knowledge of the software increases
- Produce credible model results and explain them — the model results need to be validated before one can have confidence in them
System Development, Integration and Test
- Instrument software to Facilitate data collection
- Measure critical components early and often to validate models and verify their predictions
- Plan measurement experiments to ensure that results are both representative and reproducible
- Conduct measurement experiments to validate results and explain their implications in a pre-launch assessment report
- Quantify the Benefits of tuning versus refactoring the architecture or design
Post Launch
- Validate critical use case assumptions
- Monitor system usage and stay alert to trends that represents risk to QoS