Software as an engineering discipline

When we think of software, software product definition or a software development process for some reason everyone is trying to invent something new. New methodologies, new analogies … Why do we think it is OK to have an engineering degree when it comes to software, but it is not OK to treat it as an engineering discipline? Why software has to be so different from car manufacturing, hardware manufacturing, etc? A most common argument is that software changes too fast.. Well, it is true, but for a duration of a given release, for a life-cycle of a given software product it doesn’t look like it is changes any more then anything else: car design is changing from year to year, houses get new design ideas…. Why can’t we apply same logic to software design/requirements changes as we do to same sort of changes in car manufacturing? I think good software product goes thru same life-cycle as a good car: High level design, performance criteria definition, quality metrics… and all this gets applied to the product as a whole, each module or sub-system, each component and each class… There also should be a set of industry accepted criteria, which will classify software product as “market legal”, same way as cars and motorcycles get classified as “street legal” only when they implement and comply with industry standards. Well… I am wondering, and that’s what I do :), wouldn’t that make everybody’s life: developers, PMs, managers, customers, consumers , etc much easier?

Advertisements