Hi Thomas,
So how was that different from what we've been saying for software?
Except of course for the complexity, but I mean in terms of the
estimation, flow, and iteration of the program.
Firstly, thanks for sticking to your guns! I am being dogged about this as I see it a *such* an important issue. In my view mega-millions of dollars of public money are being spent in this area, which with a changed perspective might produce a much greater benefit. That tendering for software is flawed, I am looking for a clear explanation of why.
At a fundamental level there is no difference, you have creative people, with a background technical training and experience, doing designs.
In the case of software that is the end of it, job done. In the case of hardware the design is handed to the manufacturer and the product made. If both the designer and the manufacturer know their stuff, happy ending, satisfied product user. If not, then 'back to the drawing board'.
In the case of software there is no equivalent to the manufacturer, there is only the designer according to Reeves. If a job is too big for a single designer (forget programmer), you have a problem. The standard thinking has been to sub-divide into roles for 'architecture' and 'implementation'. This is essentially a divide-and-conquer strategy, which is good, but my main problem is that the terminology leads to mistaken thinking, that its going to be as reliable as the designer and manufacturer subdividision of labour usually is.
So you don't really have the hand-over from 'architecture' to 'implementation' with software as its all design, instead you have constant feedback between the two groups of designers (broad and specific). Now if you try to get domain experts involved as well, so that what is designed is actually fit-for-purpose, there is even more communication and feedback involved.
[I think this is why software monopolies have been so common actually, once you come to dominate the relationship with the user is so close it becomes a barrier to entry for anyone else, the feedback between designer and user becomes a virtuous circle that no other competitor can break. It takes a new platform to allow new players to dominate, such as the web (Google) and mobile (Apple)].
Going back to my film analogy, you start with a script usually produced by one person, is that the film design? One that the director, actor and camera-persons etc (as manufacturers) can follow to a predictable result, obviously not! That creative team has to turn the script 'vision' into a product that works for the human audience.
[We might be talking about different kinds of software it occurs to me, I am mainly talking of software that provides information to humans, where meaning becomes such a big issue, not that which controls machines].
Also, like software, once designed a film can be distributed in digital form very, very cheaply, its just copying it onto media for distribution.
For me this is what is so fascinating about the web and open-source, that essentially the creative process around design of software becomes a continuous process of refinement. There are so many creative people who want to be involved (the designers are like a collective intelligence), you don't have to set up a factory to 'go into production', and the 'distribution costs' are negligible. All this is largely being ignored by governments because they are stuck in the old, pre-web, 'procurement' paradigm.
I forecast a time when there will be a professional class that provides a service based on their knowledge about open-source software systems and how to make effective use of them. That software will come to be seen as a collective heritage like other written works, and legal systems, as parts of human culture. [Which leads on to the software patents debate...].
So, software is different.
Steve