iterative development royce, “successful software management style: steering and balance”, ieee...

21
Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22ite rdev2

Upload: colleen-watson

Post on 14-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Iterative Development

Royce, “Successful Software Management Style: Steering and

Balance”, IEEE Software sep/oct 05

1541Sp8Jan22iterdev2

Page 2: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Key Ideas and/or Questions

2541Sp8Jan22iterdev2

Page 3: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Rationale of Iterative Development

“Traditional project management approaches in software-intensive projects don’t encourage the steering and adjustment needed to reconcile significant levels of uncertainty in the■ problem space (what the user really wants or needs),■ solution space (what architecture and technology mix is most appropriate), and■ planning space (including cost and time constraints, team composition and productivity, stakeholder communication,and incremental result sequences).”

3541Sp8Jan22iterdev2

Page 4: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Measurement

Just as the movie industry gets action onfilm, we too must get increments of softwareinto executable form to make things tangibleenough to assess progress and quality.

4541Sp8Jan22iterdev2

Page 5: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Results

This iterative management style is results ratherthan activity-based. In the world of software, real results are executable programs.

Everything else (requirements documents, usecasemodels, design models, test cases, plans, processes, documentation, and inspections) is secondary—simply part of the means to the end.

5541Sp8Jan22iterdev2

Page 6: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Precision vs Accuracy

A common failure pattern is developing afive-digits-of-precision specification when thestakeholders have only a one-digit-of-precisionunderstanding of the problem, solution, or plan.

6541Sp8Jan22iterdev2

Page 7: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Evaluation of these ideas

7541Sp8Jan22iterdev2

Page 8: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

What do we apply to 541 project?

8541Sp8Jan22iterdev2

Page 9: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Iterative Rework: the Good, the Bad and the Ugly

Richard E Fairley and Mary Jane Willshire, IEEE Computer, Sep 05

9541Sp8Jan22iterdev2

Page 10: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Key Ideas and/or Questions

10541Sp8Jan22iterdev2

Page 11: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Rework

Incremental build lets developers produce weekly builds of an evolving product.

Each iteration involves a certain amount of rework to enhance and fix existing capabilities (the good). However, excessive rework could indicate problems in the requirements, the developers’ skillsand motivation, the development processes or technology used, or all of the above (the bad). Exorbitant levels of rework result in truly untenable situations (the ugly).

11541Sp8Jan22iterdev2

Page 12: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Fig 3 – four dimensions

12541Sp8Jan22iterdev2

Page 13: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Amount of rework

For several years, our rule of thumb has been that total rework (evolutionary plus both types of avoidable) is acceptable at 10 to 20 percent of the total effort for each reporting period in an iterative development process. The reporting period typicallyvaries from a week to a month. Weekly analysis of rework data is desirable in a project’s early stages. Less frequent reporting and analysis is appropriate once rework stabilizes and remains within the desired range.

13541Sp8Jan22iterdev2

Page 14: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Excessive rework

14541Sp8Jan22iterdev2

Page 15: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Insufficient Rework

15541Sp8Jan22iterdev2

Page 16: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Our Goal: Project Plan

The size and important features of the product to be produced

The division of tasks into iterations Size and effort estimations of work tasks

16541Sp8Jan22iterdev2

Page 17: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Identify Subtasks

Identify all the different subtasks necessary to achieve product– Include units if possible, e.g. number of ppt

slides For each subtask, identify milestone(s) and

completion criteria Establish dependencies

17541Sp8Jan22iterdev2

Page 18: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Checkpoints, Milestones, or Inch-pebbles

“A checkpoint is an objectively identifiable point in a project”

e.g. not “coding is 90% complete” possible – “design is ready for review,

design has been reviewed by all team members.”

“a checkpoint for every five hours or so of work”

18541Sp8Jan22iterdev2

Page 19: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Project Plan

establish subtasks (wbs) establish checkpoints (wbs) establish dependencies (gannt or pert) establish dates (gannt chart) assign subtasks

19541Sp8Jan22iterdev2

Page 20: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Project Plan for Iteration 1

Must have time in minutes for each leaf task No leaf task can be more than 7 days before

successor Each leaf task must have completion

criterion

20541Sp8Jan22iterdev2

Page 21: Iterative Development Royce, “Successful Software Management Style: Steering and Balance”, IEEE Software sep/oct 05 1 541Sp8Jan22iterdev2

Thursday, Jan 24

Read about Earned Value – Stellman and Greene “track the performance

…” pp63-66– SOS 3.7 – work through exercise 3.6 on page

36 – make sure you can get the same answers

21541Sp8Jan22iterdev2