se-280 dr. mark l. hornick 1 process adaptations

21
SE-280 Dr. Mark L. Hornick 1 Process Adaptations

Upload: amice-wright

Post on 28-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

SE-280Dr. Mark L. Hornick

1

Process Adaptations

Page 2: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

“The process is your servant. If it does not help you, you must change it.”

- Watts Humphrey

No single "canned" software development process can meet the needs of all software

engineers and their organizations.

Page 3: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

…but you can’t modify a process until you have experience using one

The objective is for software engineers, and especially teams, to define and improve their own processes.

However, it is very difficult to define a usable personal or team process until they have experience in working within one.

A major goal of the initial "PSP" process is to provide experience and a basis for process development – NOT to try to tell you that this particular process is the only acceptable way of working

“If you don’t know where you are, a map won’t help”- Humphrey

Page 4: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

However, Humphrey suggests that the following critical components should be used for any process:

Scripts: Describe process steps, entry/exit criteria, etc.

Forms: Framework for gathering, retaining, and analyzing process data.

Standards: Guide your work and provide a basis for verification and quality management

PIPs: Identify/record process issues and generate/validate potential solutions

Page 5: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

The process we have used so far is reasonable for small software development increments with well defined requirements.

For an individual software engineer in a development organization you’re familiar with:

• What aspects of the "PSP" process could be used with little change?

• What modifications would be required?

Plan

Design

DLDR

Code

CR

Test

PM

Page 6: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

Teams and engineers can create custom development processes.

Page 7: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

Custom forms and scripts can be developed to support new processes. (ref: Dr. Sebern)

Page 8: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

Custom processes can support requirements and architecture/design work.

Page 9: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

SE-280Dr. Mark L. Hornick

Process Dashboard supports task and schedule planning for individual engineers and teams

Page 10: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

SE-280Dr. Mark L. Hornick

10

Review: The Planned Value (PV) of each task is the percentage it represents of the total planned project time.

TaskPlan hrs. PV%

Cum. hrs.

Cum. PV%

Plan wk.

A 10

B 8

C 7

D 3

E 9

Total 37

Cumulative PV by Week

0

10

20

30

40

50

60

70

80

90

100

0 1 2 3 4 5 6

WeekC

um

. P

V

27.0

21.6

18.9

8.1

24.3

100

10 27.0

18 48.6

25 67.6

28 75.7

37 100.0

1

3

3

4

5

Page 11: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

SE-280Dr. Mark L. Hornick

11

Earned value (EV) represents the cumulative planned value of completed tasks, even if they are not completed in the planned sequence.

Week Task PV% EV%Cum.

EV

1 A

D

2 B

3 --

4 C

5 --

6 E

Cumulative PV/EV by Week

0

10

20

30

40

50

60

70

80

90

100

0 1 2 3 4 5 6 7

Week

27.027

8.1

21.6 21.6

-- --

18.9 18.9

-- --

24.3 24.3

27

56.7

56.7

75.6

75.6

100.0

Page 12: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

Looking at Plan vs Earned value can help identify problems in the plan.

Cumulative Earned Value

0.0

10.0

20.0

30.0

40.0

50.0

60.0

70.0

80.0

90.0

100.0

9/9/

2002

9/16

/200

2

9/23

/200

2

9/30

/200

2

10/7

/200

2

10/1

4/20

02

10/2

1/20

02

10/2

8/20

02

11/4

/200

2

11/1

1/20

02

11/1

8/20

02Weeks

Ear

ned

Val

ue

Cumulative Planned Value

Cumulative EV

Cumulative Predicted EarnedValue

Adapted from Willet (SEI), Boston SPIN talk, 2004

Page 13: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

Tracking time/effort can help uncover problems

Estimate Actualmodule 1 UT 1.6 26.0

module 2 UT 2.1 15.6

module 3 UT 4.0 10.5

module 4 UT 4.2 41.8

module 5 UT 6.0 23.5

module 6 UT 8.1 33.8

TOTAL 25.9 151.2

Work hours on target

Completed tasks show severe underestimates

Detail tasks log shows most of

problem is in Unit Test

Defect Fix Time by type shows main problem is legacy system defects

Defect Fix Time By Type

0

100

200

300

400

500

600

700

80 50 20 100 40 10 30 60 70 90

Page 14: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

SE-280Dr. Mark L. Hornick

14

Process Dashboard can generate earned value charts and forecasts.

Page 15: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

What kind of process would you use when you don't know what you are doing?

Suppose your next project is in a new language and development environment. You are not familiar with the available libraries and tools. What effect will this have on your process?

One approach: Prototype Experimental Process (PEP)

Experiment until you get something working

Document the design of your prototype

Review the design

Update and/or refactor the code

Review the updated code

Test / inspect

Repeatas needed

Page 16: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

Have you ever heard of “agile” processes or methods? What does the team mean to you?

Page 17: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

A common issue is how to integrate an incremental development process with up-front requirements and design documentation.

"Big design up front" "We don't need no stinkin' process“

It's not very helpful to view this "conflict" as a cultural battle.

Lightweight, disciplined, data-driven process("PSP/TSP" based?)

Page 18: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

There are twelve main practices in eXtreme Programming (XP)

Planning (what, when)

Metaphor (how it works)

Simple design Testing (TFD/acceptance)

Refactoring

Small releases (monthly) Pair programming Collective ownership Continuous integration 40-hour week On-site customer Coding standards

http://xprogramming.com/book/whatisxp/

Page 19: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

Another popular "agile" process is called "Scrum" Backlog

Collection of product requirements (features) Prioritize those to be implemented in the current “Sprint”

Sprint (tasks to be done) Short iterations (4 wks) Sprint planning session

Burn-down chart (Mirror image of EV)

Scrum Daily meeting (“daily standup”) Determines what’s done/not done; aimed at removing obstacles to

completion Sprint planning session

Burn-down chart Mirror image of EV

Sprint retrospective PIPs

Page 20: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

Here is an example of one attempt to integrate agile/TDD practices with "TSP" processes

Time logging (no timer) At least twice a day

Before Lunch Before going home

Initial phases Requirements Architecture/Design

Agile Increments: Code/test/design

In "design" phase Document the design

Reviewable form Review/inspect design Code phase

Completion, updates Unit testing (100% coverage) Code inspection

This was the original plan in 2006, but . . .

Page 21: SE-280 Dr. Mark L. Hornick 1 Process Adaptations

After about a year (2007), this organization decided to modify the "agile/TSP" process.

Design Design review Design inspection Production code + unit test coding Production code + unit test review Production code + unit test inspection Build and unit test

• Heavy reliance on automated testing• Create a new test whenever a defect

escapes the test suite• Designs must be testable

www.sei.cmu.edu/tsp/symposium/