Our Approach
Development Methodology – The Microsoft Solutions Framework
- The Microsoft Solutions Framework (MSF) Process Model combines the waterfall model's milestone-based planning and resulting predictability with the spiral model's benefits of feedback and creativity.
|
|
Phases of the MSF Process Model
The MSF Process Model consists of five distinct phases,
with each phase culminating in a milestone. Figure below illustrates the progression of the MSF Process Model.
 |
Click on thumbnail to view larger image. |
MSF Risk Management Process
The MSF Risk Management process defines six logical steps through which the team executes risk management strategies.They are:
- Risk identification allows individuals to identify risks so that the team becomes aware of any potential problems
- Risk analysis transforms the data about specific project risks that emerge during risk identification into a form the team can use to make decisions about prioritization
- Risk planning uses the information obtained from risk analysis to formulate strategies, plans, and actions
- Risk tracking monitors the status of specific risks and documents the progress in their respective action plans
- Risk control is the process of executing risk action plans and their associated status reporting
- Risk learning formalizes the lessons learned and relevant project documents and tools, and records that knowledge in reusable form for use within the team and by the enterprise.
MSF Readiness Management Process
The MSF Readiness Management discipline includes a process to help develop the knowledge, skills, and abilities (KSAs) needed to create and manage projects and solutions. Figure below illustrates the four steps of the Readiness Management Process: define, assess, change, and evaluate.
 |
Click on thumbnail to view larger image. |
Each step of the process includes a series of tasks to help reach the next milestone.
- Define: During this step, the team identifies the scenarios, competencies, and proficiency levels needed to successfully plan, create, and manage the solution.
- Assess: It is during this step that the team begins analysis of the current competencies as they relate to the various job roles. The purpose of this analysis is to determine the skills of individuals within each of these roles.
- Change: During this step, team members begin to improve their skills by means of structured learning to raise current proficiency levels to the desired levels. This step consists of:
- Training. The learning and mentoring that occurs according to what was outlined in the learning plan
- Tracking progress. The tracking of progress that enables individual or overall readiness to be determined at any time during the life cycle. It also enables the team members to make necessary adjustments to the learning plan.
- Evaluate: During this step, the team determines whether the learning plans were effective and whether the lessons learned are being successfully implemented on the job.
MSF Project Management Process
To deliver a solution within project constraints, strong project management skills are essential. Project management is a process that combines a set of skills and techniques to address the following tasks:
- Integrate planning and conduct change control
- Define and manage the scope of the project
- Prepare a budget and manage costs
- Prepare and track schedules
- Ensure that the right resources are allocated to the project
- Manage contracts and vendors and procure project resources
- Facilitate team and external communications
- Facilitate the risk management process
- Document and monitor the team's quality management process
Versioned Releases
When using MSF, a team develops solutions by building, testing, and deploying a core of functionality, and then adding sets of features to the solution in every release. This is known as a version release strategy. Figure below illustrates how functionality develops during the creation of many versions of a solution. The time between versions depends on the size and scope of the project.
 |
Click on thumbnail to view larger image. |
- Versioned releases improve the team's relationship with the customer and ensure that the best ideas are reflected in the solution. Customers will be more receptive to deferring features until a later release if they trust the team to deliver the initial and subsequent solution releases on time.
Phases
These processes then go through six different phases culminating the deployment phase. 

Envisioning Phase In this phase, the team is identified and their goals for deliverables is set.This phase culminates in a vision/ scope approved milestone. This milestone indicates that the customer and the team agree about the purpose and direction of the project.
Planning Phase In this phase, the team determines what to develop and plans how to create the solution. The team prepares the functional specification, creates a design of the solution, and prepares work plans, cost estimates, and schedules for the various deliverables.
Developing Phase During the developing phase, the project team creates the solution. This process includes creating the code that implements the solution and documenting the code. In addition to developing code, the team also develops the infrastructure for the solution.
Development Process The team performs the following key tasks during the developing phase:
- Starting the development cycle: Verification that all tasks identified during the envisioning and planning phases have been completed so that the team can begin developing the solution
- Creating a prototype application: Verification of the concepts of the solution design in an environment that resembles the final environment in which the solution will be eventually deployed
- Developing the solution components: Development of the solution's core components and the extension of these components to the specific needs of the solution
- Building the solution: A series of daily or frequent builds that culminate in major internal builds that signify points when the development team is delivering key features of the solution
- Closing the developing phase: Completion of all features, and delivery of code and documentation. The solution is considered complete, and the team enters a milestone approval process.
Stabilizing Phase During this phase, the team performs integration, load, and beta testing on the solution. In addition, the team tests the deployment scenarios for the solution.
The team focuses on identifying, prioritizing, and resolving issues so that the solution can be prepared for release.
The deliverables of the stabilizing phase are as follows:
- Final release
- Release notes
- Performance support elements
- Test results and testing tools
- Source code and executable files
- Project documents
- Milestone review
Deploying Phase During this phase, the team deploys the solution technology and site components, stabilizes the deployment, transfers the project to operations and support, and obtains final customer approval of the project. After deployment, the team conducts a project review and a customer satisfaction survey. The deploying phase culminates in the deployment complete milestone.
|
|