knowledge-database (beta)

Current group: comp.software-eng

When does BDUF and Waterfall methods work?

When does BDUF and Waterfall methods work?  
Gilligan
 Re: When does BDUF and Waterfall methods work?  
Alan Gauld
 Re: When does BDUF and Waterfall methods work?  
MethodMan
 Re: When does BDUF and Waterfall methods work?  
MethodMan
 Re: When does BDUF and Waterfall methods work?  
MethodMan
 Re: When does BDUF and Waterfall methods work?  
Phlip
 Re: When does BDUF and Waterfall methods work?  
Phlip
 Re: When does BDUF and Waterfall methods work?  
MethodMan
 Re: When does BDUF and Waterfall methods work?  
Phlip
 Re: When does BDUF and Waterfall methods work?  
Andrew Hardy
 Re: When does BDUF and Waterfall methods work?  
Gilligan
From:Gilligan
Subject:When does BDUF and Waterfall methods work?
Date:12 Jan 2005 08:24:34 -0800
For years we used Waterfall methodologies and built amazing systems.
These methodologies should be tools to use when needed. Are there still
reasons to use these methodologies? Are agile approaches the new super
hammer?

Here is my take. We had reasons for big design up front. The reasons
varied from technical to territorial.

Reasons for BDUF: (No particular order)
1) Build times were submitted and it could be days before it was
loaded/compiled/ran, etc.
2) Debuggers where weak and it was more efficient to avoid bugs than
look for bugs.
3) Software management was emerging as a business and manage means
control.
4) Management flexed its new found power and said it will hold
developers accountable.
5) Developement needed a contract to be used in defense. (Development
new that all requirements are not known up front but management
believed that if more activities were performed then all of the
requirements could be discovered)
6) Software businesses emerge with many departments and with all of
these departments and people the business requires efficient use of the
human resources discounting the efficient development of code. This
means keeping marketing people busy at the expense of development. This
means keeping HR people busy at the expense of development. This means
keeping managers busy buzzy around at the expense of development. (Is
this enough to get a rise out of someone?)

In my humble opinion (IMHO) I feel that the reasons I list as (1) and
(2) are the most important. If there is something expensive to do (i.e.
build time) then do activities that are less expensive.


So in todays world when is BDUF useful. Suppose you will have only one
meeting with the customer. You had better get all you can get from that
meeting. Gather requirements. Create paper prototypes and present them
to entice further requirements from the customer. Because, what you
walk away with is what you have.
Can you think of another example?

Geoff
From:Alan Gauld
Subject:Re: When does BDUF and Waterfall methods work?
Date:Wed, 12 Jan 2005 19:32:33 +0000 (UTC)
On 12 Jan 2005 08:24:34 -0800, "Gilligan"
wrote:
> For years we used Waterfall methodologies and built amazing systems.

And still do.

> Reasons for BDUF: (No particular order)
> 1) Build times were submitted and it could be days before it was
> loaded/compiled/ran, etc.

And for big systems still are. I was working on a mainframe COBOL
system as recently as 2000 that took a full weekend to build from
scratch...

> 2) Debuggers where weak and it was more efficient to avoid bugs than
> look for bugs.

It still is in any kind of complex system. If I have to look at
code to find which file a bug lives in then my design has failed.
And I can navigate through my design faster than I can my code...

> 3) Software management was emerging as a business and manage means
> control.

And for Waterfall this is crucial Waterfall always was about
project management more than actually building software. If a
project is big and spead over multiple teams, with different
contractual terms per team etc then waterfall is a manageable
way of maintaining control over the whole. Not the only way but
one that is well understood and has a proven track record.

> 4) Management flexed its new found power and said it will hold
> developers accountable.

And now lawyers are doing the same...

> So in todays world when is BDUF useful.

Where you need to communicate to a large dispersed group.
But one key thing to remember is that BDUF never(*) meant
design that was not repeated or refined, it just meant
having a first cut design available up front.

(*)OK Maybe a very long time ago a few folks tried it, but for
the last 25 years at least the experts have been saying iterate
your designs and requirements.

> Suppose you will have only one meeting with the customer.

That still leaves the problem of fixing the holes you find on
analysis, so onemeeting will never be enough. But if you only
have limited access it muight be valid.

The other situation, which only occurs rarely, is where the
requirements are very well known and not likely to change. An
example would be a protocol convertor (Could be for a new
hardware platform. Or in a new language. Or between two protocols
that have not been converted before) The protocols are well
established, the requirements clear and unambiguous and unlikely
to change. In this case designing up front is likely to pay off
and will probably consist of basically copying an existing
solution.

HTH

Alan G.
Author of the Learn to Program website
http://www.freenetpages.co.uk/hp/alan.gauld
From:MethodMan
Subject:Re: When does BDUF and Waterfall methods work?
Date:18 Jan 2005 08:32:59 -0800


Perhaps I'm misunderstanding your meaning, but what's wrong in
enforcing
the business-rules at the data layer? That's standard with most large
data based systems. The applications using the data may change, but the

business 'rules' remain the same.




The thing is that business rules do change. A rule of thumb is to put
only very rudimentary business rules on the data layer which are also
unlikely to change. Let the database do what it does best which is to
manage, move, and present data. Let other applications do what they do
best which are business processes.

That isn't to say that we shouldn't use stored procs (because we
should), just that they should not be where complicated business logic
resides.

Also, it just hit me when you said enforcing business rules in data.
If you mean constraints that is also fine. These types of rules are
very rudimental and easy to support.

Now let me give you an example just so there is no confusion. If you
wanted to get the sum of all sales across a period of time, that would
be something to put in a stored proc. You pass in a date range, and
magic happens. If you wanted to then compare sales with expenses
across the same date range, my application (let's call it
SimpleAndUselessApp V1.0) would be designed using the following
architecture:

2 stored procs. Both accept date ranges. One returns sales totals and
one returns expense totals. On the application side we would take that
raw data and do whatever business calculations were needed. Perhaps we
are getting too much data and want to get weekly summaries, then I
would change the stored procs (or add two new ones) to return weekly
averages. That is about as complex as stored procs should get.

In my possesion right now is a query (korn shell script that contains
SQL) that uses no stored procs. Just an ad-hoc query. It is 7 pages
long when printed. The goal of this query is to get a history sum,
forecast sum, causal impact value, and forecast causal impact value.
You don't need to understand what those are, just that they are values
that this query then evaluates and returns a ratio (for supply chain
stuff).

The proper way to do this would be to create 4 very small stored procs
that return those values based upon a few defined values (like date
range and item number). You would then support 4 small stored procs
with about 6 lines each and a simple piece of code on the appication
side, probably 10 lines max plus error handling. Not only would you
decrease the size of the code, but you would make it easier to
understand the business rules behind it. Now we are working towards
understanding the business as opposed to trying to understand complex
code.
You should try to avoid adding complexity to you system, in my view.
From:MethodMan
Subject:Re: When does BDUF and Waterfall methods work?
Date:17 Jan 2005 11:55:49 -0800
I agree that we should not arbitrarily discredit the efforts of our
predecessors. Many of the latest "and greatest" methodologies are
based upon past success and failures.

I don't agree with the notion that we should forget old practices
altogether, but on the other hand I think we should grow as a
profession. The jury is still out on some of the latest methodologies,
but even if you don't adopt them at worst you have been forced to think
critically about your current practices. At best you can adjust your
practices for the better and make/save your company money, plus do a
better job developing software. If people like Kent Beck are
discredited (which I highly doubt will happen) at least they have
prompted our industry to mature.
From:MethodMan
Subject:Re: When does BDUF and Waterfall methods work?
Date:17 Jan 2005 11:50:11 -0800
I am doing a thesis on selecting a methodology; although many of the
ideas in traditional development are outdated many still hold true.

A scenario I can think of where one might want to use the old
methodology (waterfall) is in the case of updating legacy systems. In
this case the business rules still hold true, have already been
designed, and there is really no use to re-invent the wheel or develop
incrementally.

***HOWEVER*** I think that we have learned from experience the value of
unit testing and refactoring. So even though you might not adopt the
PROCESSES of more agile methodologies, I would consider adopting some
of the PRACTICES like unit testing, refactoring, etc.

