Software Development != Manufacturing && Software Development != Engineering
Aaron Farr has an excellent blog entry on why
Software Development != Manufacturing. I'd quote it except that the whole thing is good and it's short so you may as well just go read it for yourself.
In a somewhat related entry,
Eugene Wallingford comments on
the use of metaphors w.r.t. software engineering.
This is one of the dangers inherent in metaphor: unreality. It is easy for us in software to idealize other disciplines and how they work. One result is that we beat ourselves up for how we could do better is only we were more like "them", for some broad spectrum of thems. Architecture - isn't it just dreamy? Engineering - tough, rigid, clean, controlled. But we need to make metaphors with our eyes carefully tuned to how the world really is in those other disciplines, not only the ideas but the daily practices and experiences. Otherwise, we are bound to create unrealistic expectations for how we do what we do, and how well we do it.
In my experience, only software development is like software development, and any initiative devised by means of analogy to some other activity, is a recipe for disaster. Software development is not like manufacturing, civil engineering, brick-laying, painting, warring Mongolian Hordes, or anything else. Often, it's not even like itself.
___
This reminds me (tangentially) of Dijkstra, who described software engineering as "how to program if you cannot".