Xref: utzoo comp.lang.misc:7492 comp.object:3220 Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!samsung!umich!vela!m.cs.uiuc.edu!zweig From: zweig@cs.uiuc.edu (Johnny Zweig) Newsgroups: comp.lang.misc,comp.object Subject: Re: Software "Engineers" Message-ID: <1991Apr18.022314.16980@m.cs.uiuc.edu> Date: 18 Apr 91 02:23:14 GMT References: <3844@ssc-bee.ssc-vax.UUCP> <3056@cirrusl.UUCP> Sender: news@m.cs.uiuc.edu (News Database (admin-Mike Schwager)) Reply-To: zweig@cs.uiuc.edu Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL Lines: 41 Nntp-Posting-Host: cassius.cs.uiuc.edu When they build buildings (an operation widely regarded to be better understood and practiced than writing software) there are two kinds of people involved. "Architects" design how the thing should look, what the overall geometry of the thing ought to be given its intended uses, and so forth. "Engineers" take these plans and apply analyses (most of which, contrary to popular belief, are not anywhere near as "scientific" as f=ma; it is often rules of thumb like "I need x inches of reinforced conrete to hold up y tons of building" which are derived from experience) to make sure the thing won't fall down. It has long seemed to me that the problem with the term "software engineering" is that it is often (totally incorrectly) used to describe writing programs. A software system is a great big (gigantic, in terms of complexity and what can go wrong, when compared to a measly skyscraper with most of its floors like the other ones, etc.) thing that needs engineering, architecture, marketing (for some pieces of software), psychology (this is a pet peeve of mine: there are a lot of rightly-named "brain-damaged" pieces of software that don't interact with human brains well -- this includes UNIX utilities with horrid user interfaces even horridder than most UNIX utilities, and most of the setup and configuration tools I can think of like PrintMonitor on the Mac) and all sorts of other things to make it work. There are parts that need the trained eye of the artist, others that need to be solid and correct and checked out by an engineer properly equipped to make the analysis and design/implementation decisions necessary to keep the thing from being poor. I think programmers and software engineers and software quality control experts and managers are all different beasts. They each need to know how the others work (in some companies, they find it helpful to rotate people through various positions so they gain the requisite experience to understand each other's work) and be able to guide it toward the goal of coming up with good software. Just because people misuse the term in confusing ways, and because none of them have more than about fifty years of experience to go by as the basis for their engineering expertise, is no reason to say that there is no such thing as a Software Engineer. There aren't Teleportation Engineers yet, because there aren't teleporters. Software is a new thing (and no I won't listen to you if you say that software was invented with the Jacquard Loom; I am talking about nontrivially large software systems). It will be awhile before software engineering is on the same footing as mechanical engineering. But it will happen. It has to. -Johnny Soft