logo       

RE: Waterfall and Dr. Winston Royce: msg#00030

programming.scrum.general

Subject: RE: Waterfall and Dr. Winston Royce

Ken,

 

Although I agree that Winston Royce’s paper doesn’t describe an Agile process of today, I think it is not such a bad paper if you take into consideration the following:

 

1.       In figure 7, Royce proposes an early ‘simulation’ done by a small skilled team, to prove the concept.  Thus he says that a complete iteration through, testing and usage, is the most appropriate form of feedback.  He notes that going only one level up is not adequate.

 

2.       I certainly disagree with Royce on the usefulness of the extensive documentation he recommends.  But note – you can substitute tests for most of Royce’s documentation, and if you do this, the paper is not so bad.  Royce didn’t have access to the testing capability we do today, but if he did, I’ll bet most of his documentation would be changed tests in a 2003 paper.

 

3.       At least Royce admits that everything besides analysis and coding is waste. How many people have been insulted when I called all that other stuff waste!  Now I can quote Royce at them and have someone with real credibility back me up.

 

I have a suggestion that comes from product development.  In the 1980’s, product development in the US was decidedly sequential.  Nobody had a clue how to do it any other way.  You’ve got to excuse the software development writers of the time for their sequential bias – it was everywhere (in this country anyway).

 

In the late 1980’s, Kim Clark studied the product development practices of automakers world-wide.  The results are in his book “Product Development Performance” (1991) and Womack’s book “The Machine that Changed the World,” (1990). They noted that Japanese product development practices saved 1/3 in development time and 1/2 the development effort, and resulted in better products – consistently, across the industry.  They called Japanese practices concurrent development.  Most US automobile companies have moved from sequential to concurrent product development, as have many other companies.

 

Clark points out that the fundamental difference between sequential and concurrent development is the information flow between people.  It is high bandwidth, bi-directional, and concurrent (ie, information gets transferred as soon as design starts, not when its done).  The feedback provided by this approach is enormous, and accounts for the large, consistent improvement in performance.

 

I vote for a redefinition of terms:  Waterfall becomes sequential.  Agile becomes concurrent. 

 

Sequential is a true description of what is considered traditional software development, and is not a pejorative.  Concurrent captures the essential difference of Agile, especially since it requires broad communication and feedback.  (I know you said the heart of agile is creativity, but who’s to say that a sequential process has no creativity?)

 

Mary Poppendieck

www.poppendieck.com

952-934-7998

 

 

   From: "Ken Schwaber <ken.schwaber@xxxxxxxxxxx>" <ken.schwaber@xxxxxxxxxxx>

Subject: Waterfall and Dr. Winston Royce

 

At recent conferences, especially OOPSLA, I and others in the agile

community were taken to task for not learning from history.

Specifically, we were castigated for creating a them/us divide

between prior delopment processes and agile processes. We were

advised that we could only have done this division through ignorance,

since the previous efforts contained many of the elements and,

perhaps, even the essence of agility.

 

At OOPSLA, we defined the essence of agility as the ability to be

creative, to determine the right thing to do and then do it. Other

aspects, such as iterations, increments, self-organization,

emergence, collaboration were important supports, but without the

creativity, agile

loses its heart.

 

So, when I was directed to the seminal papers on waterfall, I was

quite hopeful to learn from my mistakes. After all, I had

implemented numerous waterfall methodologies, including SADM, SSDM,

SDM, Navigator, ForeFront, Method/1, and Summit. And none of them

were agile or had the attributes of agile. But, I was advised that

these were improper implementations of the paper that Dr. Winston

Royce published in 1970, which included such agile mechanisms as

iterations and complete freedom to move up and down within the

waterfall.

 

So I read the paper, "Managing The Development of Large Software

Systems" which is available in the Session 9 ISCE ACM archives. Dr.

Royce wrote the paper based on his 9 years of experience in

spacecraft planning, command and post-flight analysis systems. His

first comment was that "analysis and coding" are the essential steps

to an development effort "which involve genuinely creative work which

directly contributes to the usefulness of the final product." He then

goes on to undercut this by saying "Many additional development steps

are required, none contribute as directly to the final product as

analysis and coding, and all drive up the development costs."

 

Dr. Royce then goes on to describe a very extensive waterfall model

for development. Iteration is allowed, but only "iteration with the

preceding and succeeding steps (phases) but rarely with more remote

steps in the sequence. The virtue of all of this is that as the

design proceeds the change process is scope DOWN to manageable

limits."

 

Documentation - Dr. Royce, "My own view is quite a lot...the first

rule of managing software development is ruthless enforcement of

documentation requirements ... Management of software is simply

impossible without a very high degree of documentation." Dr. Royce

indicates that a 1000 page spec document is appropriate for a $5m

project, mostly because "a verbal record is too intangible."

 

Dr Royce's paper brings forth many sound concepts, such as get a

formal structure, clear delineration of types of work, and roles.

However, his paper is the mother of all waterfalls and the mother of

all of the things which agile is intended to remedy. Great for the

time, an important step forward, but not appropriate for most

applications that I know about at this time.

 

Ken

 

 

 


To Post a message, send it to:   scrumdevelopment@xxxxxxxxxxx
To Unsubscribe, send a blank message to: scrumdevelopment-unsubscribe@xxxxxxxxxxx


Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise