My half-assed analogy:
CS is to SE as Physics is to Mechanical Engineering.
In both cases, it's unwise to trust one category with screwdrivers...
My half-assed analogy:
CS is to SE as Physics is to Mechanical Engineering.
In both cases, it's unwise to trust one category with screwdrivers...
In Engineering you have architects/industrial designers etc. They work out the product specifications and then ask the engineers to deliver an efficient workable solution that fits those specifications.
Sometimes at least from my view it feels like software engineering reverses the two roles. i.e The Engineer supplies the api and customer works around design. Think about something classic like Unix it feels like in some cases engineering has constrained the design rather than design constraining the engineering. This is not necessarily a bad thing but it is different.
I've always thought programming would eventually go the way of mechanical engineering with engineers doing design vs fabricators doing the manufacturing. The closest we've come so far in software I think is having one person doing architecture or write a spec and others implement the code. Not quite the same but I wonder if we'll get there eventually.