Any field of human creation involves four layers. When the field is '''sufficiently large and mature''', these four layers become '''distinct and specialized'''. These four layers are: * science * engineering * trade / craft * design The goals of each layer are to determine: * what is possible * what is feasible * what to do to get it done * what should be done What's important here is that '''past a certain size, the four layers become unglued''' and they have little or nothing to do with each other. Past a certain point, the vast majority of practitioners in one of the layers interact exclusively with other practitioners in the same layer. So scientists interact almost exclusively with other scientists and they have developed their own common agendas, common goals and common concerns. In physics, theoretical fundamental physicists interact almost exclusively with other theoretical fundamental physicists. And in fact, fundamental physics has become so large an area of human endeavour that it has replicated the four layers within itself even though it is itself only a small part of physics which is itself only one layer in a much vaster area of human endeavour. Now, ''sometimes'' a designer interacts with an engineer or a scientist, but this is very rare and it is easily explained in terms of what each layer seeks to accomplish. A designer that seeks to have created something that's well within the limits of current technology will interact only with tradespeople. A designer that seeks to push the limits of mainstream technology will have to interact with engineers. And a designer that seeks to push the limits of known technologies, very rare, will have to interact with scientists. Each layer has unique characteristics. Science is a social process (OpenMindedScience) with no common rules (AgainstMethod). Engineering has common practices regulated by external factors (science) in a common language (math). Trades are defined by their conventions both formal and informal. And design is creative and synthetic. So in software creation we have: * ComputerScience * SoftwareEngineering * ProgrammingIsaTrade * InteractionDesign So in our example, the overwhelming majority of programming has very little to do with any engineering, has nothing to do with any computer science and has no design. This is why most programmers write useless crap (no design) in worthless languages (no engineering). Actually, programmers still have a ways to go to even aspire to being a reputable trade; good industry practices like PairProgramming would have to be widely adopted. And so WhatIsComputerScienceGoodFor for programmers? Very little. What's it good for InteractionDesigner''''''s? Absolutely nothing. ---- It would seem that what ShouldBeDone (design) would always have a certain binding to WhatIsFeasible (engineering) and certainly be constrained by WhatIsPossible (science). One could, of course, use the ScienceFiction writer's defense: "I'm only speculating." And given that, past a certain threshold, the ''layers become unglued'', an argument could be made that ScienceFiction is sufficiently unglued to serve the purpose. There is a certain allure in perfection, but speculative perfection will never hammer nails, while a crude, poorly designed, even ad hoc tool that actually drives nails can be useful as a hammer. It would seem, then, that design must be constrained by what can be achieved at a point in time near enough so as not to be meaningless. ''Binding is the wrong word for it. What should be done is almost never directly bound to what is feasible, even for successful projects. It's usually bound to what's conventional. For example, even a magnificently designed can opener still uses entirely mainstream steel casting and rubber moulding technology. There is no call to bring in an engineer to design new machinery, new processes or new technology.'' ---- I agree with the first part; that mature disciplines specialize as you mention. One quibble: The craftsman isn't charged with determining if something is feasible; he is charged with ''getting it done''. Nobody asks the carpenter if he can build the house; the carpenter is hired by the contractor or the architect and '''told''' to build the house. And seldom do contractors or architects produce unbuildable blueprints and hand them to carpenters. In the building trade, one finds: * Scientists (materials scientists, mainly, with a spattering of other disciplines such as physics and chemistry). * Civil engineers, structural engineers, and mechanical engineers--and several subspecialties of each. * Tradesmen of all sorts * Architects Plus, we have the role of the general contractor--which gets involved in all but the science part; and supervises the other three. In engineering, the equivalent role is (unfortunately) the PointyHairedBoss. :) However, I disagree with the amount that the various fields are disconnected. Ignoring the FrankLloydWright''''''s of the world; most architects ''do'' work intimately with engineers and craftsmen, and consult with them in producing designs. Building architects are also expected to have some knowledge of the building trades, so that they don't produce laughable designs. Engineers are expected to keep up with advances in the relevant scientific theory. And don't forget that science also informs many other parties in the building trade--materials suppliers, tool vendors, and a whole host of others who aren't directly involved in a particular building project, but who support the industry. Likewise, shops in which firewalls are maintained between designers, SW architects/analysts, coders, their bosses, in-house research scientists, and academia--are generally considered dysfunctional. --ScottJohnson You zeroed in on the weak point. I chose to put a known weak goal for tradesmen instead of putting a seemingly correct goal (getting it done) because the latter would ossify. I don't think it's correct that tradesmen are only charged with getting something done. In the case of highly skilled trades, there's a wide latitude in how to get it done. I don't hold with Taylorism that engineers and management should dictate every step of a work process. I'd rather think that Taylorism is illegitimate encroachment of engineers into trades than highly skilled trades are encroaching on engineering. ''That largely depends on the discipline. In the building trades, individual tradesmen are generally overseen by foreman--managers who specialize in managing tradesman--not by the contractors directly. And many trades have well-established practices and procedures, certifications, and such--but the trade is still requires skill (which may be acquired), as opposed to being something that a person off the street could do after a two-day course.'' Most architects work intimately with engineers and craftsmen (are you implying that FLW didn't?) but most architects aren't designers. They go through the motions of design but they don't do design, they do crap. Suburban housing is not architecture, it's a travesty of it. Otherwise, you support my thesis by mentioning how architects are expected to know trades but ''not engineering'' let alone science. I'd also like to point out that nowhere do I say that software creators' total ungluing from each other is a good thing, just that it has happened. -- RK ''I'm not implying such. At any rate, there seems to be a disagreement about the term "architect". Most architects focus on the functional rather than the purely aesthetic--as do most good interaction designers--and will never, ever have one of their projects celebrated as works of art. That doesn't make what they do fail to be architecture. While architecture has a creative element; architecture is ultimately a productive endeavor, not a purely aesthetic one--buildings and bridges are '''never''' properly viewed as mere sculptures, crafted out of steel and concrete.'' ''If you wish to constrain architecture to only focus on the FLWs of the world--folks who produce buildings known primarily for their aesthetic properties, and not anything else--fine. But then the analogy with programming and software breaks down completely; the equivalent to the architect-as-''artiste'' in software is those people who write screen-savers for a living. Which is totally irrelevant to how any of us do our jobs.'' Most architects are retained by builders so they never get the opportunity to design anything for end users. They don't design homes for people to live in, they design construction projects for homebuilders dealing with complicated construction codes and bylaws. This is very much like designing a non-functional switch that happens to be installable very easily. From the point of view of the end user, this is horrible design and so ''architects aren't designers''. ''I'm curious. If an architect '''did''' design a home for end users (keeping in mind that the end user has to ultimately pay for the materials, and the labor, and the builder's profit--otherwise, the home doesn't get built), how do you think it would be different from how homes are built today? Or are you thinking at a higher level, and attacking the typical North American suburb (which is a question well outside the scope of what architects normally do--even though I'd be inclined to agree with you on that point)?--sj'' They would do a whole bunch of stuff which isn't allowed or is extremely difficult to do by law, or is seen in a very negative light by the market. A building in a central location would have no front lawn but would abut the street or sidewalk directly and might even encroach over it. There would be no space between adjacent buildings. If it were a downtown location, then the first floor would be commercial space with heavy insulation between it and upper floors. Construction would be done using concrete instead of wood frames at the cost of smaller individual units. Historically, this is what people actually built for themselves when they were given even a moderately free hand to do so. -- RK ''It's hardly fair to architects to blame them for following building codes you don't like. At any rate, in many parts of the world--and in North America, particularly in downtowns--such builings ARE built. Part of the reason that suburbs are built is that homeowners desire them. Are you suggesting it's the job of building architects to band together as a group, say that suburbs are fucked up, and refuse to design anything other than high-density urban housing? Again, this is a debate that transcends the building trade.'' I don't think that homeowners desire suburbs. Very few people want to have to commute, be far from transit and have few accessible amenities. I don't buy into the party line that homeowners desperately want a backyard (which they never use), spacing between houses (which they don't care about), and roads more than twice as wide as are necessary. * It is very common for parents to want to have a yard large enough for their children to play in, and for dogs to run around in if they own dogs, and to plant flowers and vegetables (gardening is said to be the #1 most popular hobby in the U.S. right now, for instance). That's not all homeowners, but it's a lot of them. * As for spacing between houses, it is desirable to some people in order to give more visual and audio privacy. No one wants to hear arguments and music from next door, and no one wants to look out a window and see their neighbor staring right back at them (especially if it's a bedroom window). This isn't just party line stuff, there are perfectly common sensical functional reasons why a percentage of homeowners care about these two things. -- Doug * People desire a great many things. I desire an electric guitar decorated with precious stones and tasteful gold inlay. I'm willing to pay about 200$ for it, it's a gift for a friend. Just because people desire something doesn't meant they need it or want it badly enough to pay for it. If they did we would say they demand or require it. * Do people demand or require back yards? The answer, surprising perhaps to you, is no. People aren't willing to pay 50-100K, what the land is actually worth, for a place for their dog to piss and shit in. And that's really all a backyard is good for since ''children don't play in backyards''. Children play in streets, in houses, in each other's houses, in woods, in abandoned lots, but backyards? Toddlers maybe, but not children. * What backyards are actually used for is status symbols. And this is evidenced by the first thing people associate with a backyard; the barbecue. Gardening is another of those status symbols unless you're talking about communal urban gardens. And so are SUVs. Fine then, if people want their status symbols why don't they pay the full price for them? Back yard? Sure, cough up 100K. * What people do demand and require, though you may need a skilled designer to intuit or unearth this demand, is well maintained parks. Which is why Paris has a park on every other street corner. In contrast, Canada has a few parks (I know of exactly one in Ottawa) but mostly it has these woods which people absurdly claim are parks. * The tie-ins to software should be obvious. End users may desire a lot of flash and pizzazz but they don't actually need it nor even want it once they have it, and they're certainly not willing to pay the price for it. Knowing the difference between what an end user says and what they actually want is what a designer is for. -- RK What I know is that housing prices in urban areas are astronomical due to both chronic housing shortages (the inability of capitalism to simply build a new city in toto from scratch) and predatory land speculation (the unwillingness to sterilize speculation using schemes such as Common Land Trusts). ''Some homeowners are very vocal on the point. Here in Portland, there have long been laws to discourage unchecked sprawl; and a good number of people openly complain about them, stating a desire for a freestanding single-family home on a quarter-acre lot, surrounded by hundreds of similar dwellings, in a nice subdivision--with the nearest grocery store several miles away. I myself live in an older semi-suburban neighborhood--lots of single-family homes, but more integrated with businesses and such. Any many people do like space between homes; for privacy reasons. Transit? In the opinion of many 'round here, the bus is for poor people to ride. And Portland is one of the more-transit friendly cities in the US, excluding extremely dense places like NYC.'' Suburbs are a disease of capitalism and as everyone knows people desire capitalism with all its associated inequity, poverty, deprivation and so on and so forth. ''My biggest issue with runaway suburban development is that the social costs are often borne by people other than the homeowner and the builder. If this didn't occur, I think fewer such dwellings would be built. -- sj'' ''Suburbs are a disease of people being free to invest their money the way they see fit and not the way a self proclaimed interaction designer decides it's best for them. Given that they express their preferences with their money, and given that in areas like as Los Angeles, San Francisco, they have quite a range of options (from high density urban lifestyle to suburb style), what they really want (not what others thinks they want) has been expressed pretty clearly. If you turn the situation upside down, the name of the disease would be '''gulag'''. -- costin'' So for example, as everyone knows San Francisco is suffering an '''extreme''' housing shortage right now, to the point where homeowners are turning garages into rental units. And that's not even going into the problems of speculation (ie, outsiders who have no interest in housing for its own sake) distorting the market and making people unfree to "invest their money the way they see fit". -- RK * Either that, or buying homes in far-reaching towns such as Livermore (it used to be Pleasentown, but even that's expensive these days), and doing the infamous 680 crawl every day. -- sj San Francisco does have a shortage, yes, but it's not the best city to use in either side of most debates, because it is unusual in being geographically '''tiny''' and surrounded on three sides by water (ocean and bay). The point (for either side of debates) is better made by the rest of the Bay Area, which includes Silicon Valley as a subset. -- Doug ''So if there's a housing shortage people will pay more money, and will buy smaller places. When and where housing was regulated in US, shortages were even worse (for example: Santa Monica, CA even today regulates rentals). Developers will be interested in building higher density areas (such is the case in Irvine, CA), because they can make more money that way. Otherwise, who is to decide that a person is entitled to 700 square feet and not to 1500 or 3000 ? An interaction designer ?'' * Really... this segue into urban design is getting a bit OffTopic. Interesting, but it has little to do with programming or software. ---- ''If you wish to constrain architecture to only focus on the FLWs of the world--folks who produce buildings known primarily for their aesthetic properties, and not anything else--fine.'' Aesthetics is not synonymous with creativity. Design and architecture are deeply creative endeavours, and productive ones. The software analogue of architecture as art is graphics design, the interactive design listed in wikipedia which is really all about branding is the analogue to architecture for builders. For the analogue to interaction design, you should look up JH Crawford's web site on urban design (http://www.carfree.com). -- RK ''Graphics design isn't a software design activity; nor more so than the writing of books is. Just because book authors use MS Word, and graphics designers use Photoshop, doesn't move what they do into the realm of software design. It may be programming in a sense; but the design artifact--the thing which is produced--isn't software. -- sj'' Many graphic artists do web site design and their products are web sites. Typically extremely beautiful websites that are excruciating to use. Are these sites not software? ''Web sites--the interactive elements of them in particular--are certainly software. The industry does make a distinction between "graphics designers", which produce artwork, pictures, banners, letterheads, logos, video, and other non-interactive visual media, and "web designers", who produce the structure and logic of websites, and the glue code that interfaces 'em to databases and other back-end software. I assumed you meant the former; the latter is certainly software design.'' I know a graphic artist who claims credit for a content management system. An extreme case admittedly. ---- RefactorMe: This on first look seems to largely duplicate the idea of ArtCraftEngineeringScience/ArtCraftSoftScienceHardScience. This page obsoletes those other pages. The Art category in ArtCraftEngineeringScience was particularly badly chosen. And ArtCraftSoftScienceHardScience is about some supposed evolutionary process that occurs over a field's history from Art to Hard Science with the implication that hard science is best. In other words, that second page has absolutely nothing to do with this page and it might even be wrong. In addition, there's no clear way to distinguish between Art and Craft given the uses they've put Art to in those pages. ''There's nothing wrong with art for art's sake, obviously--and I tend to view "arts" and "crafts" as equivalent in terms of that debate. The progression, of course, deals with our ability to build models and make predictions concerning a subject matter. On matters which are still considered "arts"--as some claim programming is today, and as alchemy once was, our ability to make accurate predictions concerning the subject is limited. Excellence in the subject is possible, but it's often a matter of experience and intuition. In the soft sciences, we've begun to quantify things, though the complexity of the field (i.e. biology) and/or the resistance/reaction of subjects to investigation (economics, psychology) may limit certain fields to soft science status. In the hard sciences; we can make accurate predictions about a wide variety of things in the fields. There are always unknowns, of course, but NASA can shoot a rocket at Pluto and have a high degree of confidence that it will indeed get there in ten years time.'' ''As Doug pointed out, in a succinct summary: "arts" and "crafts" are those things we don't understand sufficiently, via experimentation and hypothesis, to call them "science". That's really it.'' * It's not useful to categorize the entirety of software creation as an "art". It's not useful to categorize the entirety of software creation as anything. And it's simply ''wrong'' to categorize the actual computer science part of software creation, insignificant as it may be, as an art. Further, they're using art as a synonym for craft or "less developed craft" which is really not what most people think of when one says art. ** Oh, I agree with you here--I don't characterize what I do as art. Some do, but I don't. One important social issue, of course, is the fear that ''our'' precious profession will be "Taylorized", with the resulting economic upheaval. --sj What ArtCraftSoftScienceHardScience is really all about is a status game. The ability to say nyah-nyah we're a science and you're not. A status game driven by DisciplineEnvy. That sort of stuff shouldn't exist. Programming is a trade like cooking, that's all it is and that's all it will ever be. And ''there is nothing wrong with this'' because ''this is exactly how it must and should be''. ** Perhaps; I'm not terribly interested in that PissingContest. But be careful... not to confuse "programming" with the practice of software development as a whole. Programming is an important part; but it ain't the whole thing. But '''do''' consider the following fact: Many of the leaps in programmer productivity over the past 50 years, from the punchcard-and-switches era until today--have come about through automation of the boring, repititive parts of programming, what FredBrooks refers to as the "accidents" or "incidents" of programming. Many arguments concerning programming languages today revolve around the same issue--how much dirty details, irrelevant to the problem at hand, does the language and its environment abstract away? For this level of automation to occur, the underlying systems '''must''' be well-understood. Which I think demonstrates that at least '''part''' of what we do (meaning the SW community as a whole, not just programmers) is "science". --sj JanuaryZeroSix