The Microsoft Solutions Framework


The Microsoft Solutions Framework (MSF) is a framework developed by Microsoft to help guide project teams involved in creating software. It is important to understand from the outset that the MSF does not attempt to be a step-by-step approach to developing software. A step-by-step approach, where the development process would be broken down into a series of checklists, would not be flexible enough for the vast majority of project teams to use effectively. When you consider that some software development projects are made up of only two or three people, while others have dozens or even hundreds of team members, you can understand the problem. It would be virtually impossible to create a single step-by-step procedure that would be able to meet the needs of both very small and very large teams at the same time. While all teams have the same basic goal of developing the best solution for the business problem, the method of accomplishing that goal depends on other factors such as team size, budget, and schedule.

Author's Note

A framework is a collection of layered or otherwise related components.

Instead of a comprehensive approach, Microsoft has developed a framework for the development process. This framework sets the rules related to building teams and embarking on solution design and development. Following the MSF path is analogous to following a well-worn footpath across the mountains. Such a path exists because it is the best path available to navigate across a treacherous terrain. You are not obliged to follow the path, and you can even take shortcuts if you find them necessary along the way. The footpath makes the journey easier and helps you avoid getting lost, but it doesn’t eliminate the effort required.

The MSF has been divided into five major components—two models and three disciplines. The two MSF models are the team model and the process model; the team model describes the process used to build a successful project team, while the process model describes the process used to build a successful computer application.

The three MSF disciplines are the project management discipline, the risk management discipline, and the readiness management discipline. The project management discipline describes Microsoft’s distributed approach to project management, the risk management discipline describes methods to manage risk and uncertainty in a project, and the readiness management discipline describes an approach to knowledge and skills management within the team.

MSF Team Model

The MSF team model is designed to assist with the structuring of successful project teams. This model defines several project roles, although not every project team will contain someone for every role. It also specifies, in a general way, the tasks that fall within each role. Following are the six main roles in the MSF team model:

Team Model Roles

  • Product management Acts as a client advocate and manages the customer

  • Program management Ensures the project is developed on schedule

  • Development Designs and constructs the solution

  • Test Develops a test strategy and conducts tests

  • User experience Acts as a user advocate and designs the user interface

  • Release management Acts as an operations advocate and manages the rollout of the product

Of course, the fact that there are six roles defined by the team model does not imply that a minimum of six people are required in order to adequately staff a project team. In reality, smaller projects usually have one person filling more than one role. Several of the roles above have some overlap, such as product management and program management. Likewise, the fact that six roles are defined by the team model is not meant to imply that a team is limited to only six people, as some larger projects might require dozens of people in the developer role.

Just as software code is delivered during the developing phase, design documents are delivered during the envisioning and planning phases. Once the makeup of the project team has been decided, the product manager should create a “project structure” document. This document is one of the three deliverables that are produced during the envisioning phase of the MSF process model. The other two documents deal with vision/scope and risk assessment, and will be discussed later in this chapter.

Team Model Concepts

Besides the definition of roles, the team model also covers the fundamentals of building a good team. Table 2-1 lists the six key concepts of building good teams according to the team model approach.

Table 2-1: The Six Key Concepts of the MSF Team Model

Key Concept

Description

Team of peers

Each role has equal value in decision making.

Customer-focused mindset

A satisfied customer is always the first priority.

Product mindset

Always consider the results of your labor, no matter what it is,
as a “product.”

Zero-defect mindset

Every member of the team should be committed to delivering a quality product.

Willingness to learn

Be open to new ways of solving old problems.

Motivated teams

Motivated teams create better products.

MSF Process Model

While the team model defines an approach to creating successful project teams, the MSF process model covers Microsoft’s recommended approach to successful application development. This model breaks the entire software development process into five distinct phases. The phases should be completed in the proper sequence (from Phase 1 through Phase 5). However, each phase cannot begin until the phase before it has ended. Each phase represents the next logical step required to design and build quality software.

Process Model Phases

