home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.software-eng
- Path: sparky!uunet!munnari.oz.au!manuel!sserve!ccadfa.cc.adfa.oz.au!ghm
- From: ghm@ccadfa.cc.adfa.oz.au (Geoff Miller)
- Subject: Re: What is Software Engineering
- Message-ID: <1992Aug17.013339.27319@sserve.cc.adfa.oz.au>
- Sender: news@sserve.cc.adfa.oz.au
- Organization: Australian Defence Force Academy, Canberra, Australia
- References: <adams.713466914@fanaraaken.Stanford.EDU> <1992Aug11.230629.6592@ennews.eas.asu.edu> <1992Aug12.065800.14202@sserve.cc.adfa.oz.au> <Bsz991.Knr@cmptrc.lonestar.org>
- Date: Mon, 17 Aug 1992 01:33:39 GMT
- Lines: 55
-
- musa@cmptrc.lonestar.org (Jeff Musa) writes:
-
- >Maintenace and development are very distinct. Maintenance is the effort
- >spent enhancing a product to meet the needs of customers and fixing bugs in
- >an already released product. These included data corruption, run-time errors
- >implementing new controls, etc... Development (the development that the
- >figures are based on) is the act of creating a new product to then be put
- >into the maintenance phase. Classic software engineering stipulates a life
- >cycle of software that reflects a development phase, maintenance, and
- >demise.
-
- And classical geography taught that the Earth was flat.
-
- I would argue with your definitions - to me, maintenance involves
- current functionality, development involves new functionality. Often a
- given piece of work will involve both. Certainly, if you consider what
- I call "development" as "perfective maintenance" (I've forgotten who
- posted that, but thanks) then yes, it's "maintenance", but it's a
- different sort of maintenance from the "bug-fix" type.
-
- >Those that create hack programs, force maintenance programmers
- >to write hack fixes and these (one on top of another) cause more time to
- >be spent figuring out and rewritting code just to fix or enhance.
-
- In my environment those who create the systems can expect to maintain
- and develop them, usually working directly with the users. Self-interest
- is a powerful incentive to do it right.
-
- >An engineered approach is more likely to be delivered on time, meet the
- >customers needs, be more easily maintainable/enhanceable, and very probably
- >more robust due to the extensive write-ups and prototyping required before
- >starting a truly engineered software project.
-
- And some projects are so well and thoroughly "engineered" that they are
- obsolete before they are delivered; perhaps the best example here in
- Australia was the Public Service's "Mandata" system. I'm talking
- about custom information systems here, not off-the-shelf products or
- even large transaction-oriented systems, both of which present different
- problems. In my experience the most important part of prototyping is
- to get the users working with the system, hence the need to deliver a
- core system which in turn provides them with some benefit. As they use
- it, they provide the feedback to drive the development, and (again, in
- my experience) this often opens up lines of development that were not
- originally foreseen.
-
- This, to my mind, brings up the major difference between software
- engineering and the sort of engineering that results in bridges, cars
- or TVs - that we are designing a product which will be developed
- while it is in use, whereas in other forms of engineering it is the
- replacement product which is being developed.
-
- Geoff Miller (g-miller@adfa.oz.au)
- Computer Centre, Australian Defence Force Academy
-
-
-