30
Part III of Course (Classical Software System Development)

Waterfall, Unified Process, Spiral Models, and Project Failure

Embed Size (px)

Citation preview

Page 1: Waterfall, Unified Process, Spiral Models, and Project Failure

Part III of Course (Classical Software System Development)

Page 2: Waterfall, Unified Process, Spiral Models, and Project Failure

Source: Jon McCormack Website, Monash University, Australia, http://www.csse.monash.edu.au/~jonmc/CSE2305/Topics/07.13.SWEng1/html/waterfall.GIF

Page 3: Waterfall, Unified Process, Spiral Models, and Project Failure

Source: http://www.weyvalley.com/images-1/rational-unified-process/image_view_fullscreen

Page 4: Waterfall, Unified Process, Spiral Models, and Project Failure

Unified ProcessVs.

Waterfall

� Note that a waterfall-like process occurs in each iteration of the UP

� Basically you have to analyze before you design

� …and design before you code

� …even if you do this again and again over many iterations

Page 5: Waterfall, Unified Process, Spiral Models, and Project Failure

Unified ProcessVs.

Waterfall

� So these models are not completely unrelated

� (I.e., these models are related!)

� But they are quite different in many ways

� How to know which one to pick?

� We’ve mentioned the issue, but let’s look in more detail

Page 6: Waterfall, Unified Process, Spiral Models, and Project Failure

Waterfall Vs. Unified Process II

� Neither one is “one size fits all”

� Douglas R. Bonebrake: “I advocate methodology selection based upon project characteristics.”

� The following notes follow Bonebrake’s discussion

Page 7: Waterfall, Unified Process, Spiral Models, and Project Failure

Waterfall Vs. Unified Process

� Different software life cycle models…� …are all still software life cycle models

� In other words, they have more similarities than differences� …even though the UP sure looks different from the waterfall (when drawn in a fig.)

� How are the similar?� Let’s discuss before going to the next slide

Page 8: Waterfall, Unified Process, Spiral Models, and Project Failure

Waterfall Vs. UP (cont.)

� You still need to do standard activities:

� Analysis

� (or whatever you call it and related activities

� requirements, specs, problem definition, domain modeling, etc.)

� Design (what’s that?)

� What else?

Page 9: Waterfall, Unified Process, Spiral Models, and Project Failure

Waterfall Vs. UP (cont.)

� You still need to do standard activities:� Analysis

� (or whatever you call it and related activities� requirements, specs, problem definition, domain modeling, etc.)

� Design (what’s that?)

� Development

� Testing

� Deployment…

Page 10: Waterfall, Unified Process, Spiral Models, and Project Failure

Waterfall Vs. UP (cont.)

� “We may call these steps by various names, segment them in different phases, or use iterations to step through them…” – D. R. Bonebrake, 2010

Page 11: Waterfall, Unified Process, Spiral Models, and Project Failure

Waterfall Vs. UP (cont.)

� People and organization involved must:

� Understand the life cycle model

� Be culturally compatible with the model

� Corporate culture differs from one place to another

Page 12: Waterfall, Unified Process, Spiral Models, and Project Failure

Waterfall Vs. Unified ProcessSelecting the right one for the job

� The problem and domain is predictable and understood

� Waterfall or UP?

� Problem and domain are poorly understood

� Waterfall or UP?

Page 13: Waterfall, Unified Process, Spiral Models, and Project Failure

Waterfall Vs. Unified ProcessSelecting the right one for the job

� Functionalities are hard to time-order in terms of delivery

� Waterfall or UP?

� Functionalities are easy to time-order in terms of delivery

� Waterfall or UP?

Page 14: Waterfall, Unified Process, Spiral Models, and Project Failure

Waterfall Vs. Unified ProcessSelecting the right one for the job

� Development team is large and not collocated

� Waterfall or UP?

� Development team is small (Bonebrake suggests <10)

� Waterfall or UP?

� Hint: waterfall puts more emphasis on documents of various kinds

Page 15: Waterfall, Unified Process, Spiral Models, and Project Failure

Waterfall Vs. UP – it’s not just UP

� RUP (stands for?) is a special case of UP

� UP is a special case of IID

� IID: Incremental, Iterative Development

� RUP, UP, Agile development, Scrum, Extreme programming, perhaps Spiral models

