To maximize the success of enterprise projects, Microsoft has made available packaged guidance for effectively designing, developing, deploying, operating, and supporting solutions, including those created with Microsoft technologies. This knowledge is derived from the experience gained within Microsoft and from customers and vendors about large-scale software development and service operation projects, the experience of Microsoft’s consultants in conducting projects for enterprise customers, and the best knowledge from the worldwide Information Technology (IT) industry.
A process model guides the order of project activities and represents the life cycle of a project.
The MSF Process Model describes a generalized sequence of activities for building and deploying enterprise solutions. This process is flexible and can accommodate the design and development of a broad range of enterprise projects. The MSF Process Model is a phase-based, milestone-driven, and iterative model that can be
applied to developing and deploying traditional applications, enterprise solutions for e-commerce, and Web-distributed applications.
Phases of the MSF Process Model
The MSF Process Model consists of five distinct phases:
Each phase culminates in a milestone. The following figure illustrates the phases and milestones of the MSF Process Model.
The team performs the following key tasks during the envisioning phase:
Setting up the team. Creation of a project team that represents all roles of the MSF Team Model. When setting up a team, it is important to consider the skills, experience, and performance level of the team members.
In addition, there are practical considerations such as availability of resources and project budget.
Defining the project structure. Identification of an administrative structure for the project team and the standards for managing the project.
Defining the business goals. Analysis of the business problem and opportunities in order to identify the objectives for the solution.
Assessing the current situation. Evaluation of the current situation and analysis of the difference between the current and expected situation. The purpose of this evaluation is to create the problem statement and identify the direction of the project.
Creating a vision statement and defining the scope of the project. Creation of a vision statement that communicates the long-term direction for guiding the team toward its business goals. Identification of the scope of the project defines what will and will not be included in the solution.
Defining requirements and user profiles. Identification of the stakeholders, end users, and sponsors for the project and documentation of their requirements for the solution. This information helps to evaluate the vision/scope of the project and to create a solution concept.
Developing a solution concept. Creation of a baseline solution concept, that is, the outlining of the approach that the team will take to create the solution. This concept is created by using the requirements that have been identified.
Assessing risk. Identification and assessment of the risks to the project, and creation of a risk mitigation plan. This is an iterative step that is conducted during all stages of the product life cycle.
Closing the envisioning phase. End of the envisioning phase. Accomplished when the vision/scope document is formally approved by all stakeholders and the project team
During the planning 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.
The planning phase involves the analysis of requirements. These requirements can be categorized as business requirements, user requirements, operational requirements, and system requirements. These requirements are used to design the solution and its features and to validate the correctness of the design.
After gathering and analyzing the requirements, the team creates the design of the solution. The team creates user profiles that specify the various users of the solution and their roles and responsibilities. The team then creates a series of usage scenarios. A usage scenario specifies the activity performed by a particular type of user. Therefore, the team needs to create usage scenarios for all user profiles.
After creating usage scenarios, the team creates use cases for the usage scenarios. A use case specifies the sequence of steps that a user will perform in a usage scenario.
The three design stages are:
Conceptual design, in which we view the problem from the perspective of the users and business requirements and define the problem and solution in terms of usage scenarios.
Logical design, in which we view the solution from the perspective of the project team and define the solution as a set of services.
Physical design, in which we view the solution from the perspective of the developers and define the technologies, component interfaces, and services of the solution.
The team performs the following key tasks during the planning phase:
.Developing the solution design and architecture. Identification of business requirements, user requirements, and technologies and the use of this information to design a proposed application model.
Creating the functional specification. Creation of a functional specification that describes the requirements that must be met by the solution.
Developing project plans. Identification of and planning for the tasks that will be performed by the project team, and the consolidation of these plans into a master project plan. The master project plan also includes items such as the approach, dependencies, and assumptions for the solution.
Creating project schedules. Creation of the master project schedule. This schedule consists of milestone-based schedules for each of the team roles in the project team.
Creating the development, testing, and staging environments. Creation of a separate environment in which to develop and test the solution. This environment is independent of the environment in which the solution will finally be deployed.
Closing the planning phase. Completion of the milestone approval process. Documentation of the results of completing the tasks performed during the planning 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.
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 environment to which the solution will be eventually deployed. This environment is as similar as possible to the production environment. This task is completed before development begins.
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 with 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.
During the stabilizing 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. During this phase, the solution progresses from the state of all features being complete as defined in the functional specification for this version to the state of meeting the defined quality levels. In addition, the solution is ready for deployment to the business.
The team performs the following key tasks during the stabilizing phase:
Testing the solution. Implementation of test plans to validate the solution. Once the solution is considered stable, a pilot is conducted in a test environment. A rigorous test includes:
User acceptance and usability testing
Stress, capacity, and performance testing
Recording the number of bugs
Conducting the pilot. Deployment of the solution in a staging area and testing of the solution with actual users and real usage scenarios.
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.
The team performs the following key tasks during the deploying phase:
Completion of deployment and operations procedures. Formal documentation of deployment and operational procedures to outline how the project team intends to perform deployment and transition tasks.
Deployment and stabilization. Completion of the actual component and site deployments.
Project review. Completion of post-project reviews with the customer and project team.
Shabakat s.a.r.l. All Rights Reserved.