MSF for Agile Software Development Visual Studio 2005 Team System logo

Principles

Microsoft Solutions Framework (MSF) for Agile Software Development is a scenario-driven, context-based, agile software development process for building .NET and other object-oriented applications. MSF for Agile Software Development directly incorporates practices for handling quality of service requirements such as performance and security. It is also context-based and uses a context-driven approach to determine how to operate the project. This approach helps create an adaptive process that overcomes the boundary conditions of most agile software development processes while achieving the objectives set out in the vision of the project.


Partner with Customers - Customer validation is often the difference between real and fictional business value. Understanding the value proposition of your solution and communicating it effectively is a key success factor.


Foster open communications - In order to maximize members’ individual effectiveness and optimize efficiencies in the work, information has to be readily available and actively shared.


Work toward a shared vision - Shared vision ensures that all team members agree on what they are accomplishing by building the product. Collaboration is improved because decisions are not arbitrary, but rather are determined in the context of achieving the vision that everyone agreed to.


Quality is everyone's job every day - Quality requires both bug prevention and solution verification. Utilize practices such as code analysis and peer reviews to prevent bugs as well as maximize the testing to find bugs. All roles are responsible for prevention and verification of bugs.


Stay agile, adapt to change - The more an organization seeks to maximize the business impact of a technology investment, the more they venture into new territories. This new ground is inherently uncertain and subject to change as exploration and experimentation results in new needs and methods. To demand certainty in a changing environment is unrealistic and leads to unsuccessful results.


Make deployment a habit - The team should be committed to creating the highest quality product while making changes. Each change should be done in the context of the belief that the product should be ready to ship at any time. Design the system to be deployed and practice deploying it a development environment. Developers should be constantly running the product and the company should be trialing new releases or "dogfooding".


Flow of value - Plan, execute, and measure progress and velocity based on the delivery of increasing value to the customer and rising return on investment.  Minimize those activities that do not add customer value, because they are waste.  Use iterations to maintain the cadence of work products that your customer can evaluate. Make the handoffs of work from one team member to another as efficient as possible.

© 2005 Microsoft Corporation. All rights reserved.

Build 100.2