wbralick@afit-ab.arpa (William A. Bralick) (03/28/89)
It seems to me that architecture (as in buildings, not computer systems :-)
should provide a useful set of lessons for software engineers. The parallels
between software engineering and architecture (especially for a large, unique
building) are striking -- both are labor intensive, lengthy, expensive,
prone to schedule slippages and cost overruns, require not only a sound
design but also good management practices, both can benefit from standardized
parts, etc. Has any formal attempt been made to draw on (this pun
is intentionally left blank) architecture as a model for solving some
of the problems in software engineering?
Regards,
--
Will Bralick : wbralick@afit-ab.arpa | If we desire to defeat the enemy,
Air Force Institute of Technology, | we must proportion our efforts to
| his powers of resistance.
with disclaimer; use disclaimer; | - Carl von Clauswitz
jerbil@cit-vax.Caltech.Edu (Stainless Steel Gerbil [Joe Beckenbach]) (03/29/89)
In article <1014@afit-ab.arpa> wbralick@blackbird.afit.af.mil (William A. Bralick) writes: >It seems to me that architecture (as in buildings, not computer systems :-) >should provide a useful set of lessons for software engineers. The parallels >between software engineering and architecture (especially for a large, unique >building) are striking -- both are labor intensive, lengthy, expensive, >prone to schedule slippages and cost overruns, require not only a sound >design but also good management practices, both can benefit from standardized >parts, etc. Has any formal attempt been made to draw on (this pun >is intentionally left blank) architecture as a model for solving some >of the problems in software engineering? I've written a few things to this effect, including drawing the seemingly unpopular view that software engineering is too young a profession to really be considered engineering yet. However, should I decide to do grad school, I guess I'd end up wanting to explore this analogy. And of course I'm glad my father isn't on the network, otherwise he'd be very cheerfully and playfully encouraging me to do so-- especially since he's working in one of Jacksonville's (FL) bigger architectural firms. I'm not sure a formal effort has been made. Give me a year or two to do some academia-programming, and I may end up seriously considering such. As long as I have colleagues and lots of chance to really work this stuff out.... -- Vegetarian Movie of the Week: (farce) | Joe Beckenbach Attack of the | jerbil@csvax.caltech.edu Killer Tomatoes | Caltech 256-80, Pasadena CA 91125
garison@mirror.UUCP (Gary Piatt) (03/29/89)
In article <1014@afit-ab.arpa> William A. Bralick writes:
=>It seems to me that architecture (as in buildings, not computer systems :-)
=>should provide a useful set of lessons for software engineers. The parallels
=>[...] are striking [...] Has any formal attempt been made to draw [up]on
=>[...] architecture as a model for solving some of the problems in software
=>engineering?
The problem with this is that (for the most part) the job of the architect
is done when construction of the building begins. There's still some org-
anizational things to do -- make sure the builders keep to schedule, make
sure the proper materials are used, etc -- but the bulk of the work an
architect does is in the design. Software engineers, on the other hand,
spend significantly less time in design, and more time in programming and
redesign. The optimal experience is that the SE (or SEs) will design the
software and then carry out that design. What actually happens is that
the design will be completed and the SE will begin to carry it out, but
Marketing will change the schedule. The SE will try to conform to the new
schedule, and the customer will ask to add some feature or another. The
SE will begin to add the new feature, and QA will discover a design flaw
that requires the SE to throw out a month's worth of work. And it cont-
inues in this manner until several weeks after the product is released.
These same things happen to the architect, but the design is entirely on
paper, and can be changed (more or less) easily. The implementation does
not start until the design is done. The major problems of software eng-
ineering stem from the fact that the design is not frozen until *after*
the product is released.
-Garison-
Bear in mind that this explanation is based solely on my own experience.
Sandeep Mehta@bebop (Sandeep Mehta) (03/29/89)
In article <1014@afit-ab.arpa>, wbralick@afit-ab (William A. Bralick) writes: >It seems to me that architecture (as in buildings, not computer systems :-) >should provide a useful set of lessons for software engineers. In a lighter vein, surely you have seen the following fortune cookie on most BSD UNIX systems: If builders built buildings like programmers write programs, then the first woodpecker that came along would destroy civilization ! To a large extent this may still be true :-). _sandeep p.s. flames >& /dev/null -- Sandeep Mehta ...to be or not to bop ? uunet!philabs!bebop!sxm sxm@philabs.philips.com
hollombe@ttidca.TTI.COM (The Polymath) (03/30/89)
I've heard the creation of a software product likened to the building of a house. Depending on what changes you want and when you decide you want them, it gets progressively more expensive. In the planning stage, equivalent to architect's renderings, changes are cheap and easy. In the specification stage, equivalent to blueprints, changes are only slightly more expensive. Once construction starts, changes can get very expensive. Even moving a window is non-trivial. Changing the design of the roof can mean throwing out much completed work and starting over. You don't even want to think about changing the wiring after the walls are sealed. Then there's the kind of change that amounts to: "We love the house you've built, but could you move it another ten feet back from the curb?" -- The Polymath (aka: Jerry Hollombe, hollombe@ttidca.tti.com) Illegitimati Nil Citicorp(+)TTI Carborundum 3100 Ocean Park Blvd. (213) 452-9191, x2483 Santa Monica, CA 90405 {csun|philabs|psivax}!ttidca!hollombe
rockmore@zodiac.ADS.COM (A. Joseph Rockmore) (04/06/89)
In article <24727@mirror.UUCP> garison@mirror.UUCP (Gary Piatt) writes: Path: zodiac!ames!oliveb!pyramid!pyrnj!mirror!garison From: garison@mirror.UUCP (Gary Piatt) Newsgroups: comp.software-eng Date: 28 Mar 89 18:28:53 GMT References: <1014@afit-ab.arpa> Reply-To: garison@prism.TMC.COM (Gary Piatt) Organization: (Dis-) Lines: 31 In article <1014@afit-ab.arpa> William A. Bralick writes: =>It seems to me that architecture (as in buildings, not computer systems :-) =>should provide a useful set of lessons for software engineers. The parallels =>[...] are striking [...] Has any formal attempt been made to draw [up]on =>[...] architecture as a model for solving some of the problems in software =>engineering? The problem with this is that (for the most part) the job of the architect is done when construction of the building begins. There's still some org- anizational things to do -- make sure the builders keep to schedule, make sure the proper materials are used, etc -- but the bulk of the work an architect does is in the design. this is not true, in general. as the son-in-law of a practicing architect and the son of a general contractor, any complex building (again there is the distinction between a relatively stable design for a small project versus the evolving design for a large, complex one) undergoes many design changes as it is being built. my father-in-law has spend many a month as architect assigned to the construction of a building, doing the appropriate re-design and detailing design as things come up in the construction. why does this happen? in my opinion it is due to two factors: a lack of complete design and lack of analysis of that design. the first means that, given all the drawings and specifications that an architect normally does, there is still a lot left unsaid, and thus up to the builder. the second means that there are parts of the design that are incompatible in some way with the rest, but this is not obvious to the architect because he can't formally analyze the design. both of these analogize to software. (and, of course, the owner keeps changing his mind during construction...) [stuff deleted] These same things happen to the architect, but the design is entirely on paper, and can be changed (more or less) easily. it is much easier to change the design, but much harder to change the implementation in building than in software. The implementation does not start until the design is done. not true, as stated above. The major problems of software eng- ineering stem from the fact that the design is not frozen until *after* the product is released. if then. -Garison- ...joe