5 hours ago
- Software engineering is often mistakenly viewed as fundamentally different from traditional engineering, but many claimed differences are oversimplified or false.
- Traditional engineering is not strictly Waterfall; it also involves iterative, Agile-like processes, and unpredictability is common across all engineering fields.
- The notion that 'code is design' is nuanced and does not uniquely separate software from other engineering disciplines, where design and construction intertwine.
- Software engineering is not less rigorous; it has its own forms of rigour, such as automated testing, while traditional engineering can have significant documentation and verification issues.
- Real differences include software's perfect consistency (no physical variation), faster iteration velocity, and softer constraints compared to hard physical limits in traditional engineering.
- Despite differences, all engineering fields share core challenges like shifting requirements, unknown unknowns, and siloed knowledge, making them more similar than distinct.
- Recognizing that software is not special allows for mutual learning between software and traditional engineering to improve practices.