MSF for Agile Software Development Visual Studio 2005 Team System logo

Mindsets


MSF is much more than a set of activities that you follow. It seeks to create a culture that fosters successful projects. A mindset is a collection of values that determine how we as individuals will interpret and respond to situations. Mindsets should be on every team member’s mind from project beginning to project end when making decisions, prioritizing work, representing their constituency, and interacting with team members and other stakeholders. There are eight mindsets in MSF.

Principles and Mind Sets

Quality Is Defined By Customer - Satisfied customers are priority number one for any great team. This satisfaction includes both internal and external customers. A customer focus throughout development means having a commitment from the team to understand and solve the customer’s business problem. Once this business problem is understood, customer involvement must be maximized to the degree possible to ensure that the customer's expectations are aligned with the project. Techniques that support setting and managing customer expectations include reporting on the backlog, building small batch sizes, and delivering quality products.


Pride of Workmanship - Taking pride in contributing to a solution is an important part of creating a quality product. Motivation and a sense of responsibility result from this pride. Creating pride of workmanship is both an individual and organizational responsibility. Techniques that help maintain this sense of ownership include bottom-up estimating, giving projects code names to clearly identify the project, and clearly identifying the team.


Team of Peers - The “team of peers” mindset places equal value on each constituency. This mindset requires unrestricted communication between the roles, transparency, and a single visible backlog. The result is increased team accountability and effective communication.


Frequent Delivery - Nothing establishes credibility like frequent delivery. While having a nearly shippable product every day is important, responding to the needs of your customers with small, quality deliverables shows progress. Through frequent delivery, process and infrastructure are proven and improved. Risks, bugs, and missing requirements are detected early. Feedback can be provided when it can make a difference. Some keys to frequent delivery are keeping batch sizes small, working on deliverables in a "just-in-time" manner, and leaving options open by eliminating premature decisions. Frequent delivery is a mindset that instills discipline to a software development team.


Willingness to Learn - Since each development project, environment, and team is unique, each project and iteration within the project creates a learning opportunity. However, there can be no learning without honest feedback and reflection. Unless there is a supportive environment that fosters courage and personal safety, feedback will be limited and not placed in a light of improvement. Once these factors are in place, individuals and teams can focus on ongoing self improvement, gathering and sharing of knowledge, and beneficial lessons learned. Additionally, there will be opportunities to implement proven practices of others and to commit time in the schedule for learning. Techniques to generate feedback necessary for the willingness to learn mindset include buddy reviews and productive retrospectives.


Get Specific Early - Too many projects lose time procrastinating about the "big" picture instead of tackling solvable problems. This mindset stresses taking one step at a time, learning from specifics rather than the abstract. Defining the project in everyday terms is a key to effectively building working code, passing tests, and creating a shippable product. Another area where we can learn from specifics is in deployment. Techniques supporting this mindset include personas, scenarios, design for deployment, and test cases.


Qualities of Service - A quality of service mindset looks at the solution and develops plans based on every aspect of customer experience. The idea is that qualities of service such as performance and security should not be considered late in the project but throughout it. When ignored, these qualities of service are ultimately customer dissatisfiers and are usually implicit assumptions about how the solution will behave. With this mindset, we look at the big picture and turn implicit assumptions into explicit quality of service requirements. Techniques supporting this mindset include using specialist expertise where you need it and discovering risks as early as possible.


Citizenship - The citizenship mindset focuses on stewardship of corporate, project, and computing resources. Citizenship manifests itself in many ways from conducting the project in an efficient manner to optimizing the use of web services. Techniques that support citizenship include reassigning bugs with all of the information necessary for someone else to hit the ground running and providing good estimates of the amount of work that a development or test task will take.

© 2005 Microsoft Corporation. All rights reserved.

Build 100.2