The five phases of the MSF process model are

  • Phase 1: Envisioning Defining the project vision and scope

  • Phase 2: Planning Developing project plans and specifications

  • Phase 3: Developing Building code and documentation

  • Phase 4: Stabilizing Performing testing and bug fixing

  • Phase 5: Deploying Implementing the solution in the customer environment

After the deploying phase is complete, we go back to the envisioning phase again to start the process over for the next set of features. This is known as the iterative approach. The purpose of the iterative approach is to break a large software project up into multiple versions. For instance, instead of spending more than a year developing the first version of an application, the iterative approach recommends that the project be developed and deployed in stages—perhaps three releases six months apart in this example. Each new version of the application goes through the entire MSF process from envisioning to deployment, and hopefully each new release improves on the last.

Exam Watch

You will not encounter any specific questions about the MSF on the exam, but it is important to understand its phases and the order in which tasks should be performed.

MSF Disciplines

Continuing with our look at the MSF, the next component is called the project management discipline. This discipline introduces a distributed team approach to project management. You may have noticed that the MSF team model lacks a role called project management. The MSF approach advocates the distribution of traditional project manager tasks to the various team leaders of the other roles, with a program manager to coordinate them and provide support.

The risk management discipline defines a proactive approach to dealing with uncertainty in a project’s life cycle. Some risks can be avoided, while others just need to be accepted as potential liabilities. This discipline outlines a framework for evaluating and managing project risks from the start to the end of a project’s life.

The third discipline of the MSF is the readiness management discipline. Microsoft defines readiness as a measurement of the current state of knowledge, skills, and abilities of the individuals within an organization, compared to the desired state. The readiness management discipline is a process to help you define how the current skills of each individual on a project team compare with what they will need for their project role.

Revisions to the MSF

Microsoft occasionally makes revisions (sometimes major and sometimes minor) to the MSF. As of this writing, the current release of the framework is version 3.1. So even if you were once familiar with the MSF approach to software development, it might be worth going back over it to see what has changed. For example, the previous version of the process model had only four phases—the deployment phase was added in version 3.0. Also, Microsoft now recommends the iterative approach to development instead of the old milestone-driven approach.

More information on the Microsoft Solutions Framework can be found on the official MSF web site, which is located at http://www.microsoft.com/msf.

Scenario & Solution

Which MSF model is used to help construct a project team?

Team model

Which MSF model is used to help design and develop an application?

Process model

According to the MSF, which project role is responsible for managing the overall project schedule?

Program management

According to the MSF, which project role is responsible for managing user requirements definition?

User experience

start sidebar
From the Classroom—Iterative Development Defined

The iterative approach, which is at the heart of the Microsoft Solutions Framework process model, is an ideal way to develop object-oriented software applications. It allows you to design, develop and implement software applications in a more focused manner than if a project did not use such a model. Developing software in smaller, more manageable chunks can actually improve the overall quality of the product in the end.

There are four big benefits to iterative development. First, customers get their hands on working software much sooner and can provide feedback to the development team to be incorporated in the next release. Second, developers can see what works and what doesn't work earlier on in the process, allowing them to make the appropriate adjustments. Third, the project team can stay motivated because it sees regular visible success. Fourth, the project is more manageable—a massive three-year project can be turned into six smaller but more manageable projects, each of them six months in duration.

The MSF development model is not the only development model to recommend the iterative approach. Iterative programming is a core concept of the Unified Process (UP) and its cousin, the Rational Unified Process (RUP). It is also a central idea of the popular Extreme Programming (XP) methodology used by many open-source software projects such as Mozilla and Linux.

Scott Duffy, MCSD, MCP+SB, SCJP, IBMCD-XML

end sidebar




MCSD Analyzing Requirements and Defining. NET Solutions Architectures Study Guide (Exam 70-300)
MCSD Analyzing Requirements and Defining .NET Solutions Architectures Study Guide (Exam 70-300 (Certification Press)
ISBN: 0072125861
EAN: 2147483647
Year: 2003
Pages: 94

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net