selecting a development process - mountain goat software€¦ · build on the personal software...

28
Copyright Mountain Goat Software, LLC Selecting a Development Process: Choosing Among the Leading Alternatives Mike Cohn Mountain Goat Software [email protected] Copyright Mountain Goat Software, LLC Mike Cohn - background 1 2

Upload: others

Post on 28-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Selecting a Development Process:

Choosing Among the

Leading Alternatives

Mike CohnMountain Goat Software

[email protected]

Copyright Mountain Goat Software, LLC

Mike Cohn - background

1

2

Page 2: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Considerations

Team Software Process

Scrum

Extreme Programming

OpenUP/Basic

Rational Unified Process

Today’s agenda

Copyright Mountain Goat Software, LLC

Ceremony

• The amount of formalism in a process

• Documentation, method weight, reviews

Few documentsFew steps

Many documentsFormal steps

3

4

Page 3: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Cycles

• Number and length of iterations

Few documentsFew steps

Many documentsFormal steps

Sequential

Many short iterations(5 days)

Copyright Mountain Goat Software, LLC

Placing the processes

Few documentsFew steps

Many documentsFormal steps

Sequential

Many short iterations(5 days)

5

6

Page 4: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Considerations

Team Software Process

Scrum

Extreme Programming

OpenUP/Basic

Rational Unified Process

Today’s agenda

Copyright Mountain Goat Software, LLC

Team Software Process (TSP)

• Created by Watts Humphrey

• Of Software Engineering Institute and Capability Maturity Model (CMM)

• Builds on his Personal Software Process

• High discipline, highly defined

• A “cyclic development strategy”

• Another way of saying “iterative and incremental”

7

8

Page 5: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Goals of the TSP1. Build on the Personal Software Process2. Develop products in cycles3. Establish standard measures for quality and

performance4. Provide precise measures5. Use role and team evaluations6. Require process discipline7. Provide guidance on teamwork problems

Copyright Mountain Goat Software, LLC

Team Software Process (TSP)

9

10

Page 6: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Cyclic development

• A testable version is produced at the end of each cycle

• Purpose of testing is to assess the product, not fix it

• Defects should be removed during the cycle

Copyright Mountain Goat Software, LLC

Designed to solve team problems

11

12

Page 7: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Teams, members, roles and goals

• A team has one or more members

• Each member fills one or more roles

• Goals are assigned throughout this hierarchy

• Team, member, role

Copyright Mountain Goat Software, LLC

Goals and goals and...

•Produce a quality product•Run a productive and well-managed project•Finish on time

•Be a cooperative and effective team member•Do consistently disciplined personal work•Plan and track all your personal work•Produce quality products

13

14

Page 8: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

...more goals

•Produce a superior product•Fully use the team members’ skills and abilities

Copyright Mountain Goat Software, LLC

Scripts and forms

• TSP uses scripts to define the steps of building a software system

• 21 activity scripts

• 10 role scripts

• Often quite detailed

• Scripts prescribe completing 21 supporting forms

15

16

Page 9: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

The inspection scriptPurpose To help engineers produce quality products

Entry criteriaA completed and reviewed product with available materials

Step Activities Description

1Plan the inspection

The developer•Arranges with the quality/process manager or some other qualified team member to be the moderator

•Handles the mechanics of setting up and running…

2Hold the inspection

The moderator describes the inspection processThe producer familiar the inspection team with the product.

... ... ...

Exit criteria INS and LOGD forms completed and filed in the …

Copyright Mountain Goat Software, LLC

Choose TSP if...

• …you have the discipline to follow all of its specific steps

• …are already using the complementary Personal Software Process (PSP)

• …team members need this level of guidance

• …you do not have emergent requirements

17

18

Page 10: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Considerations

Team Software Process

Scrum

Extreme Programming

OpenUP/Basic

Rational Unified Process

Today’s agenda

Copyright Mountain Goat Software, LLC

Scrum characteristics

• 30-day iterations called “sprints”

• Self-organizing teams

• No specific engineering practices prescribed

• But many Scrum teams are adopting much of XP

• Uses generative rules to create an agile environment for delivering projects

19

20

Page 11: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Scrum roles

Copyright Mountain Goat Software, LLC

Product backlog

•A “to-do list” for the entire project

•Often written as user stories

•Prioritized by the product owner

•Estimated in story points to track progressCancel

Gift wrap

Return

21

22

Page 12: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Sprints

Cancel

Gift wrap

Return

Sprint2-4 weeks

Return

Sprint goal

Sprint backlogPotentially shippable

product increment

Copyright Mountain Goat Software, LLC

Review and planning

Cancel

Gift wrap

Sprint2-4 weeks

Return

Sprint goal

Sprint backlogPotentially shippable

product increment

Coupons

Gift wrap

Coupons

Cancel

23

24

Page 13: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

The daily scrum

Sprint2-4 weeks

Return

Sprint goal

Sprint backlogPotentially shippable

product increment

Gift wrap

Coupons

Cancel

Copyright Mountain Goat Software, LLC

Scrum

25

26

Page 14: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Sequential vs. overlapping development

