Microsoft Solution Framework (MSF) is based on the belief that six key quality goals must be achieved in order for a project to be considered successful. These goals drive the team and define the team model:
- Delivery within project constraints.
- Satisfied customers.
- Delivery to specifications based on user requirements.
- Release after knowing and addressing all issues.
- Enhanced user performance.
- Smooth deployment and ongoing management.
- Delivery Within Project Constraints
A key goal for all teams is to deliver within project constraints. The fundamental constraints of any project include those of budget and schedule. Most projects measure success using "on time, on budget" metrics.
- Satisfied Customers - Projects must meet the needs of customers and users in order to be successful. It is possible to meet budget and time goals but still be unsuccessful if customer needs have not been met.
- Delivery to Specifications Based on User Requirements - The product specification describes in detail the deliverable to be provided by the team to the customer. It is important for the team to deliver in accordance with the specification as accurately as possible because it represents an agreement between the team and the customer as to what will be built.
- Release After Knowing and Addressing All Issues - All software is delivered with defects. A key goal is to ensure those defects are identified and addressed prior to releasing the product. Addressing can involve everything from fixing the defect in question to documenting work-around solutions. Delivering a known defect that has been addressed along with a work-around solution is preferable to delivering a product containing unidentified defects that may surprise the team and customer later.
- Enhanced User Performance - In order for a product to be successful, it must enhance the way that users work and perform. Delivering a product that is rich in features and content but is not usable by its designated end user is considered a failure.
- Smooth Deployment and Ongoing Management - Sometimes the need for a smooth deployment is overlooked. The perception of a deployment is carried over to the product itself, rightly or wrongly. For example, a faulty installation program may lead users to assume that the installed application is similarly faulty, even when this may not be true. Consequently, the team must do more than simply deploy; it must strive for a smooth deployment and prepare for the support and management of the product. This can include ensuring that training, infrastructure, and support are in place prior to deployment.
The team model addresses the need to achieve the key goals outlined in the previous section. Each goal requires a different discipline and each discipline is embodied by a team role. The people who fill these roles bring a unique perspective to the requirements needed to meet each goal.
Having a clearly defined role and owning a clearly defined goal increases understanding of responsibilities and encourages ownership by the project team, which ultimately results in a better product. Since each goal is critical to the success of a project, the roles that represent these goals are seen as peers with equal say in decisions.