nichols@ssd.kodak.com (Tim Nichols (37894)) (05/06/91)
I have been interested and occasionaly amused at the blather posted recently about whether or not software can be engineered. Certainly it _can_ be engineered; meatloaf _can_ be engineered, but it is subjected to engineering only slightly less often than software {:-)}. Engineering as a discipline refers to a rigorous process used to manage the complexity of a solution to a given problem domain. I recently built a patio beside my house. While a great deal of artistry and construction effort went into it, there was almost no engineering effort at all. The problem domain was not sufficiently complex to warrent engineering. I was able to hold the entirety of the problem and the intended solution in my brain at one time. So it is with software. Historically, software solutions were applied to problems of relatively small complexity. The common thread of successful software projects was that the entirety of the program under development was held in the brain of one or two key individuals. Therefore, these projects required very little engineering. Today we are faced with ever increasing complexity in the software systems we build. We require abstractions, models, protocols, standard components and interfaces, etc. in order to manage that complexity. Whether conciously or not, we are introducing and defining the discipline of engineering software as we go. It's a matter of survival. Art and Engineering are the endpoints of a continuum. The question is not whether building software is an art or an engineering discipline. It is ultimately both. The problem is that at present the engineering half of the software continuum is vaporware. However, it is through the work of the engineer "wanna-be"s that the continuum will be defined. Once the continuum is defined, will all of the software artisans be taken out and shot? Of course not. There is plenty of room for all the traditional role players we find in other disciplines today. Software Scientists will fill the artisans role by continually pushing the envelope. They will be the technology innovators. Software Engineers will apply the state-of-the-art technology to products and processes with precision and quality. Software Technicians will be the hands-on support; the programmers. The highly skilled work horses who prototype and build the dreams and designs of the scientists and engineers. I see no reason to expect that the evolution of the discipline of software will differ markedly from the evolution of other technological disciplines. To cling to this notion of software being somehow different from its sibling fields is sophistry. It is a vanity unbecoming of professionals. And now, if you'll excuse me, I'll just step into something a little less flammable -- Tim Nichols Eastman Kodak Company nichols@ssd.kodak.com Rochester, New York "Opinions are my own, and do not reflect those of Kodak or its management"
mcgregor@hemlock.Atherton.COM (Scott McGregor) (05/07/91)
In article <1991May6.165902.2116@ssd.kodak.com>, nichols@ssd.kodak.com (Tim Nichols (37894)) writes: ...(many good comments)... > Software Scientists will fill the artisans role by continually pushing > the envelope. They will be the technology innovators. > Software Engineers will apply the state-of-the-art technology to > products and processes with precision and quality. > Software Technicians will be the hands-on support; the programmers. > The highly skilled work horses who prototype and build the dreams and > designs of the scientists and engineers. > I see no reason to expect that the evolution of the discipline of > software will differ markedly from the evolution of other technological > disciplines. To cling to this notion of software being somehow > different from its sibling fields is sophistry. It is a vanity > unbecoming of professionals. I don't know if I disagree or not, but I am not quite so certain as you that Software as a technological discipline will wind up looking more like traditional engineering. At least one other possible path seems possible. At the end of the last century, filmaking was a very technical discipline. You had to be familiar with photo chemistry, lights, optics, the motion picture cameras, and the projectors. Filmakers were largely very technical people. Today, filmaking is still a very technical discipline, various sound systems, types of lenses, camera equipment, complex film developing techniques plus special effects require as much technical know how as ever. Yet the many engineers, and technicians are not in service of Film Scientists, but rather in service of Artistic Directors. There are many kinds of software, and it may well be that different parts of it go different ways. I could easily see systems that support analytical chemistry instruments, or systems that calculate trajectories going in the direction you describe, and at the same time, I can see systems aimed at increasing the capabilities of the average office worker to remember, to coordinate with others, etc. going the filmaking direction. This is an unpremeditated thought, but the difference may have to do with processing data vs. use of information as communication. The entertainment industries, broadcast radio & TV, and print media are all dominated by the alternative model that I mentioned. The Artistic Directors aim at maximizing the effectiveness of their communications to human individuals. The Scientists aim at maximizing their effective analysis of data. I am not sure that this is right even after considering it, but I'm not sure it is wrong either. We may be experiencing something similar to the debates that occur when behavioral scientists meet with physical scientists and try to describe what "science" is. The vary nature of the topics of study encourages a discrepancy in what they perceive science to be. Scott McGregor mcgregor@atherton.com
rsd@sei.cmu.edu (Richard S D'Ippolito) (05/08/91)
Some interesting points, Tim, but I believe that you have one thing exactly backwards: In article <1991May6.165902.2116@ssd.kodak.com> Tim Nichols writes: >Software Scientists will fill the artisans role by continually pushing >the envelope. They will be the technology innovators. > >Software Engineers will apply the state-of-the-art technology to >products and processes with precision and quality. In traditional engineering disciplines, the engineers have pushed the state of the practice with both innovative technology and innovative applications. The engineers backed off only when the technology failed. It was always left to the scientists to explain (sometimes many years later) why a particular technology succeeded or failed. Consider bridges and the airplane. Current software science will not be improved without good engineering examples (successes and failures). Rich -- "Please keep in mind that the ultimate goal [of hi-fi] is the reproduction of art, and that the invocation of science, while a neat parlour trick, is often unnecessary, flawed, and unreasonable." -- name mercifully withheld... rsd@sei.cmu.edu
nichols@ssd.kodak.com (Tim Nichols (37894)) (05/09/91)
In article <35177@athertn.Atherton.COM> mcgregor@hemlock.Atherton.COM (Scott McGregor) writes: >In article <1991May6.165902.2116@ssd.kodak.com>, nichols@ssd.kodak.com >(Tim Nichols (37894)) writes: >...(many good comments)... > >> Software Scientists will fill the artisans role by continually pushing >> the envelope. They will be the technology innovators. > >> Software Engineers will apply the state-of-the-art technology to >> products and processes with precision and quality. > >> Software Technicians will be the hands-on support; the programmers. >> The highly skilled work horses who prototype and build the dreams and >> designs of the scientists and engineers. > >> I see no reason to expect that the evolution of the discipline of >> software will differ markedly from the evolution of other technological >> disciplines. To cling to this notion of software being somehow >> different from its sibling fields is sophistry. It is a vanity >> unbecoming of professionals. > >I don't know if I disagree or not, but I am not quite so certain as you that >Software as a technological discipline will wind up looking more like >traditional engineering. At least one other possible path seems possible. >At the end of the last century, filmaking was a very technical discipline. >...(stuff deleted)... >There are many kinds of software, and it may well be that different >parts of it go different ways. I could easily see systems that support >analytical chemistry instruments, or systems that calculate trajectories >going in the >direction you describe, and at the same time, I can see systems aimed at >increasing the capabilities of the average office worker to remember, to >coordinate with others, etc. going the filmaking direction. > ...(more stuff deleted)... >Scott McGregor >mcgregor@atherton.com You make a valid point, but I contend that filmmaking is the wrong analogy to apply. Films largely try to educate and/or entertain. The vast majority of software does not (excepting video games and the like). A good film should be memorable; good software should not even be noticed. (someone stated this in an earlier thread, but I can't remember who) Given that the vast bulk of software we build and use is dedicated to helping us work smarter and faster, to have it be memorable would be cumbersome. I contend that a better anaology would be the role of a building architect. A building architect is aware of the technical aspects of construction, but his design effort is focused on how people interact with the building. In a similar vein, the software architect should be focused on how people interact with the system. Once the architecural design has been completed, the technical engineers will apply their processes to insure that the building (or software system) won't fall down. The role of the software architect was missing from my original post. This person requires a unique blend of engineering, artistic, and cognitive awareness skills to design systems which interact well with people, and are still readily engineered from a system structure perspective. -- Tim Nichols Eastman Kodak Company nichols@ssd.kodak.com Rochester, New York "Opinions are my own, and do not reflect those of Kodak or its management"
rothstei@mcs.kent.edu (Michael Rothstein) (05/09/91)
In article <35177@athertn.Atherton.COM> mcgregor@hemlock.Atherton.COM (Scott McGregor) writes: >In article <1991May6.165902.2116@ssd.kodak.com>, nichols@ssd.kodak.com >(Tim Nichols (37894)) writes: >...(many good comments)... > >> Software Scientists will fill the artisans role by continually pushing >> the envelope. They will be the technology innovators. > >> Software Engineers will apply the state-of-the-art technology to >> products and processes with precision and quality. > >> Software Technicians will be the hands-on support; the programmers. >> The highly skilled work horses who prototype and build the dreams and >> designs of the scientists and engineers. > >> I see no reason to expect that the evolution of the discipline of >> software will differ markedly from the evolution of other technological >> disciplines. To cling to this notion of software being somehow >> different from its sibling fields is sophistry. It is a vanity >> unbecoming of professionals. > >I don't know if I disagree or not, but I am not quite so certain as you that >Software as a technological discipline will wind up looking more like >traditional engineering. At least one other possible path seems possible. >At the end of the last century, filmaking was a very technical discipline. >You had to be familiar with photo chemistry, lights, optics, the motion >picture cameras, and the projectors. Filmakers were largely very >technical people. >Today, filmaking is still a very technical discipline, various sound >systems, types of lenses, camera equipment, complex film developing >techniques plus special effects require as much technical know how as >ever. Yet the many engineers, and technicians are not in service of >Film Scientists, but >rather in service of Artistic Directors. > (Many excellent thoughts on the future evolution as art/craft of software development deleted to try to approach some reasonable size ;-)) Following this (and other) thread(s) in this group made me think: it may be that the simile to follow when building software is more like building buildings. Consider: a building is first designed by an ARTIST (the architect) who, though somewhat knowledgeable on the limitations of his materials, really needs an expert to help him: a civil engineer, who can figure out the stresses of the suggested materials and structures: the two specialties interact and negotiate a final design satisfactory to both. The last stage, of course, is actual implementation. To continue this thought, how would the following scenario work?: A SOFTWARE ARCHITECT would be in charge of developing the (functional) requirements and user interface of the proposed system: he would be in communication with a software designer (aka software engineer) who would correct the requirements and interface design, and would later issue the specifications (aka non-functional requirements) to complete the problem definition stage. This stage would be subject to a review session and a final (contract) signing. The remainder of the software lifecycle could continue on as before, with a design (done by the some software designer/engineer, not necesarily the same one), walkthroughs, review, etc. etc. Though I personally feel that this idea of a software architect is a necesary one, I owuld be interested in other people's reactions. Thank you for reading this far and for any responses! -- Michael Rothstein (Kent State U)| If cars want to kill themselves, (rothstei@cs.kent.edu) | that's their problem: what I can't | understand is why they keep doing it (std. disclaimer) | with people inside. (Mafalda (Quino))
rothstei@mcs.kent.edu (Michael Rothstein) (05/09/91)
In article <1991May9.124559.2924@ssd.kodak.com> nichols@ssd.kodak.com (Tim Nichols (37894)) writes: >I contend that a better anaology would be the role of a building architect. >A building architect is aware of the technical aspects of construction, but >his design effort is focused on how people interact with the building. In a >similar vein, the software architect should be focused on how people interact >with the system. Once the architecural design has been completed, the >technical engineers will apply their processes to insure that the building >(or software system) won't fall down. I had just finished editing my post when I saw this: I also tried to cancel my post but the software did not let me: at any rate this post answers my question, though I might add that some emphasis is needed on user interface design, which, IMHO, is one the most important products the software architect should develop. -- Michael Rothstein (Kent State U)| If cars want to kill themselves, (rothstei@cs.kent.edu) | that's their problem: what I can't | understand is why they keep doing it (std. disclaimer) | with people inside. (Mafalda (Quino))
nichols@ssd.kodak.com (Tim Nichols (37894)) (05/10/91)
In article <1991May9.160716.29500@mcs.kent.edu> rothstei@mcs.kent.edu (Michael Rothstein) writes: >In article <1991May9.124559.2924@ssd.kodak.com> nichols@ssd.kodak.com (Tim Nichols (37894)) writes: >>I contend that a better anaology would be the role of a building architect. >>A building architect is aware of the technical aspects of construction, but >>his design effort is focused on how people interact with the building. In a >>similar vein, the software architect should be focused on how people interact >>with the system. Once the architecural design has been completed, the >>technical engineers will apply their processes to insure that the building >>(or software system) won't fall down. > >I had just finished editing my post when I saw this: I also tried to cancel >my post but the software did not let me: at any rate this post answers my >question, though I might add that some emphasis is needed on user interface >design, which, IMHO, is one the most important products the software >architect should develop. >-- >Michael Rothstein (Kent State U)| If cars want to kill themselves, I couldn't agree more. The design emphasis is primarily on user interface from an implemenation perspective. I always emphasize the notion of "human interaction" to my students because as designers we sometimes forget that there are human beings that ultimately have to cope with all those multi-colored widgets on the screen. -- Tim Nichols Eastman Kodak Company nichols@ssd.kodak.com Rochester, New York "Opinions are my own, and do not reflect those of Kodak or its management"
chrisp@regenmeister.EBay.Sun.COM (Chris Prael) (05/10/91)
From article <25170@as0c.sei.cmu.edu>, by rsd@sei.cmu.edu (Richard S D'Ippolito): > Some interesting points, Tim, but I believe that you have one thing exactly > backwards: > In article <1991May6.165902.2116@ssd.kodak.com> Tim Nichols writes: > >Software Scientists will fill the artisans role by continually pushing > >the envelope. They will be the technology innovators. > >Software Engineers will apply the state-of-the-art technology to > >products and processes with precision and quality. > In traditional engineering disciplines, the engineers have pushed the state > of the practice with both innovative technology and innovative applications. > The engineers backed off only when the technology failed. It was always > left to the scientists to explain (sometimes many years later) why a > particular technology succeeded or failed. Consider bridges and the > airplane. > Current software science will not be improved without good engineering > examples (successes and failures). Rich makes exactly the right points, very accurately. Anyone who is willing to understand the relationship between science and engineering in any field needs to understand what he said here. The thing that originally attracted my attention is the title of this thread: Art vs. Engineering. It is, simply, wrong. Engineering IS art. Good engineering is good art and bad engineering is bad art. There is, and can be, no versus to the relationship between art and engineering. This statement becomes abundantly clear is you compare, for example, the East German Trabant to the Honda Civic. Closer to home, compare BASIC to C. C is great engineering and great art. What BASIC became on PCs is an embarrasment to our field. No engineer functions without an aesthetic sense. Some software engineers' aesthetic sense is pretty crude, others are artists on a par with Brunel (the English civil and mechanical engineer), Jano (the great Italian engineer of car engines), Chapman (the brilliant English chassis engineer), or Picasso (the famous painter). My personal view is that the current state of the visual arts has been caused by most of the potential great artists having gone into various fields of engineering instead of the visual arts for the last 100 years. Chris Prael
dlw@Atherton.COM (David Williams) (05/10/91)
In article <1991May9.124559.2924@ssd.kodak.com>, nichols@ssd.kodak.com (Tim Nichols (37894)) writes: >In article <1991May6.165902.2116@ssd.kodak.com>, nichols@ssd.kodak.com >(Tim Nichols (37894)) writes: >...(many good comments)... > Scott Mcgregor writes: In article <35177@athertn.Atherton.COM> mcgregor@hemlock.Atherton.COM (Scott McGregor) writes: >I don't know if I disagree or not, but I am not quite so certain as you that >Software as a technological discipline will wind up looking more like >traditional engineering. At least one other possible path seems possible. >At the end of the last century, filmaking was a very technical discipline. >...(stuff deleted)... >There are many kinds of software, and it may well be that different >parts of it go different ways. I could easily see systems that support >analytical chemistry instruments, or systems that calculate trajectories >going in the >direction you describe, and at the same time, I can see systems aimed at >increasing the capabilities of the average office worker to remember, to >coordinate with others, etc. going the filmaking direction. > ...(more stuff deleted)... >Scott McGregor >mcgregor@atherton.com Tim Nichols responds: >You make a valid point, but I contend that filmmaking is the wrong analogy to >apply. Films largely try to educate and/or entertain. The vast majority of >software does not (excepting video games and the like). A good film should >be memorable; good software should not even be noticed. (someone stated this I'm not sure I buy this...while you are sitting in a theatre experiencing a film if it is a good/entertaining/interesting one you are generally not thinking hey I am watching a film. The filmmaker draws you in so you feel a part of the proceedings. After you exit the theatre you will probably remember a good experience with the film--why is it not reasonable to have the same feeling on leaving your workstation after using a well designed software package? I mean other than nfs (which one becomes aware of when stale handles occur) and other kinds of OS service level software what examples of "stealth" software do you have to draw on? >Given that the vast bulk of software we build and use is dedicated to helping >us work smarter and faster, to have it be memorable would be cumbersome. Perhaps if it is memorable it is encouraging habit creation and preservation. These days it seems more like working faster is as a result of hardware performance improvements rather than software improvements. >I contend that a better anaology would be the role of a building architect. >A building architect is aware of the technical aspects of construction, but >his design effort is focused on how people interact with the building. In a >similar vein, the software architect should be focused on how people interact >with the system. Once the architecural design has been completed, the >technical engineers will apply their processes to insure that the building >(or software system) won't fall down. >The role of the software architect was missing from my original post. This >person requires a unique blend of engineering, artistic, and cognitive >awareness skills to design systems which interact well with people, and >are still readily engineered from a system structure perspective. Sounds reasonable, but I like the film analogy as well, perhaps because it might get us to improve how we interact with our user community. I mean, notice that we don't have user MANUALS and training classes for either films or video games? >-- > Tim Nichols Eastman Kodak Company > nichols@ssd.kodak.com Rochester, New York David Williams "Another one of those strange guys at Atherton Technology"
mcgregor@hemlock.Atherton.COM (Scott McGregor) (05/10/91)
In article <1991May9.124559.2924@ssd.kodak.com>, nichols@ssd.kodak.com (Tim Nichols (37894)) writes: >You make a valid point, but I contend that filmmaking is the wrong analogy to >apply. Films largely try to educate and/or entertain. The vast majority of >software does not (excepting video games and the like). Of course, not all films are art or entertainment films. As Tim notes, film is a common medium for education, and communication as well. Considerable amounts of user oriented software has these as dominant attributes as well. For example, there are structured design and structured analysis CASE tools such as from Cadre and IDE. Part of what they offer is that they are *communicating* to you information from their "experts" with the hope of *educating* you in currently recognized techniques for improved design and analysis. The software not only educates you, but helps you in the formation of presumably beneficial design habits. For user oriented software, a growing amount of the product is not merely the manipulation that the software does, but also its user manual, on line help, computer based training, off-line training, and design aspects which make it easy to learn, and (contrary to what Tim stated below) to easy to remember how to use. Additionally, in a competative commercial market, there is value in a product which is "entertaining" over a competing product with the same capability but without the endearing facade. This doesn't always mean that "entertainment" is frivolous, but some features give people a "good feeling". The macintosh user interface, including its "entertaining" as well as educational guided tour is a frequently cited example. One can also determine a general common preference for the HP widgets 3D appearance version over their 2D versions, despite the fact that they behave the same way, and have approximately the same visual recognition rates. > A good film should >be memorable; good software should not even be noticed. (someone stated this >in an earlier thread, but I can't remember who) > Given that the vast bulk of software we build and use is dedicated to helping > us work smarter and faster, to have it be memorable would be cumbersome. I believe that this is an over simplification. It is important to distinguish the use of long term memory from short term memory. People don't have much short term memory (by analogy, we only have a few registers). Thus it is very important to avoid overloading that short term memories with tasks that relate to the software, and not to the underlying task. If a software product is not memorable, you will be forced to relearn it every time you use it, and this learning (and transitory remembering of which button does which function) competes with the underlying task for short term memory, and degrades the task performance--introducing not only delay, but frequently also introducing error as well, and of course the well known "now where was I?" phenomenon (swapping). To avoid this problem, it can be claimed that good software should not be noticed. This is true, though the way it is most likely to be achieved is through the use of "long term memory", generally in the form of habits. Because people are able to handle much more long term memory, there is not the kind of interaction problems as when short term memory is being competed for. Habit formation is critical for "seemingly effortless" performance of complex tasks using complex tools. In this respect, the memorability of many software features, like a good movie, is critical to success. (There is considerable literature on this point, I particularly like Norman, Schniederman, Nelson, and Malone's papers that touch on these points. But for a short often used example, consider learning to drive an automobile. Until you build habits, driving is a very engrossing activity--it is hard to even control your speed. Once you develop the habits, it is possible to drive and do other things as well, such as carry on a conversation. There is still some interaction, and tests can show that both activities may be degraded over what can be done if doing only one. But even so, performance levels are significantly higher than during the pre-habit formation learning period. And then of course, it is fair play to re-use existing learned complex habits, such as in using the same sort of steering mechanism and accelerator pedal in a speed boat. Good software also takes advantage of these existing memorable habits). So I would conclude that given software aimed at making us work smarter and faster it is *crucial* that we learn to make it more memorable and enjoyable to use. > I contend that a better anaology would be the role of a building architect. > A building architect is aware of the technical aspects of construction, but > his design effort is focused on how people interact with the building. In a > similar vein, the software architect should be focused on how people interact > with the system. Once the architecural design has been completed, the > technical engineers will apply their processes to insure that the building > (or software system) won't fall down. > The role of the software architect was missing from my original post. This > person requires a unique blend of engineering, artistic, and cognitive > awareness skills to design systems which interact well with people, and > are still readily engineered from a system structure perspective. This is a very provocative alternative that I think deserves considerable thought. As you point out, an architect model requires a person that combines both the technical and artistic aspects in one person, and this is very different from the scientist model in the original article. It may be a better model, or it may merely be a model which is better for an additional subdomain. In my previous posting, I identified a domain where the software scientist model was perhaps more appropriate, and one where an artistic model might be more appropriate. The building architect model is interesting in that buildings are physical objects, just computers are. An architecture model might be very appropriate for a systems integrator house which is concerned with soup-to-nuts hardware + software solutions. But the filmaker model has its merits too, in that buildings, and their architectural drawings are more static, whereas film and many forms of software (including all the computer based and off line training capablities) are more concerned with dynamic ephemeral fleeting images. Perhaps for some task domains, the interactivity demanded of the software is more akin to the "quick cuts" techniques of filmmaking. If so, does this put additional artistic demands upon the designer which over task someone who must also be designing from a technical point of view> Might this be another way of saying that the software industry is really many industries, and that the dominant factor affecting organization of the development team is end market for which the software is targetted? (Johnathan Grudin's article in April 1991 Computer comes to mind). Perhaps what this really argues for is a continuum of development approaches from the pure technical dominant (scientist) driven model, through the mixed art/technical (architect) model to the pure art dominant model (filmmaker)? Scott McGregor Atherton Technology mcgregor@atherton.com
rh@smds.UUCP (Richard Harter) (05/13/91)
In article <1312@grapevine.EBay.Sun.COM>, chrisp@regenmeister.EBay.Sun.COM (Chris Prael) writes: > C is great engineering and great art. Thanks for a good laugh. C is to great engineering what doggerel is to poetry. -- Richard Harter, Software Maintenance and Development Systems, Inc. Net address: jjmhome!smds!rh Phone: 508-369-7398 US Mail: SMDS Inc., PO Box 555, Concord MA 01742 This sentence no verb. This sentence short. This signature done.
daves@hpopd.pwd.hp.com (Dave Straker) (05/13/91)
> The thing that originally attracted my attention is the title of this > thread: Art vs. Engineering. It is, simply, wrong. Engineering IS > art. Good engineering is good art and bad engineering is bad art. > There is, and can be, no versus to the relationship between art and > engineering. > > Chris Prael This is probably a matter of interpretation. I would define Art as being based in 'feelings' and Science as been based in 'rules'. If there is a key word I would use for Engineering, it would be 'pragmatic'. Do what works. This would tend to push it towards the Science end of the spectrum, although there are still elements where 'feeling' is appropriate - such as in the design of a user interface. Perhaps where confusion is caused is when feelings are based in rules, for example where an engineer does what 'feels right', and is right - it feels right because he has internalised the rules to the point where he does not or even cannot describe them. Dave Straker Pinewood Information Systems Division (PWD not PISD) [8-{) HPDESK: David Straker/HP1600/01 Unix: daves@hpopd.pwd.hp.com
kambic@iccgcc.decnet.ab.com (George X. Kambic, Allen-Bradley Inc.) (05/14/91)
In article <1991May9.155632.29277@mcs.kent.edu>, rothstei@mcs.kent.edu (Michael Rothstein) writes: > In article <35177@athertn.Atherton.COM> mcgregor@hemlock.Atherton.COM (Scott McGregor) writes: >>In article <1991May6.165902.2116@ssd.kodak.com>, nichols@ssd.kodak.com >>(Tim Nichols (37894)) writes: [...] > A SOFTWARE ARCHITECT would be in charge of developing the (functional) > requirements and user interface of the proposed system: he would be in > communication with a software designer (aka software engineer) who would > correct the requirements and interface design, and would later issue the > specifications (aka non-functional requirements) to complete the problem > definition stage. This stage would be subject to a review session and > a final (contract) signing. > The remainder of the software lifecycle could continue on as before, > with a design (done by the some software designer/engineer, not necesarily > the same one), walkthroughs, review, etc. etc. Many of these concepts fail for two reasons. In reality, a person implementing a phase of the SW development lifecycle must have a working knowledge of other phases in order to be effective. In fact one of the only ways to really learn how to engineer SW is to spend time in each phase. Humbling. Secondly, there is a neglect of the reality of feedback and changes during the life cycle. No product development is done without change being incurred. Software is no different. Feedback, interaction, and communication are skills which are as fundamental to good SW engineering as SW design methods. Don't be an expert. Be a generalist. GXKambic standard disclaimer
jls@netcom.COM (Jim Showalter) (05/14/91)
>Secondly, there >is a neglect of the reality of feedback and changes during the life cycle. No >product development is done without change being incurred. Software is no >different. Feedback, interaction, and communication are skills which are as >fundamental to good SW engineering as SW design methods. Indeed, and the sad thing is that traditional methodologies completely ignore this simple reality--the classic "waterfall" model of software development assumes what I call a "top-down omniscient" process, which would work great if we could just find some omniscient engineers. In reality, either feedback is accomodated in an ad hoc manner during development (with consequent penalties in terms of efficiency, since the process is not explicitly set up to plan for such feedback) or, as is often the case, feedback is folded in during the inappropriately named "maintenance" phase. Fortunately, more realistic and effective methodologies do exist, and they tend to be much more flexible, iterative, and oriented toward producing prototypes instead of piles of fictive "documentation". These newer approaches can even be used on projects subject to 2167A constraints, if an appropriate tailoring is chosen. -- **************** JIM SHOWALTER, jls@netcom.com, (408) 243-0630 ***************** * Proven solutions to software problems. Consulting and training in all aspects* * of software development. Management/process/methodology. Architecture/design/* * reuse. Quality/productivity. Risk reduction. EFFECTIVE OO techniques. Ada. *
dedek@meaddata.com (Mike Dedek) (05/14/91)
In article <1991May9.124559.2924@ssd.kodak.com>, nichols@ssd.kodak.com (Tim Nichols (37894)) writes: <<stuff about photography/compsci parallels deleted>> |> |> You make a valid point, but I contend that filmmaking is the wrong analogy to |> apply. Films largely try to educate and/or entertain. The vast majority of |> software does not (excepting video games and the like). A good film should |> be memorable; good software should not even be noticed. (someone stated this |> in an earlier thread, but I can't remember who) |> |> Given that the vast bulk of software we build and use is dedicated to helping |> us work smarter and faster, to have it be memorable would be cumbersome. |> |> I contend that a better anaology would be the role of a building architect. |> A building architect is aware of the technical aspects of construction, but |> his design effort is focused on how people interact with the building. In a |> similar vein, the software architect should be focused on how people interact |> with the system. Once the architecural design has been completed, the |> technical engineers will apply their processes to insure that the building |> (or software system) won't fall down. |> |> The role of the software architect was missing from my original post. This |> person requires a unique blend of engineering, artistic, and cognitive |> awareness skills to design systems which interact well with people, and |> are still readily engineered from a system structure perspective While your point is largely true, consider the science of photography for astronomy or military applications. Although many consider the end result 'art', the process of obtaining these pictures (e.g., satellite pictures of military installations in detail, night-vision, that big telescope NASA just sent up) is very scientific. I submit that compsci is similar to photography; there will be applications which are more 'scientific' and those which are more 'artistic'. The line differentiating these is blurred. The really great breakthroughs in compsci will be at least partly artistic, because they will be so radically different from the status quo that some creative effort will be necessary. I could digress for pages, but I won't. | I'm too lazy to create a .sig file, so I just type this in every | time I mail! | Opinions are solely those of the author. | Have fun!
b-davis%cai.utah.edu@cs.utah.edu (Brad Davis) (05/14/91)
Software creation is a craft, as in the great crafts of the ancient world. Even the most talented "artist" needs to study, refine, and hone his/her work and the most talented begining "artist" is still a poor software writer. On the other side, there are no hard and fast, tried and true rules that will create great software as there is in the sciences and engineering to create new entities. -- Brad Davis ..!uunet.uu.net!cs.utah.edu!cai.utah.edu!b-davis b-davis@cs.utah.edu, b-davis@cai.utah.edu One drunk driver can ruin your whole day.
lws@comm.wang.com (Lyle Seaman) (05/15/91)
dlw@Atherton.COM (David Williams) writes: >Sounds reasonable, but I like the film analogy as well, perhaps because it >might get us to improve how we interact with our user community. I mean, >notice that we don't have user MANUALS and training classes for either >films or video games? Ahh, but there ARE user manuals for video games... Have been ever since the games got tricky, instead of just faster. One of the first was for PacMan, I think. They're usually not written by the vendor. -- Lyle 508 967 2322 lws@wang.com Wang Labs, Lowell, MA, USA
jane@latcs2.lat.oz.au (Jane Philcox) (05/15/91)
In article <36650010@hpopd.pwd.hp.com> daves@hpopd.pwd.hp.com (Dave Straker) writes: >> The thing that originally attracted my attention is the title of this >> thread: Art vs. Engineering. It is, simply, wrong. Engineering IS >> art. Good engineering is good art and bad engineering is bad art. >> There is, and can be, no versus to the relationship between art and >> engineering. >> >> Chris Prael > >This is probably a matter of interpretation. I would define Art as >being based in 'feelings' and Science as been based in 'rules'. >If there is a key word I would use for Engineering, it would be >'pragmatic'. Do what works. This would tend to push it towards >the Science end of the spectrum, although there are still elements >where 'feeling' is appropriate - such as in the design of a user interface. What you're talking about, Dave, is the feelings of the person who is doing the engineering. IMHO, the feelings of the observers are more important in distinguishing what is art. I think that both artists and engineers feel similarly when they are practising their respective crafts. In art, too, there are techniques, some of which work and some of which don't (Try thinning oil paint with water! Or writing a sonnet with 17 lines. The results may be interesting, but far from what you intended.), some of which can be taught to anyone, and some of which definitely can't. There are also known techniques, which can usually be taught, for the design of art objects. So, if you can talk about software design as "engineering", then in that sense art is engineering. But the result generally depends on a combination of talent _and_ technique, and when both are of a high order, the feeling induced in the observer is "This is beautiful." But a fine car, a bridge, an aeroplane, and other products of engineering, can all be beautiful too. So in that sense engineering is art. And not all engineers can produce equally beautiful results. The results also depend on talent. >Perhaps where confusion is caused is when feelings are based in >rules, for example where an engineer does what 'feels right', and >is right - it feels right because he has internalised the rules to >the point where he does not or even cannot describe them. Artists do this too, both in design and execution of their work. In fact, many people don't realize that for almost any art form there are techniques (rules, if you like) that have to be learned, and that the "self-taught" or "natural" artist has usually spent a number of years acquiring these techniques on a cut-and-try basis. So that when s/he does what "feels right", s/he has a solid background of technique (the rules are internalised) to base the work on. Regards, Jane. -- -------------------------------------------------------------------- Six lawyers up to their necks in sand is defined as not enough sand. --------------------------------------------------------------------
wdr@wang.com (William Ricker) (05/15/91)
lws@comm.wang.com (Lyle Seaman) writes: >dlw@Atherton.COM (David Williams) writes: >>notice that we don't have user MANUALS and training classes for either >>films or video games? >Ahh, but there ARE user manuals for video games... Have been ever >since the games got tricky, instead of just faster. One of the >first was for PacMan, I think. They're usually not written by the vendor. VidGames also have printed and online documenation supplied by the vendor. Online: The sequences (random or canned) through which the machine cycles while waiting for the victim, er, customer to insert quarter(s) Printed: Some small amount of lettering on the facade (typically an iconic glossary of the items which give special points/abilities, and if the different phases have different goals, listing those) These combine to provide a minimal familiarization with the method of operation before you first grab hold of the manipulator (be it a joy-stick, trackball, or uzi-clad lightpen). Of course, the videogame operators (and thus the manufacturers) benefit from the ground-school training provided by print documen- tation & demo loop being just barely inadequate -- so that the customer must feed endless quarters to get on-the-job-training before making the assault on the top-scorers' list. Some intermittent positive reinforcement is necessary, of course -- just as with slot machines -- to keep the player's attention. (Standard Psych 101/110 here!) If we were marketing the game as a software product for non-entertainment use, this level of documentation would be found inadequate by our users. -- /s/ Bill Ricker wdr@wang.wang.com "The Freedom of the Press belongs to those who own one." *** Warning: This account is not authorized to express opinions. ***
chrisp@regenmeister.EBay.Sun.COM (Chris Prael) (05/16/91)
From article <1991May13.181826.18832@hellgate.utah.edu>, by b-davis%cai.utah.edu@cs.utah.edu (Brad Davis): > Software creation is a craft, as in the great crafts of the ancient > world. This is as true (and as inaccurate) of building software is it is of building automobiles, disk drives, or high rise buildings. > Even the most talented "artist" needs to study, refine, and > hone his/her work and the most talented begining "artist" is still a > poor software writer. Very true and very said! > On the other side, there are no hard and fast, > tried and true rules that will create great software as there is in > the sciences and engineering to create new entities. Where did you get the idea that " hard and fast, tried and true rules" can produce great engineering? Wake up and look around you. "Hard and fast, tried and true" produced the same pedestian garbage in structural engineering, mechanical engineering, and electronic engineering as it does in programming. Too many people mistakenly believe that designing software is somehow magically different from other forms of engineering. Chris Prael
kambic@iccgcc.decnet.ab.com (George X. Kambic, Allen-Bradley Inc.) (05/16/91)
In article <1312@grapevine.EBay.Sun.COM>, chrisp@regenmeister.EBay.Sun.COM (Chris Prael) writes: > From article <25170@as0c.sei.cmu.edu>, by rsd@sei.cmu.edu (Richard S D'Ippolito): > Engineering IS > art. Good engineering is good art and bad engineering is bad art. > There is, and can be, no versus to the relationship between art and > engineering. ? Equivalencing engineering to art does not work except from the point of view of manipulating the local environment. Is it a consequence of good engineering practices that the result generally looks pleasing to the eye? Or does an item with good engineering become pleasing to the eye and mind after understanding how well it satisfies form, fit, and function. Is an F-4 good art? Don't think many people would classify it that way, but is it good engineering? Do believe so, and once you begin to appreciate that fact, it becomes mentally and visually pleasing. GXKambic standard disclaimers
styri@cs.hw.ac.uk (Yu No Hoo) (05/16/91)
In article <1991May13.181826.18832@hellgate.utah.edu> b-davis%cai.utah.edu@cs.utah.edu (Brad Davis) writes: >Software creation is a craft, as in the great crafts of the ancient >world. Even the most talented "artist" needs to study, refine, and >hone his/her work and the most talented begining "artist" is still a >poor software writer. On the other side, there are no hard and fast, >tried and true rules that will create great software as there is in >the sciences and engineering to create new entities. I really like Brad's use of the word "craft" in this context. (However, I still think there is software engineering.) But I would like someone to elaborate on these "hard and fast, tried and true rules" which seem to exist in the sciences and engineering. How about comparing the software craftsman to the old stonemason. Take a look at any mediveal cathedral. Sure, some of these buildings stand only by chance and lycky "artistry" - but usually followed strict rules and principles, bulding to specification. That didn't stop them carving beautiful stones and creating wonderful buildings. And, these people are kind of the fathers of all engineers. Being an engineer today does not exclude you from being a skilled craftsman as well, on the contrary - it'll probably make you a very good engineer. An engineer may also be "artistic" and good at finding creative solutions. The software engineer may still "carve" his beautiful code as long as the carving doesn't weaken the design of the system. However, too many "ornaments" in the code will result in expensive maintenance. The customer may require a less original construction. If you only want to carve beautiful code you may starve. (Probably you can then call yourself an artist - starving, but only working for a higher purpose. :-) ) Finally, do not confuse scientists and engineers. The purpose of a scientist is to solve problems in order to advance his science. The purpose of an engineer is of a far more practical nature. ---------------------- Haakon Styri Dept. of Comp. Sci. ARPA: styri@cs.hw.ac.uk Heriot-Watt University X-400: C=gb;PRMD=uk.ac;O=hw;OU=cs;S=styri Edinburgh, Scotland
iverson@xstor.com (Tim Iverson) (05/17/91)
In article <36650010@hpopd.pwd.hp.com> daves@hpopd.pwd.hp.com (Dave Straker) writes: >This is probably a matter of interpretation. I would define Art as >being based in 'feelings' and Science as been based in 'rules'. The definition of science is not open to interpretation: science is defined as anything that is founded on the scientific method. Engineering is the science of methods. The definition of art is open to interpretation, but most agree that the main goal of art is communication and that it is not based on feelings, but on aesthetics. It communicates feelings (among many other things); though some say if it doesn't move you, it isn't art. >If there is a key word I would use for Engineering, it would be >'pragmatic'. Engineering lies in the empirical as opposed to theoretical domain of science, but it is purely a science, not an art. It advances by applying new methods and testing the results against the results of old methods. >Perhaps where confusion is caused is when feelings are based in >rules, for example where an engineer does what 'feels right', and >is right - it feels right because he has internalised the rules to >the point where he does not or even cannot describe them. There is no confusion. If a programmer uses a methodology, he is an engineer. If not, then he is an artist (or a hack :-). The difference is that good engineering can be done by anyone that understands the methodology, whereas good art can only be created by someone with talent (i.e. innate understanding of both work and medium). I've been talking like the two are somehow antithetical - they are not. Just as pewter can be made from silver an tin, so can a program be alloyed of art and engineering. Which is tin and which is silver is obvious, but I'll leave it as an exercise for the flameproof :-). >Dave Straker Pinewood Information Systems Division (PWD not PISD) > Unix: daves@hpopd.pwd.hp.com - Tim Iverson iverson@xstor.com -/- uunet!xstor!iverson
tsarver@andersen.uucp (Tom Sarver) (05/17/91)
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!!" / / / |
dedek@meaddata.com (Mike Dedek) (05/17/91)
In article <460@smds.UUCP>, rh@smds.UUCP (Richard Harter) writes: |> In article <1312@grapevine.EBay.Sun.COM>, chrisp@regenmeister.EBay.Sun.COM (Chris Prael) writes: |> |> > C is great engineering and great art. |> |> Thanks for a good laugh. C is to great engineering what doggerel is to |> poetry. This thread has been discussing whether software development (using the computer language 'C' in particular) is engineering or art, I believe. Since 'C' is a tool/method for software development, in the context of *this* discussion it can be likened to say, concrete. One can create both art and engineering using concrete, and sometimes both at the same time, but I wouldn't say (in *this* context) that concrete itself is either engineering or art. One can also create 'engineering doggerel' with concrete. Using this analogy, both statements cited above are invalid. One could say '*Software written in* 'C' is great engineering and great art', or '*Software written in* 'C' is to great engineering what doggerel is to poetry.' However, like a bridge created from concrete, software written in 'C' could be 'great engineering', 'great art', or 'doggerel' *depending on the engineer.* Even if one believes that 'C' is a poor, primitive, or unstructured engineering medium (like sticks), it is still possible to create works of art or engineering from it. It may be more difficult, or require more discipline by the engineer, but it can be done. Engineers should think before they work. They should also *think* before they post :-) | I'm too lazy to create a .sig file, so I just type this in every | time I send e-mail! | Opinions expressed are solely those of the author. | ...!uunet!meaddata!dedek ...dedek@moonlight.meaddata.com
chrisp@regenmeister.EBay.Sun.COM (Chris Prael) (05/18/91)
From article <1991May16.231300.13345@casbah.acns.nwu.edu>, by tsarver@andersen.uucp (Tom Sarver): > Hey guys, > This thread is getting a little tiresome. Everyone is simply reacting You find something wrong with applying the scientific method? > 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 Finding references may be academically sound, but I question its applicability to being a scientist. Scientists experiment. They also learn from other people's experiments. In that sense, most of the discussion in this thread has been scientific in character. > references which deal directly with the debate, and I attempt to > summarize them here. > 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.) This is an interesting speculation, but it is historically inacurate, hence bad science. If you read the history of most scientific developments, particularly in physics, you will find that most of the major advances were the result of significant engineering advances. Major engineering advances, on the other hand, have come most often from advances in materials (engineering, though we now call it "material science", other engineering advances, or scientific advances). Most people studiously ignore the fact that Einstein's training was not in a scientific topic. His training was in examining patent applications, a non-academic form of engineering training. Chris Prael
eaker@ukulele.crd.ge.com (Charles E Eaker) (05/18/91)
In article <2996@odin.cs.hw.ac.uk> styri@cs.hw.ac.uk (Yu No Hoo) writes: >How about comparing the software craftsman to the old stonemason. Take a look at Ken Follet's "Pillars of the Earth". It's a wonderful novel set in the 12th century and contains an enormous amount of detail about the craft of cathedral building in the absence of an engineering profession. Has some great examples of how rules of thumb such as "To make it stronger, make it thicker," literally fall down. -- Chuck Eaker / P.O. Box 8, K-1 3C12 / Schenectady, NY 12301 USA eaker@crd.ge.com eaker@crdgw1.UUCP (518) 387-5964
lleone@fir16.cray.com (Larry Leone) (05/18/91)
Something I learned from my former days as an engineering student which I think applies equally well to the kind of programming I practice in industry today. en.gi.neer.ing - the art of applied science Think about this the next time you choose a sorting algorithm from the realm of computer science and artfully apply it to the problem at hand. my 2 cents, --Larry -- Larry Leone Internet: lleone@cray.com UUCP: uunet!cray!lleone
rh@smds.UUCP (Richard Harter) (05/18/91)
In article <4366@meaddata.meaddata.com>, dedek@meaddata.com (Mike Dedek) writes: > In article <460@smds.UUCP>, rh@smds.UUCP (Richard Harter) writes: > |> In article <1312@grapevine.EBay.Sun.COM>, chrisp@regenmeister.EBay.Sun.COM (Chris Prael) writes: > |> > C is great engineering and great art. > |> Thanks for a good laugh. C is to great engineering what doggerel is to > |> poetry. Mike discusses this at some length, making the distinction between tools and the things that they are built with. He draws analogies with building with concrete and sticks and such. His general point, which is well taken, is that one can do good software engineering even when working with poor tools. However he makes what I would consider to be a fundamental error in excluding tools and languages from the domain of engineering. Tools and languages are objects of design and specification just as much as specific programs and systems are. Indeed, good engineering of tools and languages is critical simply because they are continually reused. I will concede that my comments about C were snide (but accurate :-)). I do not concede that it is irrelevant to talk about the engineering or artistic quality of a language. > Engineers should think before they work. They should also *think* > before they post :-) Indeed. May your ears hear the wisdom of your mouth. :-) -- Richard Harter, Software Maintenance and Development Systems, Inc. Net address: jjmhome!smds!rh Phone: 508-369-7398 US Mail: SMDS Inc., PO Box 555, Concord MA 01742 This sentence no verb. This sentence short. This signature done.
ghm@ccadfa.adfa.oz.au (Geoff Miller) (05/20/91)
tsarver@andersen.uucp (Tom Sarver) writes: >Hey guys, >This thread is getting a little tiresome.... Actually I was finding it quite interesting! [...interesting references deleted 'cause I haven't read them yet...] >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." True. In fact, for almost any computing problem there is a potentially infinite number of solutions (most of which are so obviously sub-optimal that we never consciously consider them at all), but even when we come up with a good solution it is very hard to demonstrate that it is the "best" solution - not least because there are several ways to define "best". It is this lack of a clear single "right" solution which distinguishes computing from a science, but maybe emphasising the creative and "artistic" nature is not the way to go either. I'm reminded of the title of Dijkstra's book, however, and maybe we should just stick with that - A "Discipline" of Programming. Geoff Miller (ghm@cc.adfa.oz.au) Computer Centre, Australian Defence Force Academy
styri@cs.hw.ac.uk (Yu No Hoo) (05/20/91)
In article <2996@odin.cs.hw.ac.uk> I wrote: >How about comparing the software craftsman to the old stonemason. In article <19669@crdgw1.crd.ge.com> eaker@ukulele.crd.ge.com (Charles E Eaker) writes: >Take a look at Ken Follet's "Pillars of the Earth". It's a wonderful >novel set in the 12th century and contains an enormous amount of detail >about the craft of cathedral building in the absence of an engineering >profession. Has some great examples of how rules of thumb such as >"To make it stronger, make it thicker," literally fall down. Agree, nice book. But, don't make jokes about their rules of thumb. And, even in the absence of an engineering profession - some of these guys were really good engineers. And even engineering gives some freedom for some artistry, both of the esthetic and the innovative kind. I guess a problem with this discussion is that we forget that we may wear many 'hats' in our work. I don't view myself as an engineer when I'm writing a piece of code. Coding is a craft. However, I write my code to some design or specification that may be a product of engineering, and supervising the progress of construction may also be engineering. Constructing a pipeline may be engineering, welding pipes is not. Designing software should probably be compared to designing a building. There are elements of esthetics, there are elements of functionality and there is a limit on how much we are willing to pay. More important, one definition of the term architecture is "the art and science of designing and constructing buildings". Functionality and user friendliness aren't something added by some joiner at a later stage. Art and engineering may be orthogonal entities, but they aren't contratictory. ----------------------- Haakon Styri Dept. of Comp. Sci. ARPA: styri@cs.hw.ac.uk Heriot-Watt University X-400: C=gb;PRMD=uk.ac;O=hw;OU=cs;S=styri Edinburgh, Scotland
tsarver@andersen.uucp (Tom Sarver) (05/20/91)
In article <1343@grapevine.EBay.Sun.COM> chrisp@regenmeister.EBay.Sun.COM (Chris Prael) writes: >From article <1991May16.231300.13345@casbah.acns.nwu.edu>, by tsarver@andersen.uucp (Tom Sarver): > > [Deleted discussion on references versus experimentation.] > >> 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.) > >This is an interesting speculation, but it is historically inacurate, >hence bad science. If you read the history of most scientific >developments, particularly in physics, you will find that most of the >major advances were the result of significant engineering advances. >Major engineering advances, on the other hand, have come most often from >advances in materials (engineering, though we now call it "material >science", other engineering advances, or scientific advances). > The statement above is a one-paragraph summary of a *BOOK*! This book was written by an historian, and therefore, my summary stands. However, I did not rule out the fact that science and engineering can, and do, work together. In fact, the Shaw's article graphically shows how this occurs. The point of my posting is that software engineering hasn't really reached the "engineering" phase. We simply don't have well codified knowledge. > [Deleted some discussion of Einstein's training.] > >Chris Prael --Tom Sarver tsarver@andersen.com Andersen Consulting 100 S. Wacker Suite 900 Chicago, IL 60606
kambic@iccgcc.decnet.ab.com (George X. Kambic, Allen-Bradley Inc.) (05/21/91)
In article <1991May13.185411.7253@netcom.COM>, jls@netcom.COM (Jim Showalter) writes: [...] > Indeed, and the sad thing is that traditional methodologies completely ignore > this simple reality--the classic "waterfall" model of software development > assumes what I call a "top-down omniscient" process, which would work great > if we could just find some omniscient engineers. In reality, either feedback > is accomodated in an ad hoc manner during development (with consequent penalties > in terms of efficiency, since the process is not explicitly set up to plan > for such feedback) or, as is often the case, feedback is folded in during the > inappropriately named "maintenance" phase. [..good stuff omitted to focus on waterfall for the moment..] OK - next comment. IMHO all "life cycles" contain the waterfall model at their most microscopic level: one engineer, one problem, short time scale (minutes), good knowledge base, etc. All other life cycles are constructed of the waterfall + feedback with varied deliverables at different time scales. GXKambic standard disclaimer
jls@netcom.COM (Jim Showalter) (05/21/91)
>OK - next comment. IMHO all "life cycles" contain the waterfall model at >their most microscopic level: one engineer, one problem, short time scale >(minutes), good knowledge base, etc. All other life cycles are constructed of >the waterfall + feedback with varied deliverables at different time scales. No argument. The problem is just that so many lifecycle models generalize from the microscopic to the macroscopic level, and simply don't work right when applied to non-trivial problems. -- **************** 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++. *
G.Joly@cs.ucl.ac.uk (Gordon Joly) (05/21/91)
Chris Prael <chrisp@regenmeister.EBay.Sun.COM> writes > [...] > This is an interesting speculation, but it is historically inacurate, > hence bad science. If you read the history of most scientific > developments, particularly in physics, you will find that most of the > major advances were the result of significant engineering advances. > Major engineering advances, on the other hand, have come most often from > advances in materials (engineering, though we now call it "material > science", other engineering advances, or scientific advances). > > Most people studiously ignore the fact that Einstein's training was not > in a scientific topic. His training was in examining patent > applications, a non-academic form of engineering training. > > Chris Prael "Einstein's training" must have been a great hinderance to him. He basically re-wrote the rule book with both (Special and General) Relativity and the photo-electric effect. Galileo and others had to fight against the establishment; engineering is by definition established c.f. Mary Shaw's article, %A Mary Shaw %T Propects of an Engineering of Software Engineering %J IEEE Software %D November 1990 %V 7 %N 11 previously cited in this list. ____ Gordon Joly +44 71 387 7050 ext 3716 Internet: G.Joly@cs.ucl.ac.uk UUCP: ...!{uunet,ukc}!ucl-cs!G.Joly Computer Science, University College London, Gower Street, LONDON WC1E 6BT No more pork sausages!
kambic@iccgcc.decnet.ab.com (George X. Kambic, Allen-Bradley Inc.) (05/24/91)
In article <1991May16.203518.22420@xstor.com>, iverson@xstor.com (Tim Iverson) writes: > In article <36650010@hpopd.pwd.hp.com> daves@hpopd.pwd.hp.com (Dave Straker) writes: [...] > There is no confusion. If a programmer uses a methodology, he is an > engineer. If not, then he is an artist (or a hack :-). The difference is > that good engineering can be done by anyone that understands the > methodology, whereas good art can only be created by someone with talent > (i.e. innate understanding of both work and medium). Don't think so. Good engineering cannot be done by anyone who understands the methodology, unless you mean understanding to include applications knowledge, experience, understanding of the scientific method, and a knowledge of history, for a minimum. Secondly, good art (at least in some eyes) can be created by good engineers but this is probably because they understand their work and their medium. The F-4 is a work of art, done by engineers who knew these things. GXKambic standard disclaimer
chip@tct.com (Chip Salzenberg) (05/25/91)
According to kambic@iccgcc.decnet.ab.com (George X. Kambic):
>The F-4 is a work of art, done by engineers who knew these things.
The F-4?
Ha!
The F-4 is proof that with a couple of J-79s, a barn door can fly.
What was that you were saying about "good engineering" and "art"?
--
Chip Salzenberg at Teltronics/TCT <chip@tct.com>, <uunet!pdn!tct!chip>
perl -e 'sub do { print "extinct!\n"; } do do()'
kambic@iccgcc.decnet.ab.com (George X. Kambic, Allen-Bradley Inc.) (06/06/91)
In article <283D7F7E.54A2@tct.com>, chip@tct.com (Chip Salzenberg) writes: > According to kambic@iccgcc.decnet.ab.com (George X. Kambic): >>The F-4 is a work of art, done by engineers who knew these things. > The F-4? > Ha! > The F-4 is proof that with a couple of J-79s, a barn door can fly. > What was that you were saying about "good engineering" and "art"? No change. The F-4 has had an over 30 year service life. It does not fly apart when flying. This somehow implies (at least to me) good engineering. Do you like it as art? I do. The old adage about "if it looks good, it will fly good" or something like that, applies here. Barn door? Old barn wood makes good art. GXKambic standard disclaimer