Consulting
Channel Inc. is built on the Microsoft .net platform. For all custom development, integration and consulting projects, we follow the Microsoft Solutions Framework (MSF) methodology. In smaller projects, the same individuals can hold multiple roles, but the process is the same as with a larger project. MSF is described in detail below.
Microsoft Solutions Framework is a set of principles, models, disciplines, concepts, and guidelines for delivering information technology solutions from Microsoft. MSF is not limited to developing applications only, it is also applicable to other IT projects like deployment, networking or infrastructure projects. MSF does not force the developer to use a specific methodology (Waterfall, Agile) but lets them decide what methodology to use.
Overview of MSF
Every successful project follows a methodology to achieve its objectives. The methodology employed in this migration guide is the Microsoft Solutions Framework. A vast amount of information about MSF is available from Microsoft, and the UNIX Migration Project Guide provides a thorough explanation of MSF for specific audiences of this migration guide, such as the team members that fulfill the Program Management role. Yet not every team member on your migration project needs in-depth knowledge of MSF to successfully perform their team function. Because this is the case, the following brief overview is intended to provide all team members with a high-level overview of MSF that will familiarize them with basic concepts and terminology and help them to better understand the specific sections of this migration guide that they will need to read, understand, and execute.
MSF was created to maximize the success of IT projects throughout the entire IT life cycle. This information is derived from the experience gained within Microsoft on large-scale software development and service operation projects, the experience of Microsoft’s consultants, and common best practices from the worldwide IT industry.
As opposed to a prescriptive methodology, MSF provides a flexible and scalable framework to meet the needs of any sized organization or project team. MSF guidance consists of principles, models, and disciplines for managing the people, process, and technology elements that most projects encounter.
MSF Foundational Principles
At the core of MSF are eight foundational principles.
The eight foundational principles of MSF are:
- Foster open communications. The MSF Process Model enables an open and free flow of information among the team members and key stakeholders to prevent misunderstandings and reduce the probability that work will have to be redone. Documenting the progress of the project and making it available to the team members, stakeholders, and customers can best achieve this.
- Work toward a shared vision. The MSF Process Model provides a phase (the Envisioning Phase) and a separate milestone (Vision/Scope Approved) for creating a shared vision. A vision includes detailed understanding of the goals and objectives that the solution needs to achieve. A shared vision highlights the assumptions that the team members and customers have for the solution.
- Empower team members. Empowering the team members implies that the members accept responsibility and ownership of work assigned to them. Team empowerment can be achieved by preparing schedules where the team members commit to complete their work on a fixed date. This makes the team members feel accountable and also provides a method for identifying any potential delays early in the project.
- Establish clear accountability and shared responsibility. The MSF Team Model is based on the principle that each role is accountable for the quality of the solution. All the team members share the overall responsibility of the project because the project can fail due to a mistake made by a single member.
- Focus on delivering business value. The solution must deliver value to the organization in the form of business value. This business value is achieved only after the solution is completely deployed into the production environment.
- Stay agile, expect change. MSF assumes that the solution will encounter continuous changes before being deployed to the production environment. The team should be aware and prepared to manage such changes.
- Invest in quality. In MSF, each team member is responsible for the quality of the solution. To confirm the quality throughout the project’s duration, a test team is formed. This ensures that the solution meets the quality level of the stakeholders.
- Learn from all experiences. MSF states that the experiences derived from one project should be used and shared with teams in other projects. These experiences can also help to identify the best practices that should be followed in your organization.
Overview of MSF Phases
- Envisioning Phase
- In the Envisioning Phase, the team identifies the vision and scope of the project by preparing a vision and scope document.
- During this phase, goals for the project are formed and a vision statement is created that defines the entire project. This shared vision helps the team to work towards a common objective. The project team is assembled and the team members are empowered by having roles and responsibilities assigned to them.
- Another important activity in this phase is the identification of risks and preparation of mitigation and contingency plans. The risks identified and the mitigation plans are used throughout the life cycle of the project.
- Planning Phase
- During this phase, the existing environment is assessed to form a solution design. The main activity of this phase is to do a detailed planning to ensure success of the project. In this phase, a master project plan deliverable is created that consists of all sub-plans, such as the test plan, and development plan.
- The plan focuses on budgets, quality, schedule, and the technical implementation of the solution. The project team follows these plans in the subsequent phases. Developing Phase
- During this phase, the application components undergo transformation based on the development plans.
- Components that need a rewrite are developed. In components that are ported, changes based on syntax compliancy, performance, and security are carried out. The source code and executables help to create the deliverables of this stage. Stabilizing Phase
- During this phase, all the components are tested collectively to ensure that the entire solution operates properly.
- The testing criteria include achieving the desired functionality, security, and performance requirements. To ensure this, both white box and black box testing are performed. The tested database and components form the deliverables of this stage.
- Once testing is complete, the solution must be stabilized to ensure that it meets defined quality levels. If the migration is complex, a pilot test of the application can also be performed during the Stabilizing Phase. Deploying Phase
-
- In this phase, the team deploys the solution and ensures that it is stable and can be used. The tested solution is moved into production and transferred to operations.
- During this phase, the solution components are tuned in the production environment. A solution signoff is obtained from all stakeholders that confirms that the application meets the requirements developed during the Envisioning and Planning Phases.
The MSF Team Model — Overview
The MSF Team Model was developed over a period of several years to compensate for some of the disadvantages imposed by the top-down, hierarchical structure of traditional project teams. Teams organized under the MSF Team Model are small and multidisciplinary teams of peers, although the model is scalable for both small and large projects. Team members share responsibilities and balance each other’s competencies to keenly focus on the project at hand. They are expected to share a common project vision, a focus on deploying the project, high standards for quality and communication, and a willingness to learn.
The MSF Team Model emphasizes the importance of aligning role clusters (commonly referred to simply as “roles”) to business needs. It does this by organizing each role around a quality goal that the project must meet to be successful. Each role aggregates a “cluster” of related functional areas and responsibilities. The functional areas each require a different discipline and focus, but are related in that they contribute toward meeting the quality goal.
The result is a well-balanced team whose skills and perspective represent all of the fundamental project goals. For team members, possessing a clearly defined role and owning a clearly defined goal is motivational. It increases the understanding of responsibilities, and ultimately leads to a better solution. Because each goal is critical to the success of a project, the roles that represent these goals are considered to be equally important. Persons filling the roles are given equal say in critical decisions and are thought of as peers. MSF teams are known as “teams of peers.” Table 1.1 associates each role cluster with a quality goal.
Table 1.1: Role Clusters and Quality Goals
| Role Cluster | Goal |
| Program Management | Deliver the solution within project constraints |
| Development | Build to specification |
| Test | Approve for release only after all product quality issues are identified and addressed |
| User Experience | Enhance user effectiveness |
| Release Management | Achieve smooth deployment and ongoing operations |
| Product Management | Satisfy customers |
The MSF Process Model — Overview
The MSF Process Model describes a high-level sequence of activities for building and deploying IT solutions. Rather than prescribing a specific series of procedures, it is flexible enough to accommodate a broad range of IT projects. MSF combines two industry standard models: the waterfall model, which emphasizes the achievement of milestones, and the spiral model, which focuses on the continual need to refine the requirements and estimates for a project. An innovative aspect of the MSF process model is that it covers the life cycle of a solution from project inception to live deployment. This helps project teams focus on customer business value, because no value is realized until the solution is deployed and in operation.
MSF is a milestone-driven process. Milestones fall at the end of each phase and contain criteria for completing the phase. Important deliverables must have been completed and critical questions, such as: Does the team agree on the project scope? Have we planned enough to proceed? Have we built what we said we would build? Is the solution working properly for the customer? must be satisfactorily answered. The project team and key stakeholders review the deliverables and reach agreement that the project can proceed to the next phase in a milestone meeting.
MSF is also an iterative process. The process model is designed to accommodate changing project requirements by iterating through short development cycles and incremental versions of the solution.
The iterative aspect of the MSF process applies well to migration projects, which are frequently driven by an iterative process. In some cases, the migration task itself is approached iteratively. The first cycle migrates limited, basic functionality to the new platform; and subsequent cycles add additional capabilities to the new environment until it is equivalent to the original, unmigrated technology. In some other migration projects, the first cycle completely migrates some technology to a new environment, while subsequent cycles extend the technology beyond its original capabilities. Iterative approaches to migration projects provide a means to control project risk and create greater flexibility to accommodate changing requirements.
The MSF Process Model originated with the process used by Microsoft to develop applications. This model may be applied to traditional application development environments, but is equally appropriate for the development and deployment of enterprise infrastructure solutions, Web development, e-commerce, and distributed applications.
Although the Program Management Role orchestrates the overall process within each phase, the successful achievement of each milestone requires special leadership and accountability from each of the other team roles. As a project moves sequentially through each phase, the level of effort for each of the roles varies. The use of milestones helps to manage this ebb and flow of involvement in the project.
Table 1.2: Major Milestones and Primary Drivers
| Milestone | Primary Driver(s) |
| Vision/Scope Approved | Product Management |
| Project Plans Approved | Program Management |
| Scope Complete | Development and User Experience |
| Release Readiness Approved | Test and Release Management |
| Deployment Complete | Release Management |
Each phase also has interim milestones that lead to the achievement of the final phase milestone.
