3. Waterfall Model – Revisited
• Disadvantages of Waterfall Model
– 1. Real projects are rarely so straightforward and sequential
– 2. It is generally not possible to completely define (and
freeze) all the requirements at the start of the project
– 3. Problem is discovered in testing?
– 4. Freight-Train Effect, or Late, or Over-Budget
4. What is “Wicked Problem”
• Problems we can’t really understand
until we’ve developed a solution.
• “That is not what I want ... but now I
know what I do want!”
5. The Mythical Man MonthDr. Frederick Brooks
• In software projects, what
will take one person ten
months can not be solved by
ten people in one month.
• Throwing people onto a late
project will just make it later
• Because of Wicked
Problems, “Plan to the throw
one away”
6. Rapid Prototyping
•
Put together a team of “Smart
Guys” from multiple disciplines
•
Develop the GUI on Paper
•
Code the GUI in a fast language
(Make it look like it’s working)
<=Requirements=>
•
•
Show it to the USERS (A Picture
is worth a 1,000 words)
Get Feedback
**<=Prototype=>**
<=Design=>
<=Code=>
<=Test=>
<=Deploy=>
7. Case Study- RAD
Grand Community Calendar Project
– Project Manager, Developer, Community
Members write user requirements
– Coder writes sample HTML
– Shows the web page; heads bob, some
changes to navigation
– DBA, Coder, Project Manager determine the
architecture (Design)
– Coding & Review
– Shifting Requirements priced project out-ofbudget
8. Problems With Prototyping
• No “Current” Documents
• Functional Spec is Prototype +
Feedback
• Prototype is not “baseline”
functionality
• Same problems with Functional
Spec as waterfall!
9. Prototyping Part II:
The Rigged Demo
• Re-Visit and improve
the prototype to serve
as a “baseline”
Listen To
Customer
• Turns prototype into a
“rigged demo”
• Show that to the
customer
Customer Test
Drives Mockup
Build/Revise
Mockup
10. At the Demo Dialogue
• Customer:“This looks great, and it looks like you’re about
done. When can we have it?”
• Developer: “Uh, it’s only a prototype – we plan to throw it
away and start over.”
• Customer: “No – this is exactly what we need, and we need
it now! We’ll take 50 prototypes!”
–
–
The Sales Guy begins to see $$
signs.
Under Rigged Demo scenarios,
there is either a lot of wasted effort,
or prototypes that were never
intended to ship end up shoved into
production.
11. Case Studies
Multi-Stage Prototyping
• Telecommunication
– The prototype made the sale!
– Was pushed into production
– From user requirements to “Ship”ing in 4 month
– Errors, Bugs, High Turn-Over
– Had to support bug fixes plus “incremental” change
• Visual Product Explorer
– Prototype created for internal consumption
– Feedback Cycle
– Modified for trade demo
– Next step: How do we write the spec?
– Product is the spec; shove it into production!
12. Iterative Models
What’s an Iteration?
•
•
Iterative Design: Code as much as you can questions surface, then start
over.
Every model we’ll talk about below is a variation on the Iterative Model.
14. Risk Assessment
• Spiral Model – risk driven rather
than document driven
• The "risk" inherent in an activity is
a measure of the uncertainty of the
outcome of that activity
• High-risk activities cause schedule
and cost overruns
• Risk is related to the amount and
quality of available information.
The less information, the higher
the risk
• What happened with Denver
Airport Luggage System?
15. Spiral Model
Strength and Weaknesses
• Strengths
–
–
–
–
–
Introduces risk management
Prototyping controls costs
Evolutionary development
Release builds for beta testing
Marketing advantage
• Weaknesses
–
–
–
–
–
Lack of risk management experience
Lack of milestones
Management is dubious of spiral process
Change in Management
Prototype Vs Production
16. Win Win Spiral Model
• Win-Win Spiral Process Model is a model of a
process based on Theory W, which is a
management theory and approach "based on
making winners of all of the system's key
stakeholders as a necessary and sufficient
condition for project success."
17. WinWin Spiral Model
••Identify Nextproduct & process definitions
••Validate commitment holders process
Identify Stake holders win conditions
Evaluate Product of Process and
Reconcile Level Stake
Define next level & product Alternatives
Review, Win conditions
18. Win Win Spiral Cont
• Identifying the system's stakeholders and their
win conditions and
• reconciling win conditions through negotiation to
arrive at a mutually satisfactory set of objectives,
constraints, and alternatives for the next level.
• Evaluate Product and Process Alternatives.
Resolve Risks
• Define next level of product and process including partitions
• Validate Product and Process Definitions
• Review, commitment
19. WinWin SpiralAnchor Points
• Life Cycle Objective(LCO)
– What should the system accomplish?
• Life Cycle Architecture(LCA)
– What is the structure of the system?
• Initial Operational Capability(IOC)
– The first released version
21. Key Elements of IOC Milestone
• Software preparation
– Including both operational and support software with
appropriate commentary and documentation
– data preparation or conversion
– the necessary licenses and rights
• Site preparation
– including facilities, equipment, supplies and vendor
support
• User, Operator and Maintenance preparation
– including selection
– team building
– training
22. Win Win Spiral - Case Study
• Extending USC Integrated Library System to access
multimedia
– Flexibility and Discipline let the projects teams adapt to
challenges while staying on schedule
– Use of risk management helped team focus on CSF for their
projects
– One cycle for each milestone
– Communication and trust between stakeholders, shared vision
– Don’t finish negotiations before prototyping
– Client acceptance
23. Another Extreme
CleanRoom Methodologies
• From Hardware Cleanrooms
• An incremental process that encourages continuous improvement;
• Technical reviews that prevent defects and significantly reduce
costs
• Design and coding practices that make it easy to adapt as
requirements change
•
•
•
Testing techniques that focus on
measuring quality;
Solution-oriented teams that encourage
cooperation, reduce the dependence on
"gurus," and promote flexibility
Documentation structures that reveal
the big picture and help team members
maintain intellectual control.
24. Clean Room Continued
•
REAL Peer Review Mathematical proof of correctness
(Challenges associated with it?)
• Functional Specifications as Box Diagrams (State, Black, Clear)
25. Yet Another Extreme: Hacking
• Hacking:
– Code ‘n Fix
– More Common than you thought
• Makes Sense for:
–
–
–
–
Low-Risk, Small Project
We know exactly what we want (not “Wicked”)
Use once, then throw away
Bugs can be tolerated/fixed
• Problem:
– “Why not just re-use Hack X here with change Y …”
– Hack Code is hard to maintain, but appealing from a
management perspective.
• Case Study:
– I’m guessing … just about every project you ever did as an
undergraduate.
26. Summary
Summary
• Waterfall
– good for budgeting, but doesn’t analyze risk or have a
good way to manage errors found later in the process.
• Iterative
– Models attempt to solve this by coding “as far as
possible”, gathering feedback, and coding again..
– Prototyping “Plan to throw one away”, then re-build it
“right.”
– Incremental (“Staged”) Delivery Builds the software
by a series of waterfalls
27. Summary
• Spiral:
– Addresses Risk at every stage & let the
stakeholders determine the outcome.
• Win/Win
– Seeks ways to provide customer feedback through
anchor points, manages risk for management, and
provides win conditions for developers.
• Cleanroom / Hacking
– Are alternative models that work for large projects
that must work right the first time, and small
projects with little risk.
28. Resources
• Generally Interesting Theories for REAL-WORLD Development:
• Wicked Problems/State of Coding:
– http://www.unidata.ucar.edu/staff/caron/collab/wicked.html
– http://www.chc-3.com/pub/beautifulsoftware.htm
• Mythical Man Month
– (http://www.amazon.com/exec/obidos/ASIN/0201835959/ref=bxgy_
sr_text_a/002-7413073-4868053)
• Code Complete
– (http://www.amazon.com/exec/obidos/ASIN/1556154844/ref=bxgy_
sr_text_a/002-7413073-4868053)
• Joel Spolsky on Real-World Software Development
– http://www.joelonsoftware.com
• Software Engineering, A Practitioner’s Approach
– http://www.mhhe.com/engcs/compsci/pressman/
29. Resources (2)
• Spiral Model
– Using the WinWin Spiral Model: A case study, Boehm Barry, July
1998, Computer
• Spiral Development workshop
– www.sei.cmu.edu/cbs/spiral2000/february2000/BoehmSR.html
• Anchoring the Software Process, Boehm Barry
– http://www.csis.gvsu.edu/~ferguson/classes/cs641/papers/ASP.pdf
• Denver Airport Project
– http://www.time.com/time/magazine/archive/1994/940516/940516.tr
ansportation.html
• Cleanroom Model
– http://www.cleansoft.com/cleansoft_mgrguide.html
– http://www.sei.cmu.edu/pub/documents/96.reports/pdf/tr022.96.pdf
•
Hacking
– http://www.plethora.net/~seebs/faqs/hacker.html
30. Homework
• Objective Question
– One major difference between
the Waterfall and iterative
models is that the iterative
models address risk. How do
they do that?
• Subjective Question
– Which of these models is the
best for the Customer? The
Seller? Why?