dalamb@umiacs.umd.edu (David Lamb) (02/22/91)
In "The Mythical Man-Month", Fred Brooks (1975) described the "second system effect": on one's second try at a particular kind of system, one tends to add all kinds of bells, whistles, kazoos, etc., vastly overcomplicating the software. When I first read it, this seemed like it had to be true, but I haven't seen anyone else discussing it. Does anyone else have any published references discussing such an effect? Do y'all believe it's still a problem these days? -- David Alex Lamb internet: dalamb@umiacs.umd.edu
pat@megatest.UUCP (Patrick Powers) (02/22/91)
In twelve years in the biz I haven't observed a second system effect. CM Hoare though is a believer. See his Turing award lecture, printed in CACM 1981 or thereabouts, in which he relates the tale of his second system, recalls the development of the Algol standard, and castigates Ada(Tm). -- --
jerry@TALOS.UUCP (Jerry Gitomer) (02/23/91)
dalamb@umiacs.umd.edu (David Lamb) writes:
:In "The Mythical Man-Month", Fred Brooks (1975) described the "second system
:effect": on one's second try at a particular kind of system, one tends
:to add all kinds of bells, whistles, kazoos, etc., vastly
:overcomplicating the software. When I first read it, this seemed like
:it had to be true, but I haven't seen anyone else discussing it. Does
:anyone else have any published references discussing such an effect?
:Do y'all believe it's still a problem these days?
I haven't seen anything about this, but if the commercial
software packages being offered in the PC-DOS world are typical
the problem still exists. My evidence is the ever increasing
size of each subsequent release of the typical package.
Another indication of the continued existence of the problem is
the evolution in products, such as computer languages, which are
subject to standards. I don't know about you, but I can't think
of any example in which a revised standard has resulted in a
significant reduction in language size or complexity. (To the
best of my recollection every standard revision has resulted in
the language getting bigger and more complex.
--
Jerry Gitomer at National Political Resources Inc, Alexandria, VA USA
I am apolitical, have no resources, and speak only for myself.
Ma Bell (703)683-9090 (UUCP: ...{uupsi,vrdxhq}!pbs!npri6!jerry
nobody@blia.sharebase.com (Nobody at all) (02/23/91)
> From: dalamb@umiacs.umd.edu (David Lamb) > > In "The Mythical Man-Month", Fred Brooks (1975) described the "second system > effect": on one's second try at a particular kind of system, one tends > to add all kinds of bells, whistles, kazoos, etc., vastly > overcomplicating the software. When I first read it, this seemed like > it had to be true, but I haven't seen anyone else discussing it. Does > anyone else have any published references discussing such an effect? > Do y'all believe it's still a problem these days? > > -- This strikes me as asking if anyone has publish their latest failings. I believe quite strongly that there are problems of this kind, but the magnitude is not likely to be discussed openly. The work you cite is most interesting and ought to be a required reading of all CS students. Moreover, required reading by all development managers. The major software/hardware vendor in the U.S. took the time to have a conference in which the sole topic was "The Mythical Man-Month". Upon returning to work the next day, it was as if we never attended ... the same mistakes continued to be made over, and over, and .... I can't relate the number of times that manpower has been dumped upon a project due to scheduling problems. Yet Brooks properly identified "Adding manpower to a late software project makes it later".[pg 25] We read, 'understand', and then so often go on as if we never heard of the subject under discussion (in the general sense). I've said before that the difference between wisdom and knowledge is the ability to USE what one has learned. By not being able to respond to scheduling issues in productive and reasonable ways, software managers often demonstrate lack of wisdom. "Pessimistic" you say? "The difference between a pessimist and an optimist is 24 years experience" Mr Brooks has contributed more understanding of the process of developing software than then industry is capable of assimilating ... even some 16 years later. ---- J.O.Beard jeffb@sharebase.com
kend@data.UUCP (Ken Dickey) (02/23/91)
dalamb@umiacs.umd.edu (David Lamb) writes: >In "The Mythical Man-Month", Fred Brooks (1975) described the "second system >effect" ... >Do y'all believe it's still a problem these days? >David Alex Lamb internet: dalamb@umiacs.umd.edu There is a variant that is also true: arithmetic increases in computing power [by engineering] leading to geometric increases in expectation [by marketing]. A fundamental problem is lack of recognition of differences in scale and what that means for system structuring and complexity. As an analogy, many people have built bridges over streams by throwing a log over them. In the fancy case, use 2 logs and nail some boards between them. To span a ravine, one might use a steel-ibeam/truss design. To get cars and trucks across San Francisco Bay, one might use a suspension design, again with different materials. Many people today are still trying to take high-level assembler/ device-driver technology and scale it up for major software systems and complaining that "it is very difficult to get a log big enough to cross the bay." Unlike engineering professions, many (most?) software professionals are not trained to judge project scale or evaluate software implementation technologies. [In the "real world" I still see many people who could have been bottled in 1975. They are totally unaware that there has been technical progress in software development technology during the intervening years (or for that matter of the advanced techniques available at that time).] So my answers are (10 years in industry) [1] Yes, the "second system" effect is real, and [2] software designers should be aware of "scale shifts" as well. -Ken Dickey kend@data.uucp
rcd@ico.isc.com (Dick Dunn) (02/23/91)
pat@megatest.UUCP (Patrick Powers) writes: > In twelve years in the biz I haven't observed a second system effect. I think there must be some serious differences in understanding what is meant by "second system effect" - because in watching "the biz" for a longer time, I've seen very few pieces of commercial software in the past decade that *haven't* exhibited the second-system effect. You can see it in most commercial UNIX systems, the X Window System, emacs, virtually all PC apps that have been around for a while. -- Dick Dunn rcd@ico.isc.com -or- ico!rcd Boulder, CO (303)449-2870 ...But is it art?
dalamb@avi.umiacs.umd.edu (David Lamb) (02/23/91)
Earlier, I wrote: >In "The Mythical Man-Month", Fred Brooks (1975) described the "second system >effect" >... >Do y'all believe it's still a problem these days? In an effort to be brief, I think I stated my question unclearly. Lots of people responded by saying "yes, most programs on the market grow chaotically, with lots of bells and whistles". Now, I agree that's a real problem; the Hacker's Dictionary called it Creeping Featurism (CF). But I think the Second System Effect (SSE) may be different; Brooks was talking about designing a new (second) system, not evolving an existing one. The difference is that in SSE one designs an overly complex beast from the beginning, rather than having the beast acquire a kitchen sink as it evolves via CF. So, here's my question again (well, several questions). 1. Is s.s.e still a problem? or do people a. no longer build "second systems", just evolve existing ones b. if they build a "second system", they now avoid the "effect" 2. Regardless of whether SSE is a problem, is it (conceptually) completely dominated by the ill effects of CF? That is, should we ignore it as relatively unimportant, since addressing CF is a. more important b. would also indirectly address SSE as well. I don't have any good idea at the moment of how to combat CF, either, other than appeals to "discipline" and "conceptual integrity" (the latter another term I learned from Brooks). Back when I was one of 3 people in charge of evolving an electronic mail agent, I can recall having several disputes wherein we refused to add new features because they "didn't fit". But we had a captive market and effective "creative control", so we could afford to be arrogant. -- David Alex Lamb internet: dalamb@umiacs.umd.edu
lfd@cbnewsm.att.com (Lee Derbenwick) (02/24/91)
In article <15369@megatest.UUCP>, pat@megatest.UUCP (Patrick Powers) writes: > In twelve years in the biz I haven't observed a second system effect. Perhaps the publicity it got in _The Mythical Man-Month_ actually _taught_ us something? And I think most professional software developers and managers have at least been exposed to the book. Also, most of today's software managers have been software developers long enough to see all (well, many of :-) the things that can go wrong with a project, and they are a little more hesitant to promise the sun, the moon, and the stars. These days, we are more likely to see creeping featurism: where each new release adds just a bit more, until we end up with a full-fledged indigestible fruitcake. Where I have seen something resembling second-system effect is when a hardware manager with no software background (and experience with only relatively small hardware projects) is given a small combined hardwware/software project. It's their first real dealing with software, so they tend to be _very_ careful, and they often succeed quite well. But based on their prior success, they're no longer so careful: they assume that everything that went well on the small project will automatically do so on the large one, that they can prevent those things that did go wrong from happening again, that effort will scale up linearly with project size, and that schedules will scale less than linearly, since they have more people doing the work. So, in bidding the project, they throw in every possible bell and whistle. They then run it using "What's-the-earliest-date-you-can't-prove-it- won't-be-done-by?" [thank you Tom DeMarco, for that phrase] planning, since that's the only way to get a schedule that matches their intuitive expectations. And they are honestly surprised when things don't work out. -- Speaking strictly for myself, -- Lee Derbenwick, AT&T Bell Laboratories, Warren, NJ -- lfd@cbnewsm.ATT.COM or <wherever>!att!cbnewsm!lfd
jls@yoda.Rational.COM (Jim Showalter) (02/24/91)
Amen! Software architecture, rather than nitty little issues of this or that addressing scheme, provide the macro-scale benefits needed to construct very large systems. And yet, next to nothing is done in this field, at least in comparison to the amount of effort expended on relatively low-payoff pursuits like adding multiple inheritance to some OO language or another. Why? Personally, I think it's because academics don't BUILD large systems: a large system in most universities is 50K, and that doesn't count. -- ***** DISCLAIMER: The opinions expressed herein are my own. Duh. Like you'd ever be able to find a company (or, for that matter, very many people) with opinions like mine. -- "When I want your opinion, I'll beat it out of you."
jls@yoda.Rational.COM (Jim Showalter) (02/24/91)
I think you either get creeping featurism, in which massive amounts of new functionality are added in an unplanned and incremental manner, much like evolution (and about as successfully, if you think about lower back pain, the veriform appendix, and other goofs!) OR you get a wish list of deferred features, all of which are designed into the second system. Which works better? Beats me--I've seen both approaches fail miserably. -- ***** DISCLAIMER: The opinions expressed herein are my own. Duh. Like you'd ever be able to find a company (or, for that matter, very many people) with opinions like mine. -- "When I want your opinion, I'll beat it out of you."
alan@tivoli.UUCP (Alan R. Weiss) (02/26/91)
In article <30512@mimsy.umd.edu> dalamb@umiacs.umd.edu (David Lamb) writes: >In "The Mythical Man-Month", Fred Brooks (1975) described the "second system >effect": on one's second try at a particular kind of system, one tends >to add all kinds of bells, whistles, kazoos, etc., vastly >overcomplicating the software. When I first read it, this seemed like >it had to be true, but I haven't seen anyone else discussing it. Does >anyone else have any published references discussing such an effect? >Do y'all believe it's still a problem these days? > >-- > >David Alex Lamb internet: dalamb@umiacs.umd.edu I have read The Project Manager's Bible (also known as The Mythical Man Month), and yea verily I may speak of heresy, but what the hell, here goes: In my experience the FIRST system is an enormous compendium of features and functions that, sadly, must be whittled down to meer epic/heroic proportions to meet the first release's aggressive schedule (owing no doubt to the supplier of capital's desires to see some payback). My OTHER experience is that often the first system MUST be thrown away, but often is not because: a. It seems to work OK b. Those damn schedules again! Lets ship *something* c. We can fix it all up later. Unfortunately, we often find that fixing it later is a nightmare, because that "little demo" was hacked and kludged in a big hurry. It should be obliterated, but instead the belief is that "we can fix the bugs." No specifications, no design, pure energy. Like an atomic bomb is pure destructive energy awaiting its destiny, these little bombs wait for the future, where they explode into support and maintenance horrors. Graphic, aren't I? :-) _______________________________________________________________________ Alan R. Weiss TIVOLI Systems, Inc. E-mail: alan@tivoli.com 6034 West Courtyard Drive, E-mail: alan@whitney.tivoli.com Suite 210 Voice : (512) 794-9070 Austin, Texas USA 78730 Fax : (512) 794-0623 _______________________________________________________________________
rcd@ico.isc.com (Dick Dunn) (02/26/91)
dalamb@avi.umiacs.umd.edu (David Lamb) writes: > Earlier, I wrote: > >Do y'all believe [second system effect is] still a problem these days? > In an effort to be brief, I think I stated my question unclearly. ...[comparing SSE to feeping creaturism] > ...But I think the Second System Effect (SSE) may be > different; Brooks was talking about designing a new (second) system, > not evolving an existing one... Lamb's points are good ones--in a sense there really is a difference between CF and SSE. But an alternative view is that creeping featurism is just an "implementation technique" used to produce the second-system effect (the final result, anyway:-) incrementally! But CF can be more dangerous because it's seductive--"Well, we just need this one little feature now." Each step you take seems to make sense...so, unlike SSE where the whole thing can collapse in the design phase and (fortunately!) prevent you from ever shipping a product, CF allows you to proceed through to creating a software Frankenstein's monster which is not only un-main- tainable but unkillable. Beyond that, the "failure" is very diffuse, in the sense that the activity which produces the monster is spread out over a long time and a lot of features. You can't point to "the one that made it fail." -- Dick Dunn rcd@ico.isc.com -or- ico!rcd Boulder, CO (303)449-2870 ...But is it art?
rcd@ico.isc.com (Dick Dunn) (02/27/91)
alan@tivoli.UUCP (Alan R. Weiss) writes: ... | I have read The Project Manager's Bible (also known as The Mythical | Man Month), and yea verily I may speak of heresy, but what the hell,... | In my experience the FIRST system is an enormous compendium of features | and functions that, sadly, must be whittled down to meer epic/heroic | proportions to meet the first release's aggressive schedule ... | My OTHER experience is that often the first system MUST be thrown | away, but often is not because: There are various reasons for throwing away the first system...no argu- ment there. But why would that be heresy against what is written in _The_Mythical_Man_Month_? Go back and have a look at Chapter 11, the title of which is: Plan to Throw One Away -- Dick Dunn rcd@ico.isc.com -or- ico!rcd Boulder, CO (303)449-2870 ...But is it art?
dzoey@terminus.umd.edu (Joe Herman) (02/27/91)
In article <1991Feb26.211223.4180@ico.isc.com> rcd@ico.isc.com (Dick Dunn) writes: >alan@tivoli.UUCP (Alan R. Weiss) writes: >>... >> In my experience the FIRST system is an enormous compendium of features >> and functions that, sadly, must be whittled down to meer epic/heroic >> proportions to meet the first release's aggressive schedule ... Another reason for the enormous compendium of features is that in a new first system, it's hard to know which features will be popular with people. An example of this was not expecting heavy use of electronic mail when ARPAnet was first built. This leads to an attempt to put in the kitchen sink, which is tough to do from scratch. >There are various reasons for throwing away the first system...no argu- >ment there. But why would that be heresy against what is written in >_The_Mythical_Man_Month_? Go back and have a look at Chapter 11, the title >of which is: > Plan to Throw One Away I'm a little unclear of how rapid prototyping interacts with the above principle. Is rapid prototyping an acknowledgement of this principle? Does rapid prototyping lead to creeping featurism? Joe Herman U. of Maryland -- "Everything is wonderful until you know something about it."
alan@tivoli.UUCP (Alan R. Weiss) (02/28/91)
In article <8115@umd5.umd.edu> dzoey@terminus.umd.edu (Joe Herman) writes: >In article <1991Feb26.211223.4180@ico.isc.com> rcd@ico.isc.com (Dick Dunn) writes: >>alan@tivoli.UUCP (Alan R. Weiss) writes: >>>... >>> In my experience the FIRST system is an enormous compendium of features >>> and functions that, sadly, must be whittled down to meer epic/heroic >>> proportions to meet the first release's aggressive schedule ... > >Another reason for the enormous compendium of features is that in a >new first system, it's hard to know which features will be popular >with people. An example of this was not expecting heavy use of >electronic mail when ARPAnet was first built. This leads to an >attempt to put in the kitchen sink, which is tough to do from scratch. ..... Yea, but this is usually caused by developers (and more accurately "Marketing") not *ASKING* their customers what they want. In Tom Peters' terms, "the damn customer doesn't do what (he's) supposed to." Peters', of course, was making the point that American business often fails to *listen* to their customers, and get their feedback during the design stage. Does this sound familiar? _______________________________________________________________________ Alan R. Weiss TIVOLI Systems, Inc. E-mail: alan@tivoli.com 6034 West Courtyard Drive, E-mail: alan@whitney.tivoli.com Suite 210 Voice : (512) 794-9070 Austin, Texas USA 78730 Fax : (512) 794-0623 "I speak only for myself, not for TIVOLI" _______________________________________________________________________
rst@cs.hull.ac.uk (Rob Turner) (02/28/91)
Jerry Gitomer writes: >... I can't think >of any example in which a revised standard has resulted in a >significant reduction in language size or complexity. Nor can I, but something similar is Wirth's simplification of Modula2 (albeit with a few additions) into Oberon. Rob
itcp@praxis.co.uk (Tom Parke) (03/01/91)
rcd@ico.isc.com (Dick Dunn) writes: >pat@megatest.UUCP (Patrick Powers) writes: >> In twelve years in the biz I haven't observed a second system effect. >I think there must be some serious differences in understanding what is >meant by "second system effect" - because in watching "the biz" for a >longer time, I've seen very few pieces of commercial software in the past >decade that *haven't* exhibited the second-system effect. You can see it >in most commercial UNIX systems, the X Window System, emacs, virtually all >PC apps that have been around for a while. Yup, second system effect, been there, done that, got burned. (While in a previous employment I should point out.) I will now do a typical net thing, post what I think is in the book without having it to hand :-( sorry. But its that or not post. Immodesty forbids etc... As I recall the point Brooks is making is not that bells and whistles get added to software - there are good reasons for this, see his "No Silver Bullet" paper (IFIP '86, also published after that in ACM). The point is that on the first system we are conservative, and come version 2 there is a lot of pent up "goodies we couldn't get in first time round" and in the euphoria of "we've done it once we know how to do it a second time" these are added to the spec without due and proper consideration. The effect is a multitude of unforseen interactions between these new features, substantial overruns, code bloat, eventual panic. The possible visible manifestation of this is not software encrusted with features, but announced new versions of software that slip, and slip... and when it arrives it's buggy, DBase IV is a likely candidate. Tom -- Tom Parke (my opinions and spelling are strictly temporary) "UNIX - safe, when taken as directed." itcp@praxis.co.uk
bobd@zaphod.UUCP (Bob Dalgleish) (03/07/91)
In article <1991Feb26.002406.4681@ico.isc.com> rcd@ico.isc.com (Dick Dunn) writes: >dalamb@avi.umiacs.umd.edu (David Lamb) writes: >> Earlier, I wrote: >> >Do y'all believe [second system effect is] still a problem these days? >> In an effort to be brief, I think I stated my question unclearly. >...[comparing SSE to feeping creaturism] >> ...But I think the Second System Effect (SSE) may be >> different; Brooks was talking about designing a new (second) system, >> not evolving an existing one... >Lamb's points are good ones--in a sense there really is a difference >between CF and SSE. But an alternative view is that creeping featurism >is just an "implementation technique" used to produce the second-system >effect (the final result, anyway:-) incrementally! But CF can be more >dangerous because it's seductive-- > . . . Yes, it is seductive... the most expensive part of house renovations is "While we are at it, ..." However, if the features to be added are prompted by actual use of the system by the people who paid for or will pay for the system, the new features will have paid their way into the product. The Second System Effect (I have been there, I have done it) is even more seductive, because the urge to toss out the current grungy product completely and start over with a brand new one is even more seductive. The shiny "system of the future" (turn your reverb up) can excite management and marketing and programmers equally. The real art to Creeping Featurism (IMHO) is to know when to step back and repackage some of the older features and rationalize them together into either a separate package, or a separate menu, or overlay, or whatever the fascicle you use. (<---- that is not swearing, it is technical talk). EVOLUTION TO THE MAX, DUDE! -- -- * * * Remember: I before E except after DALGL * * *-- Bob Dalgleish bobd@zaphod.UUCP