Jump to content

Microsoft Solutions Framework: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Removing unnecessary link
Line 42: Line 42:


2. MSF Process Model. It describes the different stages in processing for a project.
2. MSF Process Model. It describes the different stages in processing for a project.
ety677 766 666 6 666666666 6 6666666666666666666666666666666666666666


=== MSF for Agile Software Development methodology ===
=== MSF for Agile Software Development methodology ===

Revision as of 09:08, 10 January 2008

Microsoft Solutions Framework (MSF) is a set of principles, models, disciplines, concepts, and guidelines for designing applications from Microsoft.

Goals

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 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.

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. It describes the role of various team members in a software development project.

2. MSF Process Model. It describes the different stages in processing for a project. ety677 766 666 6 666666666 6 6666666666666666666666666666666666666666

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.