| ▲ | ilaksh 3 days ago | |
Construction worker is a spectacularly bad analogy for software engineer. The architect and structural engineers design the building well in advance. Construction workers are mainly arranging materials according to a prewritten design. Software engineers are not given specs that are equivalent to blueprints. They are given requirements or user stories. Then they have to flesh out the final real specification in place. And then from the specification, decide how to implement it, which is not decided at all ahead of time. Also, what software engineers are building is almost always somewhat novel, at least dramatically more novel than a typical building. It very often involves some type of research task, even if that is just sifting through components and configuring them. There is much more room in software engineering for 1) miscommunication or poor communication of users needs, 2) substantive tradeoffs discovered based on technical details or 3) subtle contradictions in requirements from different stakeholders discovered during implementations, 4) better understanding of requirements by users discovered during prototyping, etc. | ||