Microsoft Solutions Framework
Encyclopedia

Microsoft Solutions Framework (MSF) is a set of principles, models, disciplines, concepts, and guidelines for delivering information technology
Information technology
Information technology is the acquisition, processing, storage and dissemination of vocal, pictorial, textual and numerical information by a microelectronics-based combination of computing and telecommunications...

 solutions from Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

. 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
Methodology
Methodology is generally a guideline for solving a problem, with specificcomponents such as phases, tasks, methods, techniques and tools . It can be defined also as follows:...

 (Waterfall
Waterfall model
The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance.The waterfall...

, Agile
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...

) but lets them decide what methodology
Methodology
Methodology is generally a guideline for solving a problem, with specificcomponents such as phases, tasks, methods, techniques and tools . It can be defined also as follows:...

 to use.

MSF 3.0

2002 saw the release of MSF version 3.0. It modified version 2.0 in the following ways:
  • Combined previously separate models into unified Team and Process models designed for application across a variety of project types including deployment, enterprise software integration, and development projects.
  • Folded the Application Development and Infrastructure Deployment models into a single Process Model consisting of five phases.
  • Added Project Management and Readiness Management Disciplines.
  • Made changes to the Risk Management Discipline.
  • Added links between MSF and the Microsoft Operations Framework (MOF).
  • Added an MSF Practitioner Program designed to train individuals to lead or participate in MSF projects.

MSF 4.0

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.

Goals

Microsoft Solutions Framework (MSF) is a set of software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

 process
Process (engineering)
In engineering a process is a set of interrelated tasks that, together, transform inputs into outputs. These tasks may be carried out by people, nature, or machines using resources; so an engineering process must be considered in the context of the agents carrying out the tasks, and the resource...

es, principles, and proven practices intended to enable developer
Software developer
A software developer is a person concerned with facets of the software development process. Their work includes researching, designing, developing, and testing software. A software developer may take part in design, computer programming, or software project management...

s to achieve success in the software development life cycle (SDLC). MSF provides an adaptable guidance, based upon experiences and best practice
Best practice
A best practice is a method or technique that has consistently shown results superior to those achieved with other means, and that is used as a benchmark...

s from inside and outside of Microsoft, to increase the chance of successful delivery of an information technology
Information technology
Information technology is the acquisition, processing, storage and dissemination of vocal, pictorial, textual and numerical information by a microelectronics-based combination of computing and telecommunications...

 solution to the customer by working fast, decreasing the number of people on the project team
Project team
A project team is a team whose members usually belong to different groups, functions and are assigned to activities for the same project. A team can be divided into sub-teams according to need. Usually project teams are only used for a defined period of time. They are disbanded after the project is...

, averting risk
Risk management
Risk management is the identification, assessment, and prioritization of risks followed by coordinated and economical application of resources to minimize, monitor, and control the probability and/or impact of unfortunate events or to maximize the realization of opportunities...

, while enabling high quality
Quality Assurance
Quality assurance, or QA for short, is the systematic monitoring and evaluation of the various aspects of a project, service or facility to maximize the probability that minimum standards of quality are being attained by the production process...

 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 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
Methodology
Methodology is generally a guideline for solving a problem, with specificcomponents such as phases, tasks, methods, techniques and tools . It can be defined also as follows:...

. 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
Software development
Software development is the development of a software product...

; 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
Iterative and incremental development
Iterative and Incremental development is at the liver of a cyclic software development process developed in response to the weaknesses of the waterfall model...

 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.

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 towards 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. This describes the role of various team members in a software development project. The members of this team would be:
  • Product Management: Mainly deals with customers and define project requirements, also ensures customer expectations are met.
  • Program Management: Maintains project development and delivery to the customer
  • Architecture: Responsible for solution design, making sure the solution design optimally satisfies all needs and expectations
  • Development: Develops according to the specifications.
  • Test: Tests and assures product quality
  • Release/Operations: Ensures smooth deployment and operations of the software
  • User Experience: Supports issues of the users.

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.

2. MSF Governance Model. This describes the different stages in processing for a project. The MSF Governance Model has five overlapping tracks of activity (see below), 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.
  • Envision - think about what needs to be accomplished and identify constraints
  • Plan - plan and design a solution to meet the needs and expectations within those constraints
  • Build - build the solution
  • Stabilize - validate that the solution meets the needs and expectations... "synch and stabilize"
  • Deploy - deploy the solution

MSF Project Management Process

  • Integrate planning and conduct change control
  • Define and manage the scope of the project
  • Prepare a budget and manage costs
  • Prepare and track schedules
  • Ensure that right resources are allocated to the project
  • Manage contracts and vendors and procure project resources
  • Facilitate team and external communications
  • Facilitate the risk management process
  • Document and monitor the team's quality management process

MSF for Agile Software Development methodology

The MSF for Agile Software Development
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...

 (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 evaluation
Evaluation
Evaluation is systematic determination of merit, worth, and significance of something or someone using criteria against a set of standards.Evaluation often is used to characterize and appraise subjects of interest in a wide range of human enterprises, including the arts, criminal justice,...

s in each iteration.

MSF for Capability Maturity Model Integration Process Improvement methodology

The MSF for Capability Maturity Model Integration
Capability Maturity Model Integration
Capability Maturity Model Integration is a process improvement approach whose goal is to help organizations improve their performance. CMMI can be used to guide process improvement across a project, a division, or an entire organization...

 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
Formal methods
In computer science and software engineering, formal methods are a particular kind of mathematically-based techniques for the specification, development and verification of software and hardware systems...

 for software engineering. Capability Maturity Model
Capability Maturity Model
The Capability Maturity Model is a development model that was created after study of data collected from organizations that contracted with the U.S. Department of Defense, who funded the research. This model became the foundation from which CMU created the Software Engineering Institute...

 was created at the Software Engineering Institute
Software Engineering Institute
The Carnegie Mellon Software Engineering Institute is a federally funded research and development center headquartered on the campus of Carnegie Mellon University in Pittsburgh, Pennsylvania, United States. SEI also has offices in Arlington, Virginia, and Frankfurt, Germany. The SEI operates...

 of Carnegie Mellon University
Carnegie Mellon University
Carnegie Mellon University is a private research university in Pittsburgh, Pennsylvania, United States....

, and is a process improvement approach that provides organizations with the essential elements of continuous process improvement resulting in a reduced SDLC
SDLC
SDLC can refer to:* Systems Development Life Cycle, known also as "System Design Life Cycle"* "Software Development Life Cycle" synonym to Software development process* Synchronous Data Link Control, an IBM Protocol...

, improved ability to meet the cost and schedule targets, building products of high quality. The MSF4CMMI has extended the MSF4ASD guidance with additional formality, review
Software review
A software review is "A process or meeting during which a software product is examined by a project personnel, managers, users, customers, user representatives, or other interested parties for comment or approval"....

s, verification
Formal verification
In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics .- Usage :Formal verification can be...

 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.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK