Path: utzoo!attcan!uunet!aplcen!uakari.primate.wisc.edu!zaphod.mps.ohio-state.edu!mips!prls!pyramid!athertn!hemlock!mcgregor From: mcgregor@hemlock.Atherton.COM (Scott McGregor) Newsgroups: comp.software-eng Subject: Re: Is Programming R&D or Production? Message-ID: <25979@athertn.Atherton.COM> Date: 28 Jun 90 20:17:14 GMT References: <48951@iuvax.cs.indiana.edu> <102100011@p.cs.uiuc.edu> <5241@stpstn.UUCP> <7595@ccncsu.ColoState.EDU> Sender: news@athertn.Atherton.COM Reply-To: mcgregor@hemlock.Atherton.COM (Scott McGregor) Organization: Atherton Technology -- Sunnyvale, CA Lines: 50 +-Concerning Is Programming R&D or Production?, Lawrence Detweiler said: | | >Actually I've always thought the best analogy for software development | >is movie production. It shares many similarities. | | If software development is like movie making, I have had the thought | that programs are exactly opposite to Hollywood sets. A set has a | flashy, majestic appearance from the front, but from behind there is | nothing substantial. In a program, few have any idea of the subtle | and magnificent webs of intricate interactions that lie between the | choreography of twirling electrons in its wires to the parade of | photons meeting our eyes. ... A program is an inside-out set. I think that this characterization underappreciates the technical aspects of a set. In order to produce just the right shadows extra lights may be moved in and hung. Wind machines, and rain machines may be used. Cameras and equipment have to be positioned in just the right way, not only to get the right feel, but to make sure lights and microphones don't show up in edges of the frames of each shot. A set is more than false front buildings just as a program is more than its window display. When both are stripped from their context they both appear flashy, majestic in front and insubstantial from behind. But in their contexts (a movie shoot or program) they are both subtly beautiful in management of "magnificent webs of intricate interactions" and choreography. While set designers and programmers find great beauty in their designs, they also acknowledge ugly masses of unfortunate compromises to reality and market conditions that are required. More importantly, to the people on the shoot, the set has a "meaning" different from the meaning that the audience feels when the watch the movie. To those who participated, the meaning is in the telling of the tale, to those who view it is the tale itself. Similarly, to programmers, the "meaning" of the system is intimately tied to the internal algorithm and data represenation choices that combine to "solve" the users problem. To the user the meaning is merely the problem solution itself. A good set is "opaque"--it hides the reality of the movie production process from the viewer who is thus able to suspend disbelief and temporarily live in the apparent virtuality being displayed. A good program can do the same--it can hide complexity from the user who doesn't want to know HOW it was done, and provide them a simplified model that they can treat as if it were real. Seeing a program as an inside-out set may provide some valuable insights, but it misses much of what can be learned from another field that has much to do with managing complexity on large scales and molding abstractions into concrete realizations. Scott McGregor mcgregor@atherton.com