Page 16: Waterfall, Unified Process, Spiral Models, and Project Failure

Waterfall Vs. Unified ProcessSelecting the right one for the job

� When you can’t know ahead of time exactly what will be needed

� Use UP, because waterfall requires backtracking

� Can apply what is learned in nth iteration to next iteration

� Recall: backtracking is very expensive!

Page 17: Waterfall, Unified Process, Spiral Models, and Project Failure

When you have to back up

(source: http://www.superwebdeveloper.com/wp-content/uploads/relativecostbugfix.png)

Page 18: Waterfall, Unified Process, Spiral Models, and Project Failure

Spiral Model

Source: http://www.instructionaldesign.org/models/spiral_model.html

Page 19: Waterfall, Unified Process, Spiral Models, and Project Failure

Source: http://www.ics.uci.edu/~wscacchi/Software-Process/Images/Spiral-Model-Boehm-1987.gif, originally due to Boehm.

Page 20: Waterfall, Unified Process, Spiral Models, and Project Failure

Source: Jon McCormack Website, Monash University, Australia, http://www.csse.monash.edu.au/~jonmc/CSE2305/Topics/07.13.SWEng1/html/spiral.GIF

Page 21: Waterfall, Unified Process, Spiral Models, and Project Failure

A Key Part of Spiral Models

� Project failure is considered possible

� If things look bad, cut it loose

� “Don’t throw good money after bad”

� Example:

� Pascal/M programming language

� Let’s look at project failure some more

Page 22: Waterfall, Unified Process, Spiral Models, and Project Failure

Why Software Projects Fail

� Source: Capers Jones, Social and technical reasons for software project failures, CrossTalk, the Journal of Defense Software Engineering (June 2006), p. 4-9.

Page 23: Waterfall, Unified Process, Spiral Models, and Project Failure

Large Corporations Cringe Over Major Software Development

� Why?

� Project planning and estimating is too inexact

� Project status is reported misleadingly

� System quality is too low

Page 24: Waterfall, Unified Process, Spiral Models, and Project Failure

Large Corporation Management is Part of the Problem

� Why?

� Top execs reject quality estimates

� They pressure the project schedule, reducing quality of the product

� They tend to make substantial requirements changes mid-project

� We know that is bad, right?

Page 25: Waterfall, Unified Process, Spiral Models, and Project Failure

Why the top management-software project disconnect?

�The problems identified did not just happen by accident

�They have “root causes”

Page 26: Waterfall, Unified Process, Spiral Models, and Project Failure

Why is estimating/planning so “Inaccurate”?

� Estimates tend to be requested too early to get them right

� Even good understanding of the proposed project can be hard to reduce to time and money

� Demands for new requirements without opportunity to change estimates

� Not using modern estimating tools

� Careful estimates not accepted; better-sounding but overly optimistic ones used instead

Page 27: Waterfall, Unified Process, Spiral Models, and Project Failure

Why is status reported misleadingly?

� “PMs are simply not trained to carry out this important activity. Surprisingly, neither universities nor many in-house training programs deal with status reporting.” – p. 6

Page 28: Waterfall, Unified Process, Spiral Models, and Project Failure

Why are realistic schedules not accepted, but unrealistic ones are?

� Big shots always demand more for less!

� Large projects typically require over 3 years

� PMs have a hard time defending estimates people at the top don’t like

� Lack of historical data to translate project understanding into time and money

� Schedule is overly affected by external considerations

Page 29: Waterfall, Unified Process, Spiral Models, and Project Failure

Why do Requirements Change Mid-Project?

� “The root causes of requirements changes are dynamic businesses. Real-world requirements for software must change in response to new business needs. However, average change rates of 2 percent per…month indicate…analyzing… requirements… should be improved.” – p. 7

Page 30: Waterfall, Unified Process, Spiral Models, and Project Failure

Why is Quality Control Poor?

� “Effective software quality control is the most important single factor that separates successful projects from delays and disasters.” – p. 7

� “… finding and fixing bugs is the most expensive cost element for large systems.” – p. 7

� “More than 50 years of empirical studies have proven that projects with effective quality control cost less and have shorter schedules than similar projects with poor quality control. However, a distressing number of PMs are not aware of the economics of quality control.” – p. 7