Microsoft Solution Framework
Overview
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.
Components
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, cycles and
iterations.
MSF 4.0 provides a
high-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 conflicting 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
methodologies 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: 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
or "iterations."
This model embraces rapid
iterative development with continuous learning and refinement, due to a
progressive understanding of the business and project of the
stakeholders.
Eliciting requirements,
product development, and testing can occur in overlapping iterations
resulting in incremental completion to ensure a flow of value of the
project.
Each
iteration has a different focus and results in a stable portion of the
overall system.
Foundational Principles:
The following are the
eight foundational principles, which form the backbone for the other
models and disciplines of MSF:
1. Foster open
communication
2. Work toward a shared
vision
3. Empower team members
4. Establish clear
accountability and shared responsibility
5. Focus on delivering
business value
6. Stay agile, expect
change
7. Invest in quality
8. Learn from all
experiences
MSF Models:
MSF consists of two
models:
1. MSF Team Model
2. MSF
Process Model
MSF Disciplines:
1. MSF Project Management
Discipline
2. MSF Risk Management
Discipline
3. MSF Readiness
Management Discipline
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® is 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.