Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!ucsd!hub.ucsb.edu!dschub!neptune!cdk From: cdk@neptune.dsc.com (Colin Kelley) Newsgroups: comp.software-eng Subject: Re: Development vs Engineering Message-ID: <1624@dschub.dsc.com> Date: 16 Oct 90 19:56:25 GMT References: <5682@stpstn.UUCP> Sender: news@dschub.dsc.com Lines: 41 In article <5682@stpstn.UUCP> cox@stpstn.UUCP (Brad Cox) writes: >This is where we depart from engineering... >i.e. that programmers feel competent to reinvent >our raw materials from first principles. I see two problems which have kept software development from becoming an engineering endevour: - Software is built on hardware. And the hardware has been changing at a phenomenal rate. Forth and assembly language were interesting when we only had 4K RAM; now that we can get 8M pretty cheap, we don't need to optimize for memory usage very much. This has lead to shifts in the popular languages and development environments. (In turn, hardware is built on physics, which hasn't changed that much since the invention of the semiconductor transistor. The advent of optical computing might be the first major hardware shake-up in a while.) - Software is where you throw all the concepts which haven't been fleshed-out yet! I'm not the only one who has wished that software development were as easy as putting together TTL chip building blocks. But if the needs are well-understood enough (and unlikely to change every week for the next year) we _would_ put the software into hardware. The problem is that software can be changed on a minute's notice, so it encourages techniques and designs which depend on this... [An interesting related question, though: how can you get the software interfaces generic enough that you really can plug modules together, ala TTL?] I do have to say that I am constantly amazed what an immature "science" software development really is. I look forward to the day when I don't have battle for complete requirements definition, rigorous unit testing, deferred optimization, etc. at every new company I work for. When even these basic principles aren't agreed upon, there's no hope for software development to become an engineering discipline. -Colin Kelley, Digital Sound Corporation cdk%neptune%dschub@hub.ucsb.edu ...!pyramid!ucsbcsl!dschub!neptune!cdk (805) 569-0154 x 247