Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!mips!pacbell.com!tandem!netcomsv!jls From: jls@netcom.COM (Jim Showalter) Newsgroups: comp.software-eng Subject: Re: Modifiability Keywords: Maintainability, Modifiability Message-ID: <1991Jun7.201323.11984@netcom.COM> Date: 7 Jun 91 20:13:23 GMT References: <2192@Terra.cc.brunel.ac.uk> <1991Jun5.201807.13286@netcom.COM> <2195@Terra.cc.brunel.ac.uk> <1991Jun6.230049.19029@netcom.COM> <1991Jun7.185211.20475@m.cs.uiuc.edu> Distribution: comp.software-eng Organization: Netcom - Online Communication Services UNIX System {408 241-9760 guest} Lines: 20 >One of the things that I tend to emphasize is that it is impossible to >invent a general-purpose widget unless you know how to build special-purpose >ones. Humans develop abstractions by generalizing from concrete examples. >Applied to software, this means that unless you have build some nonreusable >software in a particular application domain, you don't stand much chance of >building reusable software. That is why iteration is so important. People >tend to build something concrete that works, and then gradually generalize >it as it becomes obvious that it is a special case of a more general idea. Yes, you have to build one to throw away before you can figure out how to achieve reuse. Reuse is acquired through experience and trial-and-error. People don't like this idea, because it means they have to PLAN to fail for a while, but the upside is that most companies already have sufficient domain expertise (they've been doing the same kind of thing for years) that the number of iterations necessary is fairly small. -- **************** JIM SHOWALTER, jls@netcom.com, (408) 243-0630 **************** *Proven solutions to software problems. Consulting and training on all aspects* *of software development. Management/process/methodology. Architecture/design/* *reuse. Quality/productivity. Risk reduction. EFFECTIVE OO usage. Ada/C++. *