In this chapter, three major categories of methodologies were presented: sequential, cyclical, and WaterSluice. The sequential and cyclical methodologies, informally known as the waterfall and spiral methodologies, are generic in design and have been simplified to emphasize a key aspect. In a sequential methodology, the four phases of analysis, design, implementation, and testing follow each other sequentially. In a cyclical methodology, the four phases of analysis, design, implementation, and testing are cycled with each cycle generating an incremental contribution to the final system. The WaterSluice is a hybrid borrowing the steady progress of the sequential methodology along with the iterative increments of the cyclical methodology and adds priority and governors to control change.
A sequential methodology is successful when the complexity of the system is low and requirements are static. In a fast-moving technology, a sequential methodology builds products that, by the time they are delivered, may be obsolete. A sequential methodology puts so much emphasis on planning, that in a fast-moving target arena, it can not respond fast enough to change.
A cyclical methodology is an incremental improvement on a sequential methodology, allowing for incremental feedback between cycles. A cyclical methodology has no governors to control oscillations from one cycle to another cycle. Without governors, each cycle may generates more work for the next cycle.
The WaterSluice methodology introduced priority, goal-focus, and change-control management. A system moves through the states of proof-of-principle, prototype, alpha and beta release, and product. In a later chapter it will be shown that a software engineering methodology that is goal focused, manages conflicts, and differentiates between different priorities is best suited for dynamic non-monotonic environments.