The thing I noticed most is how in modern game design, programming is only a small part of the work. Writers, level designers and animators are contributing just as much to final game design as the programmers. I'm trying to figure out how much this applies to developing more conventional styles of software development. Certainly, in e-commerce applications, having a good DBA is every bit as important as having good programmers. Can anyone think of other examples? -- JohnBrewer
Perhaps it would be interested to list the sorts of people with which programmers interact. To build a complete, sellable product, you need more than just a programmer (or you need a person that has more than just programming skills).
writers (here I mean "people that write English text: novelists, journalists, ... that sort of thing.)
hardware designers (to figure out where the RAM, ROM, and the peripherals are mapped into the address space)
Other categories of projects that programmers work on might be interesting. Did I miss any people?
(DavidCary: While reading CabalDesignProcess, I thought I spotted an idea important enough to give its own name. EditHint: Surely there is a better name than ProgrammingIsaSmallPart.)
Users (involved in development)
GUI designers (who are conscious of standard guidelines)
In reality, a lot of problems are started without domain experts, but the engineers who stay with the problem long enough become domain experts. (This is often the most valuable result of implementing a solution to the problem--better understanding of the problem. This is also why people recommend doing it twice and throwing away the first one, it was just an exercise used to understand the problem.)
-- DerekWoolverton(See ThrowOneAwayInPractice)