A Real Waterfall Project
Glen Alleman MSSM
Vetern, Applying Systems Engineering Principles, Processes & Practices to Increase the Probability of Program Success for Complex Systems in Aerospace & Defense, Enterprise IT, and Process and Safety Industries
There has been discussion on the Agile PM forums and other places about the inappropriate use of "waterfall" in software development projects. While waterfall is likely not the best approach for the types of software development encountered in many organizations - "discovery design" type projects - the topic of "waterfall" itself is confusing.
The paper?Launch Vehicle Design Process: Characterization, Technical Integration, and Lessons Learns, NASA/TP-2001-210992, is a nice overview of how a "staged" incremental development process - aka "waterfall" can be used for large complex systems development programs. See Figures 4., pp 8 for the "notional" view of a waterfall schedule on a large program. Similar complexities can be found in ERP or enterprise services projects.
Terms like successive refinement, systems of systems, vertical and horizontal integration, design structure matrices can be found in the same document as Waterfall.
These concepts and more set the stage for a structured, staged, and linear deployment process the contains small incremental and iterative delivery processes.
Senior Scientist, Senior Software Safety Engineer, Senior Software Engineer, Chemist
1 年Having spent two decades as a software safety engineer I know that safety must start with system requirements which must then be supported throughout all architecture, design, implementation and verification activities. Safety cannot successfully be bolted onto a system as an afterthought. System safety impacts all aspects of system development, storage, delivery, maintenance and disposal. Success in implementing system safety requires planning and organization, not simple discovery.
DevOps & Agile Engineering Senior Leader
1 年I think they are three main aspects associated with waterfall that are each viewed as anti-agile: 1. Command-and-Control (as you said) but its a "double whammy" a. 'Command' as in formal authority, dis-empowered b. 'Control' not just as in 'controlling', but as in distrust-by-default, and a (presumed) intentional adversarial relationship with this both higher-up in tbe hierarchy, but also further 'downstream' 2. (Lifecycle) Phases - giving the (sometimes false) impression of non-holistic, non-iterative development at both the macro *and* micro-level. 3. Handoffs (especially end-of-phase handoffs), which are presumed to be NOT cross-functional (and therefore DYSfunctional) Put those all together and you have a continuing cascade of colliding co-conspirators in a resounding cacaphony of calamitous casualty often known as "death [march] by a thousand papercuts" This way of 'herding cats' results in a thousand 'hurting cuts!' ??
Making work better since 2005
1 年Interesting. For me, the concept implicit in the term "waterfall" is not command-and-control; it is define-once-and-execute. The assumption that is implicit is that the conditions will remain stable long enough to deliver. The explicit principle is that of stages in a linear progression. The fundamental characteristic that gives it its name is that there is no going back once say design is done. This is unavoidable for large objects. It will always be the challenge for building say a bridge. You only ever get to execute once. We are stuck with a waterfall It is more avoidable if we rethink how we build an object to break it down into smaller repeated pieces: floors of a skyscraper, lengths of highway, spans of elevated rail, multiple small power stations...