Microsoft Solutions Framework (MSF) 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.
MSF was first introduced by Microsoft as version 1.0 in 1993.
MSF was revised to version 2.0 in 1997.
2002 saw the release of MSF version 3.0. It modified version 2.0 in the following ways:
MSF version 4.0 was released in 2005. The release was a major refresh of the Process Model (now called the Governance Model) and the Team Model.
Microsoft Solutions Framework (MSF) is a set of software engineering processes, principles, and proven practices intended to enable developers to achieve success in the software development life cycle (SDLC). MSF provides an adaptable guidance, based upon experiences and best practices from inside and outside of Microsoft, to increase the chance of successful delivery of an information technology solution to the customer by working fast, decreasing the number of people on the project team, averting risk, while enabling high quality results.
The Microsoft Solution Framework version 4.0 is a combination of a metamodel which can be used as a base for prescriptive software engineering processes, and two customizable and scalable software engineering processes. The MSF metamodel consists of foundational principles, a team model and cycles and iterations.
MSF 4.0 provides a higher-level framework of guidance and principles which can be mapped to a variety of prescriptive process templates. It is structured in both descriptive and prescriptive methodologies. The descriptive component is called the MSF 4.0 metamodel, which is a theoretical description of the SDLC best practices for creating SDLC methodologies. Microsoft is of the opinion that organizations have diverging dynamics and contrary priorities during their software development; some organizations need a responsive and adaptable software development environment, while others need a standardized, repeatable and more controlled environment. To fulfill these needs, Microsoft represents the metamodel of MSF 4.0 in two prescriptive methodology templates that provide specific process guidance, named Microsoft Solutions Framework for Agile Software Development (MSF4ASD) and Microsoft Solutions Framework for Capability Maturity Model Integration Process Improvement (MSF4CMMI). Note that these software engineering processes can be modified and customized to the preferences of organization, customer and project team.
The MSF philosophy holds that there is no single structure or process that optimally applies to the requirements and environments for all sorts of projects. Therefore, MSF supports multiple process approaches, so it can be adapted to support any project, regardless of size or complexity. This flexibility means that it can support a wide degree of variation in the implementation of software engineering processes while retaining a set of core principles and mindsets.
The Microsoft Solutions Framework Process Model consists of series of short development cycles and iterations. This model embraces rapid iterative development with continuous learning and refinement, due to progressive understanding of the business and project of the stakeholders. Identifying requirements, product development, and testing occur in overlapping iterations resulting in incremental completion to ensure a flow of value of the project. Each iteration has a different focus and result in a stable portion of the overall system.
The following are the nine foundational principles, which form the backbone for the other models and disciplines of MSF:
- Foster open communication
- Work towards a shared vision
- Empower team members
- Establish clear accountability and shared responsibility
- Focus on delivering business value
- Stay agile, expect change
- Invest in quality
- Learn from all experiences
- Partner with customers
MSF consists of two models.
MSF Team Model
This describes the role of various team members in a software development project.
The members of this team would be:
One person may be assigned to perform multiple roles. MSF also has suggestion on how to combine responsibilities such as the developer should not be assigned to any other role.
MSF Governance Model
This describes the different stages in processing for a project. The MSF Governance Model has five overlapping tracks of activity, each with a defined quality goal. These tracks of activity define what needs to be accomplished and leave how they are accomplished to the team selected methodology. For instance, these tracks can be small in scope and performed quickly to be consistent with an Agile methodology, or can be serialized and elongated to be consistent with a Waterfall methodology.
Tracks of activity:
MSF Project Management Process
MSF for Agile Software Development methodology
The MSF for Agile Software Development (MSF4ASD) is intended to be a light weight, iterative and adaptable process.
The MSF4ASD uses the principles of the agile development approach formulated by the Agile Alliance. The MSF4ASD provides a process guidance which focuses on the people and changes. It includes learning opportunities by using iterations and evaluations in each iteration.
MSF for Capability Maturity Model Integration Process Improvement methodology
The MSF for Capability Maturity Model Integration Process Improvement (MSF4CMMI) has more artifacts, more processes, more signoffs, more planning and is intended for projects that require a higher degree of formality and ceremony.
The MSF4CMMI is a formal methodology for software engineering. Capability Maturity Model was created at the Software Engineering Institute of Carnegie Mellon University, and is a process improvement approach that provides organizations with the essential elements of continuous process improvement resulting in a reduced SDLC, improved ability to meet the cost and schedule targets, building products of high quality. The MSF4CMMI has extended the MSF4ASD guidance with additional formality, reviews, verification and audit. This results in a SEP that relies on process and conformance to process rather than relying purely on trust and the ability of the individual team members. The MSF4CMMI has more mandatory documents and reports than the agile version, and this more formal development process reduces risk on large software projects and provides a measurable status. One of the benefits of using the CMMI process is the standard evaluation by which one can compare the ability to develop software in other organizations.