Auto forwarded from GardenAnalogyTendingSoftware
IIRC, the PragProg guys prefer the GardenAnalogy [see OrganicSoftware] to the ConstructionAnalogy as applied to software development. Luke Hohman also likes this analogy:
Modern software architecture is much more akin to an English garden that you plan and you plant and you weed and you improve. Yes, there's an overall plan, but the result requires more tending. I think that tending is one of the things that frustrates executives. Why does software require tending? Things shift on you. Your database just upgraded, you have XML infrastructure to deal with, the customer wants a middleware option, and an operating system just changed. There's more shifting in software than people realize.