Source: “The New New Product Development Game”, Hirotaka Takeuchi and Ikujiro Nonaka, Harvard Business Review, January 1986.

Copyright Mountain Goat Software, LLC

Scrum meetings

27

28

Page 15: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

A sprint burndown chart

0

200

400

600

800

1,0004/2

9/0

2

5/6

/02

5/1

3/0

2

5/2

0/0

2

5/2

4/0

2

Copyright Mountain Goat Software, LLC

When will this project be released?

Sto

ry P

oin

ts

Sprints

600

450

300

150

01 2 3 4 5

29

30

Page 16: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Scaling with a Scrum of Scrums

Copyright Mountain Goat Software, LLC

Choose Scrum if...

• …requirements are changing or emergent

• …you’re willing to let the team self-organize

• …you need a management framework more than a set of engineering practices

• …you want to better manage risk

• …you need a proven, scalable agile process

31

32

Page 17: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Considerations

Team Software Process

Scrum

Extreme Programming

OpenUP/Basic

Rational Unified Process

Today’s agenda

Copyright Mountain Goat Software, LLC

Extreme Programming

• Adds specific engineering practices to Scrum’s project management approach

• A tough target to hit but highly productive if you do

33

34

Page 18: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

XP’s customer practices

Copyright Mountain Goat Software, LLC

XP’s quality practices

35

36

Page 19: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

XP’s quality practices

Copyright Mountain Goat Software, LLC

Choose Extreme Programming if...

• …you have loosely-defined or volatile requirements

• …you have or can develop strong engineering skills and practices

• …customers can be involved on a daily (hourly) basis

• …it’s important you hit the bulls eye right off and you think you can

37

38

Page 20: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Considerations

Team Software Process

Scrum

Extreme Programming

OpenUP/Basic

Rational Unified Process

Today’s agenda

Copyright Mountain Goat Software, LLC

OpenUP/Basic

• A subset of the Open Unified Process

• Delivered through the Eclipse Process Framework

• Derived from the Basic Unified Process

• (If they’re unified why are there so many of them?)

• Targeted at teams of 3-6 people

• Targeted at projects 3-6 months long

39

40

Page 21: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Comparison with RUP

OpenUP/Basic RUP

Pages 190 ~2000

Roles 6 ~45

Tasks 23 ~150

Artifacts 17 ~80

Source: What is the Eclipse Process Framework, Per Kroll and Scott Ambler, IBM Rational Software Development Conference 2006.

Copyright Mountain Goat Software, LLC

OpenUP roles

• Analyst

• Architect

• Developer

• Tester

• Project manager

41

42

Page 22: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Roles, tasks, and artifacts

Plan theproject

Assessresults

Prioritizework

Monitorandcontrolproject

InitiateIteration

PlanIteration

Projectmanager

Performs

Projectplan

Statusassessment

Iterationplan

Workitems list

Responsible for

Copyright Mountain Goat Software, LLC

Open UP phases

43

44

Page 23: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Copyright Mountain Goat Software, LLC

Iterate within each phase

45

46

Page 24: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Choose OpenUP/Basic if...

• You like RUP but want something lighter

• You want an open source version of RUP

• You have a small project (3-6 people; 3-6 months)

• You want a semi-agile process based on role, task and artifact guidance

Copyright Mountain Goat Software, LLC

Considerations

Team Software Process

Scrum

Extreme Programming

OpenUP/Basic

Rational Unified Process

Today’s agenda

47

48

Page 25: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

The Rational Unified Process

• Proprietary, sold as a product from IBM

• Use case-driven

• Architecture-centric

• Iterative and incremental

• Lots of role, task and artifact guidance

• Strongly oriented toward OO languages

Copyright Mountain Goat Software, LLC

Phases and disciplines

49

50

Page 26: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Some common RUP challenges

• It’s meant to be a cookbook but is often used like a buffet

• Phases are mistakenly treated like a waterfall

• Over-modeling is common

• Iterations should be weeks not months

Copyright Mountain Goat Software, LLC

Choose the RUP if...

• …you need a process framework that has everything ever possible already in it

• …you can resist the temptation to adopt too much of it

• …you want well-defined roles

• …it’s important to have a well-documented process that new hires may be familiar with

• …you do not have emergent requirements

51

52

Page 27: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Where to go next

Copyright Mountain Goat Software, LLC

Where to go next

53

54

Page 28: Selecting A Development Process - Mountain Goat Software€¦ · Build on the Personal Software Process 2. Develop products in cycles 3. Establish standard measures for quality and

Copyright Mountain Goat Software, LLC

Upcoming public classesDate What Where

September 26-27 Certified ScrumMaster London

September 28 Agile Estimating & Planning London

November 7-8 Certified ScrumMaster Santa Clara

November 9 Agile Estimating & Planning Santa Clara

November 29-30Certified Product Owner(with Ken Schwaber) Boulder

January 16-17Certified ScrumMaster(with Ken Schwaber) Orlando

Register atwww.mountaingoatsoftware.com

Copyright Mountain Goat Software, LLC

[email protected]

www.mountaingoatsoftware.com

(720) 890-6110 (office)

(303) 810-2190 (mobile)

Mike Cohn contact info

55

56