From: Rick Bradley Date: 2002-05-12T14:56:32+09:00 Subject: Re: OT:is software eng an art? Just a couple quick notes then I'll go huddle up with some more stories. * Dossy (dossy@panoptic.com) [020511 23:04]: > Software Engineering is a science. System Design is an art. > > SE is about writing a blueprint, or a recipe, for building a > system. There is no art in it -- it is cut and dry. How > the blueprint or recipe gets executed or implemented, that's > art. I disagree -- I believe you give proponents of SE methodologies far too much credit. To me SE has (also) always been the least engineering of the "engineering"s. If SE is merely the application of process rules, the filling out of forms, and the computation of rigid metrics then I would agree that SE is not an art (nor a science, actually) for most reasonable definitions of either of those terms. SE is fundamentally about /managing/ (in the Peter Drucker sense of the word) the human process of developing software. A large part of software engineering as its practiced by many proponents (or at least the so-called "heavy methodology" components) is attempting to design a system prior to working on the system. That design, however, cannot be performed in the rigorous manner that (e.g.) bridge design can be accomplished. Fortunately some of the better lightweight methodologies also apply SE in designing but don't insist on mountains of soon-obsolete documentation nor building the design prior to any implementation. When a civil engineer completes a bridge design it is possible to determine to a degree of accuracy incomparable to engineered software: (1) cost of construction, (2) detailed construction schedule, including time constraints, and (3) resources necessary to construct. Additionally, from the design alone much can be analytically determined about the specific and gross properties of the bridge (including obeyance of codes and various safety factors). It is the rare (if existing) software engineering design which provides this utility after the time- and resource-consuming design phase. Software Engineering, to the degree that it includes design and construction of software is very much art and science. If it includes neither of these components to a great degree then it has little to do with the process of building software. ;-) > I can tell you "a table has a flat horizontal surface and > three or more supporting legs underneath." That's not art. > However, should you take my engineered schematic and go > and produce a table, unique or not, you produced a work > of art. If the schematic is specified suitably to be fed into a machine in a tool-and-die shop which can (effectively) create the table on its own is that act of machine creation still the creation of art? Rick -- http://www.roundeye.net MUPRN: 687 (81 F) | out of their system random email haiku | so they can bring the hammer | to the madness scene.