5 ms·
For the MIT alums out there, I remember a 6.170 exam that had the question: "When is it appropriate to use the waterfall model of development?" The answer was
by leelin 13y ago
For the MIT alums out there, I remember a 6.170 exam that had the question: "When is it appropriate to use the waterfall model of development?"
The answer was any time you are developing software for the government! The professor specifically mentioned it in lecture once, so that alone was enough for full credit on the question (other reasonable answers were fine too).
Later I TA'ed the class twice and made sure to eliminate these pure lecture-attendance-check questions.
- JanneVee 13y agoOne case I've heard is when you don't have any changing requirements and the domain is well known. E.g. engine control software.
- derleth 13y agoIf the requirements don't change and the domain really is well-known, why are you writing new software? Why isn't there pre-existing software you can reuse?
- peterjancelis 13y agoNot in my backyard syndrome.
- cfinke 13y agoYou mean Not Invented Here.
- deleted 13y ago[deleted]
- Proleps 13y agoBecause it doesn't exist yet.
- mcpherrinm 13y agoBecause you can save a quarter cent per unit by changing microcontroller vendors, but you have to use a new programming language for the new one? Because you are involved in a lawsuit with the contractor that produced your previous version and using it would possibly be an admission it met requirements, even if your in-house developers had to completely rewrite it to make it safe? Because new safety regulations mean you have to use a FIPS approved compiler and testing procedure? Because it's a niche product and the only people in the world who know the problem domain work for you?
- JanneVee 13y agoIf you are designing a new car engine there isn't always of the shelf software already designed and tested. There are instances like the Ariane 5 maiden flight[1] where Ariane 4 software was reused. [1] http://www.di.unito.it/~damiani/ariane5rep.html http://www.di.unito.it/~damiani/ariane5rep.html
- hackula1 13y agoThe government will often request an RFP that basically entails doing the entire project so that the vendor can do the 5 minute demonstration to show that they are capable of completing the project. This greatly inflates prices, since the stakes for the vendors are so ridiculously high.
- mbesto 13y agoInteresting fact - the original design of "waterfall" isn't what we perceive as "waterfall" today: http://leadinganswers.typepad.com/leading_answers/files/original_waterfall_paper_winston_royce.pdf http://leadinganswers.typepad.com/leading_answers/files/orig... My theory - agile/iterative development rarely gets sold because we continue to believe we aren't susceptible to planning fallacy.
- svachalek 13y agoWhat do you perceive as waterfall? That's exactly the way we learned it in school...
- bpyne 13y agoMuch of our industry believes Waterfall means a single-pass development process. Dr. Royce explicitly said to do it twice. (It was a military officer who later took the process and made it into a single pass.) If you learned it as a two-pass process, then you learned it correctly.
- zb 13y agoThis is simply historically incorrect. Waterfall means a single pass by definition. Royce described the pre-existing state of the art - the single-pass model (Waterfall) - and suggested a modification to a 2-pass model. (This can be seen as a precursor to Boehm's n-pass Spiral model.) To suggest that the single-pass model was invented later as a corruption of Royce's paper is nonsense. Virtually all software was developed this way both before and after the paper. What is odd is that the earliest and most commonly cited reference to the Waterfall methodology is a paper that explicitly says that it doesn't work. Let this be a lesson on not burying the lede.
- bpyne 13y agoIn the version of the paper linked earlier in the forum, I take the following to mean two passes: build a model and then use lessons learned to build the final product. But it's a matter of interpretation and semantics. My own interpretation is contradicted further down in my comment by someone from that era (see the Larman paper linked). C'est la vie, I'm sticking with my interpretation. I think we can agree that Royce did not mean our modern "Agile" approach. "If the computer program in question is being developed for the first time, arrange matters so that the version finally delivered to the customer for operational deployment is actually the second version insofar as critical design/operations areas are concerned." At least 2 methodologies existed before Royce's paper as described in this paper: Waterfall and "iterative and incremental".(http://www.craiglarman.com/wiki/downloads/misc/history-of-iterative-larman-and-basili-ieee-computer.pdf http://www.craiglarman.com/wiki/downloads/misc/history-of-it...) Note that, in the section referencing DoD-Std-2167, the author of the DoD standard does state explicitly that he understood Waterfall to be one-pass. Certainly he implicitly promoted it as such.