1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft
Goals In this session we will use CaliberRM, Together, and Visual Studio Team System to show Microsoft’s Agile Software Development Process. This session will provide an overview of the MSF Agile process.
The Problem with Process PredictableRepeatable Productive Complex Complex Disconnected Disconnected Hardened Hardened Challenges Challenges Getting people to know about it Getting people to know about it Getting people to use it Getting people to use it
Microsoft Solutions Framework MSF offers guidance in how to organize people and projects to plan, build, and deploy technology solutions successfully and effectively
MSF (v4) is… The right content for the right person at the right time 1.An agile software development process 2.A formal software development process 3.Framework for customers and partners to implement custom software development process
AdventureWorks Project Team Jacqui Ackerman Project Manager Art Benson Architect Mort Gaines Developer Renee Davis Tester Larry Sykes Product Manager
Run TestIdentify a BugWrite Validation Tests Plan a Scenario Implement a Development Task Create Solution Architecture Create a Scenario Define Personas Create Scenario List Write Scenarios Prioritize Scenario List Review Scenarios Decompose System Run a Test Case Determine Interfaces Create Architectural Prototype Estimate Scenario Schedule Scenario Divide Scenario into Tasks Cost a Development Task Write Code Integrate Write and Perform Unit Tests Review Code From Team Collaboration to Team Partnership Storyboard a Scenario
Select and Run Test Identify a BugWrite Validation Tests Define PersonasCreate Scenario List Write ScenariosReview Scenarios Plan a Scenario Implement a Development Task Create Solution Architecture Test a Scenario Prioritize Scenario List Estimate Scenario Schedule Scenario Cost a Development Task Write Code Integrate Write and Perform Unit Tests Review Code Decompose SystemDivide Scenario into Tasks Determine Interfaces Create Architectural Prototype Storyboard a Scenario Setup and Guide Project Write Vision Statement Define Test Approach Create Infrastructure Architecture Create a Scenario Evaluate Complexity Review Objectives Determine Progress
Iteration 0 Write Vision Statement Define Personas Add Scenario to Scenario List Add Quality of Service Requirement to Requirements List Prioritize Scenario List Prioritize QOS Requirement List Review Objectives Assess Progress Evaluate Complexity Create Infrastructure Architecture Define Test Approach Plan Iteration 1
What is a Vision Statement? A vision statement is a short, coherent statement that concisely describes the purpose of building the new or improved system. It provides the justification for building the system to the team. It should provide its readers with an understanding, at a high level, of the users of the application, what they need, and how this application is going to provide that.
What is a Vision Statement? The language of the end user in their domain should be used. Writing this purpose in twenty- five words or less is often difficult. It is often more difficult to write a good short vision statement than a longer one. A twenty-five word vision statement is a good guideline.
Write Vision Statement Sub-activity Type Sub-activityDescription RequiredDetermine key value and the stakeholders of the application 1.Write the value proposition of the new system. 2.Determine the set of stakeholders who obtain the primary value from the system. 3.Distill the key concepts down to a single value proposition for these stakeholders to be included in the vision statement.
AdventureWorks AdventureWorks expands the local store presence and creates new revenue growth by offering sporting and camping equipment through the internet to online shoppers.
Create a Scenario Define Personas
What are Personas? In the context of product development, personas are descriptions of a group of typical users. Instead of talking about the group of users in an abstract, impersonal way, a persona represents a 'proxy' for the user group, and provides a means to talk and reason about the group through the characteristics of one fictional individual, the persona.
What is in a Persona? A persona describes the typical skills, abilities, needs, desires, working habits, tasks and backgrounds of a particular set of users. A persona is fictional reality, collecting together real data describing the important characteristics of a particular user group in a fictional character.
Defining Personas Sub-activity Type Sub-activityDescription RequiredDefine Roles1.From the stakeholders in the vision statement, choose a role that interacts with the system. 2.If the vision statement does not contain enough information (i.e. rolls up roles) to determine all of the roles that interact with the system, gather more information on the intended users. 3.If the system has security requirements, be sure to include disfavored roles such as unauthorized users. RequiredCreate Persona1.Gather real data to create a persona. Use data obtained from usability studies, user visits, focus groups and marketing studies to ensure that the persona represents reality, rather than some 'made-up' person, who we think represents the typical user. 2.Complete the persona descriptions by including a short 'life history', personality 'quirks' or interests and hobbies. Adding this type of information makes the persona easier to relate to since the person seems more real and also provides a little bit of humor, and makes the personas fun to work with. 3.Include links back to the data that was used to build the persona in the descriptions of personas. The only fictional characteristics of a persona are their name and life history, and optionally any pictures associated with the persona.
Jack Role: Online Shopper Motivation: Get it Quick Usage: Jack hates to shop but wants his equipment immediately. He will place his order on Thursday night for his weekend activity. Jack doesn’t want to wade through a catalog. Instead, he wants things that he typically orders to show immediately.
Judith Role: Online Shopper Motivation: Get it Cheap Usage: Judith shops for the best bargain. She looks for the best deal on similar items. She will visit half a dozen sites to find the best deal.
Create a Scenario Define Personas Add Scenario to List
Add Scenario to Scenario List For each persona, determine their goals of the system. Decompose each goal into the scenarios that are required to achieve that goal or may result from an unsuccessful attempt to achieve that goal. Write each scenario name in the form goal: scenario.
Scenario List GoalTitle PriorityMust HaveDescriptionRough Order of Magnitude Rent VideoSunny Day Scenario Provision VideosSunny Day Scenario
Demo Create Scenario List
Prioritize Scenario List Determine the importance of the scenario or quality of service (qos) requirement Determine the dissatisfaction level if the scenario or qos requirement is not implemented
Create a Scenario Define Personas Create Scenario ListPrioritize Scenario List Plan a Scenario Write Scenarios Storyboard a Scenario
Writing Scenarios A scenario is a single path of user interaction through the system. As the user attempts to reach a goal, the scenario records the specific steps that they will in attempting to reach that goal. Some scenarios will record a successful path; others will record an unsuccessful one. When writing scenarios, be specific. Since there are an infinite number of possible scenarios for all but the most trivial systems, it is important to be discerning in deciding which scenarios to write (see Create a Scenario List)..
Sees Work Item Tasks in VS
Demo Decompose Scenario into Development Tasks
Plan a Scenario Implement a Development Task Create Solution Architecture Create a Scenario Define Personas Create Scenario List Write Scenarios Prioritize Scenario List Review Scenarios Decompose System Test a Scenario Divide Scenario into TasksDetermine Interfaces Create Architectural Prototype Estimate Scenario Schedule Scenario Cost a Development Task Write Code Integrate Write and Perform Unit Tests Review Code Run TestIdentify a BugWrite Validation Tests From Team Collaboration to Team Partnership Storyboard a Scenario
Demo Implement a Development Task
Run a Test Case Integrate Identify a BugWrite Validation Tests Write Code Integrate Write and Perform Unit Tests Review Code Fix a Bug Triage Bugs Schedule Bugs Run Test Verify Bug Close a Bug Report Triage Close Out a Bug Report Close a Bug Report Create Development Task
Plan a Qos Requirement Implement a Development Task Create Solution Architecture Create a Qos Requirement Add Qos Req to Scenario List Review Qos Req Decompose System Run a Test Case Determine Interfaces Create Architectural Prototype Prioritize Scenario List Estimate Qos Req Schedule Qos Req Divide Scenario into Tasks Cost a Development Task Write Code Integrate Write and Perform Unit Tests Review Code Run TestIdentify a Bug Write Performance Test Write Qos Requirements Develop a Perf Model
Run TestIdentify a BugWrite Validation Tests Define PersonasCreate Scenario List Write ScenariosReview Scenarios Plan a Scenario Implement a Development Task Create Solution Architecture Run a Test Case Prioritize Scenario List Estimate Scenario Schedule Scenario Cost a Development Task Write Code Integrate Write and Perform Unit Tests Review Code Decompose SystemDivide Scenario into Tasks Determine Interfaces Create Architectural Prototype Storyboard a Scenario Setup and Guide Project Write Vision Statement Define Test Approach Create System Architecture Create a Scenario Evaluate Complexity Review Objectives Determine Progress
MinimumAcceptanceLevel Iteration 1 Iteration 2 Iteration 3
Review Objectives Define PersonasCreate Scenario List Write Scenarios Review Scenarios Prioritize Scenario List Divide Scenario into Tasks Cost a Development Task Write Code Integrate Write and Perform Unit Tests Review Code
Engineering Effort High Technological Risk Design Difficulty High Organizational Risk Resources Windows XP VisualStudio Halo 2 Halo 2
Focus on Architecture High Technological Risk Design Difficulty High Organizational Risk Resources Windows XP VisualStudio Halo 2 Halo 2 Decompose SystemDivide Scenario into TasksDetermine Interfaces Create Architectural Prototype Storyboard a Scenario Evaluate Complexity
Testing that is acceptable on one project may be criminal on another Testing Targets Trend Analysis Metrics: –% Code Coverage –Bugs Found –% Code Churn –% Tests Passed –% Scenarios Tested Context Driven Testing
Run TestIdentify a BugWrite Validation Tests Divide Scenario into Tasks Cost a Development Task Write Code Integrate Write and Perform Unit Tests Review Code Define Test Approach “No Critical Failure Or Major Impact Bugs (Impact Severity 1 or 2) In Shipping Product” “100% Code Coverage Achieved” % Scenarios Tested % Code Coverage % Tests Passed BugsFound % Code Churn severity 1 or 2 bugs
Create a Scenario Create Scenario List Write Scenarios Prioritize Scenario List Divide Scenario into Tasks Write Code Integrate Write and Perform Unit Tests Review Code Run a Test Case Run TestIdentify a Bug Write Validation Tests Implement a Development Task Cost a Development Task Create Solution Architecture
Microsoft Solutions Framework Key goals for MSF: Drive business success through business & technology alignment Ensure high quality solutions; handling the many facets of quality as defined by multiple stakeholders Accelerate delivery, reduce costs, minimize risks Improve team effectiveness
Methods of Adoption Organizational/Team – The team has decided as a unit to adopt some flavor of MSF (or your process) Grassroots – Individuals on the team find the practices useful and the process spreads by providing value MSF provides friction-free usage that doesn’t get in the way
Methods of Extension Framework – Build a process within the MSF meta- model, adopting pieces or all of MSF Agile or Formal Prototype – Using pieces or all of MSF Agile or Formal as a base to build your own process without the meta-model
MSF Process Model Structure
Conclusions MSF version 4.0 comes in two flavors to deliver maximum flexibility MSF is fully integrated in Visual Studio Team System MSF updates are delivered via MSDN MSF can become a basis for your software development process
Questions?
Thank You 1106 The Microsoft Solutions Framework Please fill out the speaker evaluation You can contact me further at …