ICS 121: Process Models

Overview

Why review process models?

Some Standard Process Models

Build-and-fix
Just jump in and build it. Then fix, fix, fix, fix, fix...
PROs: Very simple. Some immediate results.
CONs: It looks like it should almost be ready, but it never is. Customer trust is lost when expectations are not managed.
Waterfall
Do everything carefully once: requirements, design, implementation, integration, testing, and deployment.
PROs: If you do things right the first time, you don't waste time on rework. Very easy to measure progress.
CONs: It is very hard to guess right on the first try. Easy estimate of progress can be misleading. Big cost at start with no revenue until the end. There is a lot of time for the customer or industry to change before final delivery.
Iterative
Do requirements first, break them into increments. Develop, integrate, and test each functional increment.
PROs: Reliably working releases fairly early. Partial revenue stream fairly early.
CONs: Still somewhat of a long process before first release. Still some risk of paying a lot to satisfy the wrong requirements.
Rapid prototyping / Operational prototyping
Quickly build a prototype and show it to customers to validate and refine requirements. Either throw away the prototype and start the real system, or gradually evolve the prototype into a fully operational system.
PROs: Much earlier and more reliable requirements validation. Can work great when a previous system serves as the prototype.
CONs: Replacing or evolving the prototype is a lot of rework. Customers may mistakenly believe that the real system is done. Doesn't specifically help shorten the time-to-market of the actual product.
Spiral
Iteratively specify and develop the system, but on each iteration: identify the biggest risks and use small prototypes to address those risks specifically.
PROs: Should work pretty well. Risk-driven approach helps prevent project failure when requirements are fixed, although it does not do much to optimize productivity.
CONs: Does not say how to assess or weigh risks against each other or against limited resources. Does not really take into account multiple departments working in parallel.
Synch-and-Stabilize
Like spiral, but start with an assumption of fixed time and resources for each iteration. Also, have different departments working in parallel, even if they are an iteration ahead of others. And, plan buffer time time to deal with unforeseen problems. See Microsoft Secrets.
PROs: Manages cost and risk better than spiral when requirements for each release are negotiable. Always have an opportunity to adjust release schedule to compete with other vendors.
CONs: Not better than spiral for mission-critical systems with fixed requirements. Parallel use of employees within a company, and helps react to competition, but does not address how to work with partner companies.
Collaborative development / Global software development
Use any iterative-type of process model, but involve vendors, partners, contractors/outsourcers, integrators, and key customers more directly in the development process.
PROs: Further shortens time-to-market by parallelizing activity across organizational boundaries. Allows more freedom in resource choice. Allows more rapid staffing changes. Can allow work-at-home and other life-style improvements.
CONs: Even more communications challenges. Security challenges. Requires effective collaboration and management without face-to-face meetings.

How to Evaluate Processes

What Processes do People Really Use?

RUP

XP and Agile methods

Open source

Product families

Concurrent releases

sample use case templateexample test plan templateProject plan template