Aside from legacy systems and very large enterprise systems I can't
think of a reason to use the old methodologies. Even in those cases I
would at lease adopt some agile practices in order to increase quality
(or decrease the chances of introducing a defect).
From:Phlip
Subject:Re: When does BDUF and Waterfall methods work?
Date:Tue, 18 Jan 2005 04:46:57 GMT
First, a note about netiquette. Google has a splendid interface, but its
"Reply" system is inspiring people to leave out the quoted-to text. This
makes posts hard to read.

Fix it by hitting Preview, then Edit again. For whatever reason, Google only
_then_ pushes in the reply text.

/Then/ (>sigh<), don't top post, and trim the quotes back!!

MethodMan wrote:

> A scenario I can think of where one might want to use the old
> methodology (waterfall) is in the case of updating legacy systems. In
> this case the business rules still hold true, have already been
> designed, and there is really no use to re-invent the wheel or develop
> incrementally.

The worst aspect of Waterfall is making decisions about requirements in
large batches, long before implementing them, collecting feedback on their
implementation, and learning. Waterfall burdens a project with the

> ***HOWEVER*** I think that we have learned from experience the value of
> unit testing and refactoring. So even though you might not adopt the
> PROCESSES of more agile methodologies, I would consider adopting some
> of the PRACTICES like unit testing, refactoring, etc.

Those form software's inner cycle. The outer cycle is delivering software of
high business value to users, and ensuring they can use it. Replacing a
legacy system is not excused from this feedback. You should deliver the new
system's highest value features as early as possible, get them online, use
them to boost user productivity, and learn from them before committing to
decisions about the next batch of features.

> Aside from legacy systems and very large enterprise systems I can't
> think of a reason to use the old methodologies. Even in those cases I
> would at lease adopt some agile practices in order to increase quality
> (or decrease the chances of introducing a defect).

It's the very large enterprise systems where "big requirements up front" was
causing the most problems. Read /Agile & Iterative Development: A Manager's
Guide/ for a summary of study after study regarding this effect.

--
Phlip
http://industrialxp.org/community/bin/view/Main/TestFirstUserInterfaces
From:Phlip
Subject:Re: When does BDUF and Waterfall methods work?
Date:Tue, 18 Jan 2005 04:49:43 GMT
Phlip wrote:

> The worst aspect of Waterfall is making decisions about requirements in
> large batches, long before implementing them, collecting feedback on their
> implementation, and learning. Waterfall burdens a project with

decisions made with the least information possible.

> --
> Phlip
> http://industrialxp.org/community/bin/view/Main/TestFirstUserInterfaces
From:MethodMan
Subject:Re: When does BDUF and Waterfall methods work?
Date:18 Jan 2005 04:35:13 -0800
<<
It's the very large enterprise systems where "big requirements up
front" was
causing the most problems. Read /Agile & Iterative Development: A
Manager's
Guide/ for a summary of study after study regarding this effect.
>>

I have a book called Agile Software Development In The Large that
addresses some of your issues. I agree that the large systems are most
challenging, but I am not sure that XP addresses how to balance
development in large teams or organizations. They would benefit the
most if we could make agile work well in that environment. I work at
an organization with similar challenges because of its size.

I think a factor to also consider is culture. Where I work there is a
"mainframe" culture where batch scripts and large stored proceedures (I
mean pages and pages) are the norm. Although there is of course a
place for batch scripts (bulk data movement) the company I work for
puts alot of the business rules in the data layer. This creates a
problem in support, extensability, and simply tracking down the source
of a problem. This "old-school" mentality doesn't realize the value of
newer technologies.

Not sure how that relates to methodology, except that if large
organizations won't adopt newer technologies I doubt they will adopt
newer technologies. And I am willing to bet that these are the
companies who will sink rather than swim. In fairness my company is
coming around, but there is still a cultural "war". I value the
mainframe, but I see it as a workhorse not business engine.

-MethodMan
From:Phlip
Subject:Re: When does BDUF and Waterfall methods work?
Date:Tue, 18 Jan 2005 14:59:15 GMT
MethodMan wrote:

> <<
> It's the very large enterprise systems where "big requirements up
> front" was
> causing the most problems. Read /Agile & Iterative Development: A
> Manager's
> Guide/ for a summary of study after study regarding this effect.
> >>
>
> I have a book called Agile Software Development In The Large that
> addresses some of your issues. I agree that the large systems are most
> challenging, but I am not sure that XP addresses how to balance
> development in large teams or organizations. They would benefit the
> most if we could make agile work well in that environment. I work at
> an organization with similar challenges because of its size.

