"Maintaining a clear mental model of both the requirements and the implemented system is a central part of software engineering beyond code generation."
Irwin describes engineering as a repeated process of understanding requirements, implementing code, examining behavior, and reconciling differences. His account connects successful development to the ability to reason about what a system actually does, rather than merely produce plausible code.
View Source