News for hackers. Stuff that matters.
Re:Managing the Development of Large Software Systems (1970)... by gcandal on Tuesday January 19, 2016 @05:33AM (#10929790)
I first came into contact with this article via https://www.youtube.com/watch?v=NP9AIUT9nos, which is a pretty decent analysis on how people misinterpreted the original concept.
Re:Managing the Development of Large Software Systems (1970)... by bklaasen on Tuesday January 19, 2016 @11:54AM (#10931933)
Brian Okken of the Python Testing podcast did a nice job explaining the importance of this paper: http://pythontesting.net/podcast/waterfall/
Re:Managing the Development of Large Software Systems (1970)... by gonzo41 on Tuesday January 19, 2016 @06:38AM (#10930033)
I first came into contact with this article through this talk https://www.youtube.com/watch?v=csyL9EC0S0c

Its entertaining

Re:Managing the Development of Large Software Systems (1970)... by musha68k on Tuesday January 19, 2016 @07:05AM (#10930144)
I first came into contact with this by way of Dave Farley's sobering "The Rationale for Continuous Delivery":

https://vimeo.com/147863304

He's essentially mocking our whole field for reading the paper lazily :) "This paper was a description of what not to do."

Re:Managing the Development of Large Software Systems (1970)... by nickpsecurity on Tuesday January 19, 2016 @12:32PM (#10932248)
Probably Haskellers: always praising lazy evaluations. ;)
Re:Managing the Development of Large Software Systems (1970)... by dang on Tuesday January 19, 2016 @02:26PM (#10933232)
It was Craig Larman who did the original research on this:

http://www.craiglarman.com/wiki/downloads/misc/history-of-it...

An old HN comment about it:

https://news.ycombinator.com/item?id=990463

Re:Managing the Development of Large Software Systems (1970)... by nickpsecurity on Tuesday January 19, 2016 @04:34PM (#10934230)
That supports some of my guesses in my comment with a lot of context. Especially the government contractor part. Had anyone asked, I was going to reference Mills as an evolutionary step as well. I'll read the rest of it later.

Thanks for the paper! Getting many mental gaps filled in on our history this week. :)

Re:Managing the Development of Large Software Systems (1970)... by dang on Tuesday January 19, 2016 @08:27PM (#10935431)
I can't remember if Larman includes this in the paper, but at a talk he said that he tracked down the guy who standardized waterfall for the DoD (in Boston IIRC) and when they met for lunch, the first thing he said to Larman was "I'm so sorry".
Re:Managing the Development of Large Software Systems (1970)... by nickpsecurity on Tuesday January 19, 2016 @09:04PM (#10935582)
Well, at least he regretted the damage he did.
Re:Managing the Development of Large Software Systems (1970)... by dang on Wednesday January 20, 2016 @04:36AM (#10936917)
In retrospect it was inevitable. The patterns of thinking that we take for granted around iteration and prototyping were still too alien. You have to get it before you can do it, and the types of programmers who were inclined to get it weren't in decision-making positions.

Another great story that Larman told was that he tracked down some of the programmers on famous waterfall projects that had succeeded, and found out that what they had really done was write code first, secretly, and then write up the requirements and design docs based on what they had learned. In other words they did things in the 'wrong' order but published them in the 'right' order.

Re:Managing the Development of Large Software Systems (1970)... by nickpsecurity on Wednesday January 20, 2016 @05:22PM (#10941836)
"The patterns of thinking that we take for granted around iteration and prototyping were still too alien. You have to get it before you can do it, and the types of programmers who were inclined to get it weren't in decision-making positions."

Maybe I was too harsh on them. It does seem likely. Further, it probably came directly out of the nature of programming on expensive, shared, and often batched machines. Here's a great example of what programming looked like in the 60's (skip to 5:27):

https://vimeo.com/132192250

It wouldn't have been much better a bit after 1970 where many of the same concerns and processes would exist. I still think one has to ignore most of the Royce's paper to not pick up on iteration paradigm. But, I could easily see someone in that mentality sort of glossing over it, spotting a diagram of their current flow, giving it a name, and pushing it from there.

Finally read the paper you gave me. It was really neat to see iterative development kept getting independently invented from the 60's onward. It getting into the mainstream was an inevitability due to its inherent advantages. The majority just couldn't contain it within limited groups forever.

"and found out that what they had really done was write code first, secretly, and then write up the requirements and design docs based on what they had learned. In other words they did things in the 'wrong' order but published them in the 'right' order."

That's funny you say that: history is repeating in high-assurance field. Safety-critical design is like waterfall or spiral on steroids with specs, constraints on implementation, rigorous testing, analysis... you name it. To outsiders, it seems they're using a waterfall-like refinement strategy to build these things. Insiders trying to get Agile methods in there have countered that with an unusual supporting argument: successful projects already use an iterative process combining top-down and ground-up work that results in a linked, waterfall-like chain of deliverables. The actual work is often done differently, though, so why not allow that kind of development in the first place?

With your comment, I've heard that twice. Another quick one was Mills' people not being able to run their own code in Cleanroom. Sometimes it wasn't necessary but it has many benefits. So, of course they often ran their own code during prototyping phase to get an idea of how the final submission should be done. We'll all be better off when management lets their processes reflect the realities of development. At least it's already happening in some firms and spreading. :)