Microsoft Solutions Framework (MSF) Overview
The Microsoft Solutions Framework (MSF) is an adaptable approach for successfully delivering technology solutions faster, with fewer people and less risk, while enabling higher quality results. MSF helps teams directly address the most common causes of technology project failure — improving success rates, solution quality, and business impact.
MSF focuses on:
Aligning business and technology goals
Establishing clear project goals, roles, and responsibilities
Implementing an iterative, milestone/checkpoint-driven process
Managing risk proactively
Responding to change effectively
Key elements of MSF discussed in this article are:
The MSF Foundational Principles and Mindsets to orient and guide teams and team members how to work together to deliver a solution
The MSF Team Model enables projects to scale, ensures teams meet a variety of stakeholder needs, and defines goal-driven roles and responsibilities
The MSF Governance Model (formally called the MSF Process Model) drives fast, high-quality results through a proven project life cycle that identifies key project activities
The MSF Foundational Principles and Mindsets
At the core of the Microsoft Solution Framework (MSF) are principles and mindsets that represent years of experience. Distilled into concepts that hold true across the various MSF models, processes, and disciplines, these principles and mindsets are the foundation of MSF. Although they are common sense concepts, it can be challenging to understand and implement them correctly. However, after they are understood, the team can produce quality products together.
The following MSF principles and concepts guide a project team toward delivering a quality solution. Each team member should understand and apply these principles in their interactions with other members of their team, with their organization, and with stakeholders. At the core of MSF are nine foundational principles:
Foster open communications. For your team to be effective and efficient, you and your team need to share appropriate levels of information among team members and across the enterprise. The team needs to understand the nature of what needs to be done and how team members and external contacts communicate. The hard part is determining an appropriate level for each relationship and what information needs to be shared.
Work toward a shared vision. Having a shared vision empowers team members and enables agility so that team members are able to make informed decisions quickly in the context of achieving a vision. A shared vision also helps team members fill requirements gaps as they are discovered.
Empower team members. Not only is empowering team members one of many ways to survive in an ever-changing environment, but team members also learn to creatively find ways to be successful and to help one another. If team members are not allowed to achieve their best, not only is their creativity diminished; they also can suffer low morale and be unable to help create a high-performance team.
Establish clear accountability and shared responsibility. Empowered team members often feel more accountable for their decisions and are willing to be jointly responsible for a project. More team member accountability leads to higher quality. For example, if a team member claims to have completed a task but it is found not to be at the right level of quality, that team member is responsible for fixing completing the task to stated quality levels. By encouraging positive growth and responsibility rather than punishing such lapses, the team member shares responsibility for the overall solution and its deliverables. This fosters stronger members of a team to be motivated to help one another to be the best they can possibly be.
Deliver incremental value. There are two facets to delivering incremental value:
Make sure what is delivered has optimal value to stakeholders.
Determine optimal increments in which to deliver value, or "frequency of delivery."
Stay agile, expect and adapt to change. Because change can happen often and at the worst possible moment, having an agile way to handle change helps you minimize common disruptions caused by change. Staying agile means an organization is ready for change and is able to smoothly adapt and adjust.
Invest in quality. Many organizations espouse quality, often a loosely defined term, but lack the understanding of how to quantify quality. Quality is something that must be proactively incorporated into the solution delivery lifecycle, it does not just happen.
Learn from all experiences. If all levels of an organization do not learn from what previously worked and did not work, how can they be expected to improve next time? Team members must understand and appreciate that learning happens at all levels:
At a project level, such as, refining a project-wide process
At an individual level, such as how to better interact with other team members
At an organizational level, such as adjusting which quality metrics are collected for each project
Partner with internal and external customers. You increase the possibility for project success when a customer is working with the project team. That is not to say that customers do a team's work. However, when customers work closely and incrementally with a delivery team, the solution achieved better meets their expectations. Partnering with customers is mutually beneficial because it helps drive down uncertainty, shortens the time to resolve requirement questions, and increases a team's understanding of the solution value propositions through regular contact.
While the foundational principles discussed above guide how a team should be oriented to maximize success, orienting team members as individuals to maximize their success is called a mindset. Each mindset helps team members approach achieving their particular solution delivery. Ideally, team members become so comfortable with these mindsets that they use them on the job and away from work. The following are a few mindsets that each team member should internalize:
Foster a team of peers. If your organization is able to embody the MSF foundational principles, especially empowerment and accountability, does it really make sense to run a project with a hierarchical project structure? If everyone understands both the mission and its goals so they have a shared vision and their role and responsibilities in delivering a solution, then everyone is acting as peers and can be treated equally. This is not proposing anarchy or managing by committee, but rather that everyone shares responsibility for the successful delivery of a solution. Every role is singularly accountable for its respective aspects of a project while being jointly responsible for a project as a whole. As you will see, there is still a Program Manager role, but that role is focused on delivering a project within project constraints, not on managing team members.
Focus on business value. Success is measured in terms of delivering business value. This means not only delivering something that customers need, but also delivering what customers want and value. To deliver value, everyone on a team needs to understand what customers deem valuable. Failing to provide customers with business value puts a project at risk: at risk of getting off course; at risk of spending lots of misdirected time, effort, and money; and even at risk of being cancelled.
Keep a solution perspective. Because of the size and complexity of most projects, when a solution is viewed by looking at its actionable pieces, team members sometimes look too closely at small details and forget to keep the ultimate solution in mind. That is why so much emphasis is placed on the principle of having a shared vision. As team members deliver their portions, they need to look back at the overall mission, goals, and vision for a solution. Too often, a subteam optimizes their area, believing they are acting for the common good, but discover that they need to rework major aspects to bring it back in line with a solution; they get caught up in details and lose sight of a solution.
Take pride in workmanship. Not only should a team invest in quality, but the members should also see that quality is as much their responsibility as that of their other team members and it should not be delegated or passed to someone else. Instead, quality is everyone's responsibility throughout the solution delivery life cycle. This mindset not only includes enabling increased quality within a team member's own deliverables but also includes driving up the quality of process enactment and project governance. This mindset also encourages each team member to expand their understanding of skills needed to accomplish the overall mission. By watching their own quality and delivering the best they can do, team members can facilitate continuous improvement in the final product.
Learn continuously. Sometimes taking pride in skills you and your team have is not enough to accomplish the final goal. Team members need to learn new skills to become better peers in their team. Given that most projects, teams, and environments are unique, each project presents opportunities to learn, experiment, and refine skills, processes, and procedures. To take advantage of these opportunities, continuous learning and adapting must exist at all levels of an organization — not be limited to just team members.
Internalize qualities of service. Qualities of service (QoS) define expected operational characteristics of a solution, such as the level of expected solution availability. It is essential that stakeholders and team members, not just architects, understand QoS and how satisfying them affects deliverables. Otherwise, stakeholders and team members likely will make implicit assumptions about how a solution is supposed to behave. Because these assumptions rarely align, each team member needs to make explicit design decisions from the beginning to ensure QoS are satisfied. That way, implicit assumptions are converted into explicit QoS requirements. And QoS are explicitly designed into a solution from the beginning and are not treated as an afterthought.
Practice good citizenship. From the viewpoint of software development, good citizenship means being trustworthy, honorable, responsible, and respectful in all aspects of your work. This includes but is not limited to how you:
Interact with your fellow team members, with an organization, and with stakeholders
Participate in a project and help deliver a solution, including being an entrusted caretaker of corporate, project, and computing resources. This includes openly and willingly sharing resources, information, and knowledge. Good citizens act on and are mindful of the greater good.
Deliver on your commitments. Despite many embedded checks and balances, MSF runs on trust and empowerment, which are earned, in part, by team members delivering on their commitments. MSF establishes an environment in which team members and stakeholders are able to trust that their fellow team members will deliver on they say they will do. Because a project is a collection of interdependent activities, when one team member does not meet his or her commitments, it imbalances and jeopardizes the whole project.
The MSF Team Model
The MSF Team Model segments typical solution delivery activities and responsibilities into seven advocacy groups. These groups are interdependent and multidisciplinary. As represented in the table below, to help have a balanced approach, these roles each bring a unique perspective on what is needed, what must be advocated, and what the goals associated with delivering a solution should be. These roles can be combined for small team situations and expanded for large team situations.
These roles do not imply or suggest any kind of organization chart or set of job titles because they vary widely by organization and team. Most often, the roles will be distributed among different groups within an IT organization and sometimes with the business user community, as well as with external consultants and partners.
Release / Operations
The MSF Governance Model
The Governance Model (formerly called the Process Model) is designed to provide the right guidance to the right people at the right time. It is structured to allow a team to deliver key portions of a solution faster than would otherwise be possible if they focused on the highest priority features first and moved less critical ones to subsequent releases. The model is structured to help drive a team quickly to a shared consensus on how to deliver on the various aspects of a solution. The Governance Model is a flexible component of MSF that has been used successfully to improve project control, minimize risk, improve solution quality, and increase development speed. Because MSF is fully customizable, it is expected that an organization adapts the Governance Model to fit its business processes and existing solution delivery approaches.
The MSF Governance Model couples project governance with process enactment. Project governance focuses on optimizing a solution delivery process and efficient and effective use of project resources. Process enactment focuses on defining, building, and deploying a solution that meets the needs and expectations of the stakeholders.
Key aspects of the MSF Governance Model include overlapping tracks of activity, synchronizing checkpoints, and an incremental approach to delivering value to the customer.
The MSF Governance Model facilitates project governance and process enactment by using overlapping tracks of activity. At one level, tracks are overlapping, coordinated groupings of certain activities aimed at producing relevant deliverables for each track. However, MSF tracks are more than this; each has a distinct mission and represents a change in the pace and focus of a project. Tracks use reviews and synchronization points called checkpoints (which are discussed next) throughout each track to assist in determining whether track objectives are being met. Additionally, major checkpoints are used to bring closure to each track, which enables a shift of responsibilities for directing many activities and encourages a team to take a new perspective more appropriate for the goals of the next track.
The MSF Governance Model consists of five overlapping enactment tracks and a persistent governance track that spans across the enactment tracks.
Diagram of the governance track
The Governance Track focuses on balancing efficient and effective use of project resources and delivery of a solution with adherence to a set of potentially changing project constraints. In addition, the Governance Track espouses continuous process improvement.
Good project governance provides just enough oversight, process, guidance, and rigor to efficiently and effectively use project resources, deliver a solution, and handle trade-off decisions while balancing adherence to a set of potentially changing project constraints. The MSF Governance Track strives to provide, and continuously improve, good project governance. It consists of discrete and persistent activities throughout a project.
The goals for the Governance Track are the following:
Guide enactment activities to deliver a solution with repeatable and reliable results
Optimize and continuously improve team performance and throughput, solution quality, and process improvement
Secure approval from:
Users that a solution meets their needs and is sufficiently usable
Operations that a solution is ready to deploy
Customer that a project is complete
Process enactment is the detailed sequence of steps by which a solution is defined, built, and deployed. Essentially, the enactment tracks help a team reach a high-level agreement on what is envisioned and create approach options to deliver on that vision (the Envision Track); assess those options and plan out the selected option (the Plan Track); build the solution (the Build Track); make sure the solution is delivered as expected (the Stabilize Track); and ultimately, deploy that solution (the Deploy Track).
The goals for each enactment track are as follows:
Develop a clear understanding of what is needed within context of project constraints.
Assemble the necessary team to envisage solutions with options and approaches that best meet those needs while optimally satisfying those constraints.
- Evolve the conceptual solution into tangible designs and plans so it can be built in a Build Track.
- Build the various aspects of a solution in accordance with Plan Track deliverables, such as designs, plans, schedules, and requirements.
Improve solution quality to meet release criteria for deployment to production.
Validate that solution meets stakeholder needs and expectations.
Validate solution usability from a user perspective.
Maximize success and minimize risks associated with solution deployment and operations in the solution's target environments.
Integrate a solution successfully into production within designated environments.
Transfer responsibility for the remaining solution delivery from a project team to operations and support teams as smoothly and soon as possible.
Checkpoints, a central theme in MSF, are used to plan and monitor project progress and call out completion of deliverables and activities. Checkpoints are used to provide explicit opportunities for a team and the customers to reconfirm project scope, or adjust project scope to reflect changing customer or business requirements or to accommodate risks and issues that might materialize during the course of a project. Checkpoints are used for many reasons, such as:
Help to synchronize work elements.
Provide external visibility of progress and quality.
Enable midcourse corrections.
Focus reviews on goals and deliverables.
Provide approval points of work before moving forward.
MSF distinguishes between two types of checkpoints: major checkpoints and interim checkpoints. Major checkpoints mark the completion of major activities and major deliverables, including the end of planned activities for a given track. Interim checkpoints are defined by the team to indicate progress within a track and to segment large efforts into workable pieces.
A solution does not provide business value until it is deployed into production and used effectively. For this reason, the life cycle of the MSF Governance Model includes incremental development and deployment of a solution into production, thereby ensuring realization of business value and of a team's overall strategic vision and goals. The combination of a strong multidimensional business representation on a team with explicit focus on impact to the business throughout the process is how MSF ensures that projects fulfill the promise of technology.
The practice of iterative development is a recurrent theme in MSF. Documents, designs, plans, and other deliverables are developed in an iterative fashion. As you would expect, the MSF Governance Model is an iterative approach.
The Microsoft Solutions Framework can be an effective tool for organizations wishing to rapidly develop high-quality, business-relevant technology solutions. Its flexibility allows for easy adaptability to most technology projects, helping teams to effectively communicate and coordinate critical activities.
Note that portions of this content are from Microsoft Solutions Framework Essentials (ISBN 9780735623538). Microsoft Press. All rights reserved.
Track work with Visual Studio ALM and TFS