I read a good article that gave an Organic Metaphor for software development. Here is a quote:
As I look at what I actually do in my cramped little cubicle, I realize that my work is more akin to farming than construction. I spend my days cultivating information, and growing a program. I can see the evolution of my work as it needs to scale through different platforms.
I really resonate with that description - writing software is very fluid and organic. Code is malleable and frequently changing. During development, there aren't necessarily rigid beams and permanent fasteners like in construction.
Perhaps lending credence to both the architectural and organic software development metaphors, the article closes with this thought:
The term "System Architecture" is a more fitting in the world of packaged software than it is for the IT department or Internet development. With packaged software, a group of programmers create one major release that they will distribute to hundreds of thousands of users. Since there is no method for evolution, this type of software has much more rigid. Of course, with the Internet explosion, packaged software will take a backseat to organic programming.
Yeah. The engineering/architectural and the organic metaphors probably both have their places. Packaged, physically distributed software probably requires more engineering. The organic metaphor better describes the survival of the fittest (or survival of the first-to-market) and rapid evolution that is possible (and required) in the internet ecosystem.