Earlier quoted context omitted.
Aren't you being overly optimistic about the engineering disciplines' ability to compute things? How does engineering work: do you sit down with a spec (say, "create a wing that can lift a passenger plane"), and then run some formulas, and end up with a wing? Or do you propose a wing, based on past experience (rough shape and size), and _then_ bring in computation to make sure it provides the correct amount of lift,…
No. theory is very much part of the creation of the bridge. It is not just for verification. If you read more carefully. What I am saying is that in software engineering, there is no theory. It's all Design. All made up. There's also no verification of the design itself.
I think this is mostly a philosophical statement, but it certainly has truth to it.
Code reviews / rework tackle mostly the code, but not the fundamental design. However the execution of the code tackles the design as well:
- If the design is wrong, the result is bad, that is detected at the execution phase.
- If the design is suboptimal (hard to maintain or extend, bad cpu load, hard to reuse...), well that is usually not solved. IMO that matches your point.