Newsgroups: comp.software-eng Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!casbah.acns.nwu.edu!andersen!tsarver From: tsarver@andersen.uucp (Tom Sarver) Subject: Re: Art vs. Engineering Message-ID: <1991May16.231300.13345@casbah.acns.nwu.edu> Summary: Look it up in IEEE Software, Nov. 1990 Keywords: Engineering, Art, science, software Sender: tsarver Nntp-Posting-Host: 192.42.140.1 Organization: Andersen Consulting References: <1991May13.181826.18832@hellgate.utah.edu> <1336@grapevine.EBay.Sun.COM> Date: Thu, 16 May 1991 23:13:00 GMT Lines: 60 Hey guys, This thread is getting a little tiresome. Everyone is simply reacting based on their own experience. Like good scientists that we are, let's try to find some good references on the subject. Below I offer two references which deal directly with the debate, and I attempt to summarize them here. The conclusion of this posting is that software engineering is still pre-paradigm as evidenced by the lack of a generally agreed upon way of looking at software, AND the weakness of the supporting science, computer science. HOWEVER, software is such a gosh-dern useful thing, people are willing to shell out big bucks for sub-otpimal solutions. My first suggested reference is Thomas Kuhn's _The Structure of Scientific Revolutions_. This excellent book describes the life-cycle of a scientific discipline. The second reference is an article by Mary Shaw of Carnegie Mellon University, "Propsects for an Engineering Discipline of Software." This article examines a definition of engineering and relates it to software development and deployment. This article, BTW, received IEEE's award for best article of 1990. In _...Scientific Revolutions_, Kuhn describes a period called "pre- paradigm in which participants are attempting to model the results of emperical studies (formal and informal) into a paradigm. This paradigm enables them to discuss findings in a common arena of terms. The discipline matures when the paradigm is found to account for a large percentage of phenomena. The discipline then enters an "engineering" phase in which people use the results of the discipline to advance someone's external goals (society's, an evil genius', etc.) Mary Shaw implies, and I agree with her, that "software engineering" is in the pre-paradigm stage. Mary Shaw's article, "...Engineering Discipline of Software," Explains how a discipline develops from a craft, to production, and finally a professional engineering discipline. After showing the phases of software development (prog. any-which-way, prog-in-the-small, prog-in- the-large), she explains how inadequate computer science is to the way that software is currently developed. The conclusion is that we are in the "production" phase of the discipline. There are successful and unsuccessful examples of software development. But the science is not mature enough to move from requirements to code with unerring steps. Everyone who does it is drawing on knowledge, rules of thumb, experience, and intuition to pull it off. Whoever does software engineering is a craftsman with different freedoms and constraints. No one can determine unequivocally that a piece of software is "right" or "wrong." I'd like to see folks' opinions of these references and their applicability. Try to imagine what software engineering would be like if it were truly engineering. --Tom Sarver tsarver@andersen.com -- /----------------------------------->>*<<-------------------------------------+ | ____ | | Tom Sarver: tsarver@andersen.com | Only Amiga makes it possible! / / / | | "A real computer has a linear address space. NO 386's!!" / / / |