1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.
-
Upload
suzan-fowler -
Category
Documents
-
view
217 -
download
0
Transcript of 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.
1006The Microsoft Solutions
Framework
Granville MillerProgram 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 ProcessPredictablePredictableRepeatableRepeatableProductiveProductive
• ComplexComplex• DisconnectedDisconnected• HardenedHardened
ChallengesChallenges• Getting people to know about itGetting people to know about it• Getting people to use itGetting 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 AckermanProject Manager
Art BensonArchitect
Mort GainesDeveloper
Renee Davis Tester
Larry Sykes Product Manager
Run Test Identify a BugWrite Validation Tests
Plan a Scenario
Implement a Development Task
Create Solution Architecture
Create a Scenario
Define Personas
Apply for Loan: Fill out Application
Book Loan: Create Loan Agreement
Evaluate Request: Find Credit Score
Create Scenario List Write ScenariosPrioritize Scenario List
1
Review Scenarios
Decompose System
Run a Test Case
Determine Interfaces
< Back Next > Cancel
Wizard Text
Wizard TitleWizard Title
Create Architectural Prototype
Estimate Scenario
Schedule Scenario
March 29
Monday Tuesday Wednesday
Thursday Friday Saturday Sunday
30 31 April 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 May 1 2
April 04
Divide Scenario into Tasks
Cost a Development Task
Write Code
Class Class2
Class3
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 Personas
Apply for Loan: Fill out Application
Book Loan: Create Loan Agreement
Evaluate Request: Find Credit Score
Create Scenario List Write Scenarios Review Scenarios
Plan a Scenario Implement a Development Task
Create Solution Architecture
Test a Scenario
Prioritize Scenario List
1
Estimate Scenario
Schedule Scenario
March 29
Monday Tuesday Wednesday
Thursday Friday Saturday Sunday
30 31 April 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 May 1 2
April 04
Cost a Development Task
Write Code
Class Class2
Class3
Integrate
Write and Perform Unit Tests
Review Code
Decompose System Divide Scenario into TasksDetermine Interfaces
< Back Next > Cancel
Wizard Text
Wizard TitleWizard Title
Create Architectural PrototypeStoryboard a Scenario
Setup and GuideProject
Write Vision Statement Define Test Approach Create Infrastructure Architecture
Create a Scenario
Evaluate ComplexityReview Objectives
100 90 80
5
1
4
ID Task Name Start Finish DurationJun 2004
4 5 6 7 8 9 10 11 12 13 14 15 16 17
1 1d6/4/20046/4/2004Task 1
2 1d6/4/20046/4/2004Task 2
3 1d6/4/20046/4/2004Task 3
4 1d6/4/20046/4/2004Task 4
5 1d6/4/20046/4/2004Task 5
Determine Progress
Iteration 0Write Vision StatementDefine PersonasAdd Scenario to Scenario ListAdd Quality of Service Requirement to Requirements ListPrioritize Scenario ListPrioritize QOS Requirement ListReview ObjectivesAssess ProgressEvaluate ComplexityCreate Infrastructure ArchitectureDefine Test ApproachPlan 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-activity Description
Required Determine 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 PersonasSub-activity Type
Sub-activity Description
Required Define Roles 1. 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.
Required Create Persona 1. 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
Apply for Loan: Fill out Application
Book Loan: Create Loan Agreement
Evaluate Request: Find Credit Score
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 ListScenario List
Goal Title Priority Must Have Description Rough Order of Magnitude
Rent Video Sunny Day Scenario
Provision Videos Sunny 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
Apply for Loan: Fill out Application
Book Loan: Create Loan Agreement
Evaluate Request: Find Credit Score
Create Scenario List Prioritize Scenario List
1
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
Apply for Loan: Fill out Application
Book Loan: Create Loan Agreement
Evaluate Request: Find Credit Score
Create Scenario List Write ScenariosPrioritize Scenario List
1
Review Scenarios
Decompose System
Test a Scenario
Divide Scenario into Tasks Determine Interfaces
< Back Next > Cancel
Wizard Text
Wizard TitleWizard Title
Create Architectural Prototype
Estimate Scenario
Schedule Scenario
March 29
Monday Tuesday Wednesday
Thursday Friday Saturday Sunday
30 31 April 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 May 1 2
April 04
Cost a Development Task
Write Code
Class Class2
Class3
Integrate
Write and Perform Unit Tests
Review Code
Run Test Identify 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
Class Class2
Class3
Integrate
Write and Perform Unit Tests
Review Code
Fix a Bug
Triage Bugs
Schedule Bugs
March 29
Monday Tuesday Wednesday
Thursday Friday Saturday Sunday
30 31 April 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 May 1 2
April 04
Run Test
Verify Bug
Close a BugReport
Triage
Close Out a Bug ReportClose a Bug
Report
Create Development Task
Plan a QosRequirement
Implement a Development TaskCreate Solution Architecture
Create a QosRequirement
Apply for Loan: Fill out Application
Book Loan: Create Loan Agreement
Evaluate Request: Find Credit Score
Add Qos Req to Scenario ListReview Qos Req
Decompose System
Run a Test Case
Determine Interfaces
< Back Next > Cancel
Wizard Text
Wizard TitleWizard Title
Create Architectural Prototype
Prioritize Scenario List
1
Estimate Qos Req
Schedule Qos Req
March 29
Monday Tuesday Wednesday
Thursday Friday Saturday Sunday
30 31 April 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 May 1 2
April 04
Divide Scenario into Tasks
Cost a Development Task
Write Code
Class Class2
Class3
Integrate
Write and Perform Unit Tests
Review Code
Run Test Identify a BugWrite Performance Test
Write Qos Requirements
Develop a Perf Model
Run Test Identify a BugWrite Validation Tests
Define Personas
Apply for Loan: Fill out Application
Book Loan: Create Loan Agreement
Evaluate Request: Find Credit Score
Create Scenario List Write Scenarios Review Scenarios
Plan a Scenario Implement a Development Task
Create Solution Architecture
Run a Test Case
Prioritize Scenario List
1
Estimate Scenario
Schedule Scenario
March 29
Monday Tuesday Wednesday
Thursday Friday Saturday Sunday
30 31 April 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 May 1 2
April 04
Cost a Development Task
Write Code
Class Class2
Class3
Integrate
Write and Perform Unit Tests
Review Code
Decompose System Divide Scenario into TasksDetermine Interfaces
< Back Next > Cancel
Wizard Text
Wizard TitleWizard Title
Create Architectural PrototypeStoryboard a Scenario
Setup and Guide Project
Write Vision Statement Define Test Approach Create System Architecture
Create a Scenario
Evaluate ComplexityReview Objectives
100 90 80
5
1
4
ID Task Name Start Finish DurationJun 2004
4 5 6 7 8 9 10 11 12 13 14 15 16 17
1 1d6/4/20046/4/2004Task 1
2 1d6/4/20046/4/2004Task 2
3 1d6/4/20046/4/2004Task 3
4 1d6/4/20046/4/2004Task 4
5 1d6/4/20046/4/2004Task 5
Determine Progress
MinimumMinimumAcceptanceAcceptanceLevelLevel
Iteration 1Iteration 1
Iteration 2Iteration 2Iteration 3Iteration 3
Review Objectives
Define Personas
Apply for Loan: Fill out Application
Book Loan: Create Loan Agreement
Evaluate Request: Find Credit Score
Create Scenario List Write Scenarios Review ScenariosPrioritize Scenario List
1
Divide Scenario into Tasks
Cost a Development Task
Write Code
Class Class2
Class3
Integrate
Write and Perform Unit Tests
Review Code
Engineering Effort
High Technological Risk
Desi
gn
Diffi
cult
y
High Organizational Risk
Resources
• Windows XP
• VisualStudio
• Halo 2Halo 2
Focus on Architecture
High Technological Risk
Desi
gn
Diffi
cult
y
High Organizational Risk
Resources
• Windows XP
• VisualStudio
• Halo 2Halo 2
Decompose SystemDivide Scenario into Tasks Determine Interfaces
< Back Next > Cancel
Wizard Text
Wizard TitleWizard Title
Create Architectural PrototypeStoryboard 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 Test Identify a BugWrite Validation TestsDivide Scenario into Tasks
Cost a Development Task
Write Code
Class Class2
Class3
Integrate
Write and Perform Unit Tests
Review Code
Define Test Approach
““No Critical FailureNo Critical FailureOr Major Impact BugsOr Major Impact Bugs(Impact Severity 1 or 2)(Impact Severity 1 or 2)In Shipping Product”In Shipping Product”
““100% Code Coverage 100% Code Coverage Achieved”Achieved”
% Scenarios% ScenariosTestedTested
% Code% CodeCoverageCoverage
% Tests % Tests PassedPassed
BugsBugsFoundFound
% Code% CodeChurnChurn
severityseverity1 or 2 bugs1 or 2 bugs
Create a Scenario
Apply for Loan: Fill out Application
Book Loan: Create Loan Agreement
Evaluate Request: Find Credit Score
Create Scenario List Write ScenariosPrioritize Scenario List
1
Divide Scenario into Tasks
Write Code
Class Class2
Class3
IntegrateWrite and Perform Unit Tests
Review Code
Run a Test Case
Run Test Identify a BugWrite 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 MSF provides friction-free usage that doesn’t get in the waydoesn’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
ProcessModulePhase
Activity
Role
WorkProduct
Person
Assignment
MSF Metamodel Essentials
Iteration
One or more iterations of
process module enactment occur
during each phase
Specific process modules are
appropriate for selection in one or
more phases
An iteration consists of activities
enacted as an assignment to a
person
An activity defines work in terms of
steps performed by a role on , or using ,
a work product
A work product is an output of or input
to an activity
Process work consisting of activities that should be
enacted together are defined as selectable process
modules
A project is in a phase determined by the aggregate state of key work
products
A work product is an associated with one or more roles which have different responsibilities
regarding work performed on or using it
RoleCluster
Role clusters define groups of roles
related by skill or discipline
ConclusionsMSF 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 …[email protected]