A> read the latest XP book by Kent Beck.

B> I'm not sure, but I suspect there are iterative processes other
than XP. The goal of the game is frequent deliveries of high
business value.

> I think a factor to also consider is culture. Where I work there is a
> "mainframe" culture where batch scripts and large stored proceedures (I
> mean pages and pages) are the norm. Although there is of course a
> place for batch scripts (bulk data movement) the company I work for
> puts alot of the business rules in the data layer. This creates a
> problem in support, extensability, and simply tracking down the source
> of a problem. This "old-school" mentality doesn't realize the value of
> newer technologies.
>
> Not sure how that relates to methodology, except that if large
> organizations won't adopt newer technologies I doubt they will adopt
> newer technologies. And I am willing to bet that these are the
> companies who will sink rather than swim. In fairness my company is
> coming around, but there is still a cultural "war". I value the
> mainframe, but I see it as a workhorse not business engine.

It sounds like the folks with the keys to the mainframe are holding the
business process hostage, to maintain their domain. "If you want to change
the business rules, you must come thru us."

One wonders what their turnaround on change requests is. I would suspect
those big scripts are very, very hard to change.

Here's a little parable: I know a shop with scores of programmers, and with
a small "Information Technology" department. The latter use an online
request system, so you can write a ticket for anything you need, such as
"give my workstation a network alias", or "the bulb in my lamp went out".
The IT department triages those requests and finishes them one by one. And
the developers generally use code-and-fix.

So guess which department has a turnaround time orders of magnitude faster
than the other?

--
Phlip
http://industrialxp.org/community/bin/view/Main/TestFirstUserInterfaces
From:Andrew Hardy
Subject:Re: When does BDUF and Waterfall methods work?
Date:Tue, 18 Jan 2005 15:35:37 +0000
MethodMan wrote:


> place for batch scripts (bulk data movement) the company I work for
> puts alot of the business rules in the data layer. This creates a
> problem in support, extensability, and simply tracking down the source
> of a problem. This "old-school" mentality doesn't realize the value of
> newer technologies.

Perhaps I'm misunderstanding your meaning, but what's wrong in enforcing
the business-rules at the data layer? That's standard with most large
data based systems. The applications using the data may change, but the
business 'rules' remain the same.
From:Gilligan
Subject:Re: When does BDUF and Waterfall methods work?
Date:12 Jan 2005 11:50:19 -0800
Wow. In 2000 the Mainframe Cobol system took a full weekend to build. I
have heard of other large systems, it seems like the airline
reservation system takes several days to build as well.

I started this discussion because I am afraid that we will "run" to the
latest craze (XP or Scrum or whatever) and forget the lessons learned!
I feel that way to often we think of people and their actions in the
past as being unsophisticated. That is not the case. The Greek
Philosophers are an example. The Roman Senate and government is an
example. The reasons for this BDUF were addressing problems and
concerns. Those problems and concerns will resurface from time to time.
Let's not forget the lessons of the past just because we want to be
zealous about our company adopting a new way of development.

Here is a snippet from a book about the past:

"I know a textile company that wove fine English woolens. Its 200
employees worked in a machine-filled factory set in what might be
called an exurban industrial park. The chief executive was definitely
performance-oriented, starting with his own: he arrived early, left
late, and made all of the important decisions in between. The factory
was subdivided into specialized areas of production, each with its
workers. Each boss, in turn, had a group of foremen to watch the
workers. Accountants and salespeople were on the mezzanine above the
shop floor and reported to their respective department heads.
Everything was strictly hierarchical and pyramidal.

As I described this company to an international telecommunications
convention... I could see people in the audience becoming more and more
puzzled. What was the point? They seemed to be wondering. It was just
an ordinary business. There didn't seem to be anything distinctive
about it.

Except that this textile company existed in 1633. And the moral of the
story: our advances in technology have far outstripped our advances in
mentality."

My point is this, the people in 1633 where not unsophisticated. They
were addressing real problems and the results of their solutions are
very similar to the solutions we come up with today.
Thanks for you comments.

Geoff
   

Copyright © 2006 knowledge-database   -   All rights reserved