1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

48
1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft

Transcript of 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

Page 1: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

1006The Microsoft Solutions

Framework

Granville MillerProgram Manager

Microsoft

Page 2: 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.

Page 3: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 4: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

Microsoft Solutions Framework

MSF offers guidance in how to organize people and projects to

plan, build, and deploy technology solutions

successfully and effectively

Page 5: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 6: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

AdventureWorks Project Team

Jacqui AckermanProject Manager

Art BensonArchitect

Mort GainesDeveloper

Renee Davis Tester

Larry Sykes Product Manager

Page 7: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 8: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 9: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 10: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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.

Page 11: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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.

Page 12: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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.

Page 13: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

AdventureWorks

AdventureWorks expands the local store presence and creates new revenue growth by offering sporting and camping equipment through the internet to online shoppers.

Page 14: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

Create a Scenario

Define Personas

Page 15: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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.

Page 16: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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.

Page 17: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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.

Page 18: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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.

Page 19: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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.

Page 20: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 21: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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.

Page 22: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

Scenario ListScenario List

Goal Title Priority Must Have Description Rough Order of Magnitude

Rent Video Sunny Day Scenario

Provision Videos Sunny Day Scenario

Page 23: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

Demo

Create Scenario List

Page 24: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 25: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 26: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 27: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

Sees Work Item Tasks in VS

Page 28: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.
Page 29: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

Demo

Decompose Scenario into Development Tasks

Page 30: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 31: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

Demo

Implement a Development Task

Page 32: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 33: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 34: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 35: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

MinimumMinimumAcceptanceAcceptanceLevelLevel

Iteration 1Iteration 1

Iteration 2Iteration 2Iteration 3Iteration 3

Page 36: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 37: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

Engineering Effort

High Technological Risk

Desi

gn

Diffi

cult

y

High Organizational Risk

Resources

• Windows XP

• VisualStudio

• Halo 2Halo 2

Page 38: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 39: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 40: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 41: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 42: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 43: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 44: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 45: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 46: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

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

Page 47: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

Questions?

Page 48: 1006 The Microsoft Solutions Framework Granville Miller Program Manager Microsoft.

Thank You

1106

The Microsoft Solutions Framework

Please fill out the speaker evaluation

You can contact me further at …[email protected]