Why “software engineering” was more than a new label
In the early days of computing, programming was often seen as writing instructions for a machine—a task some hardware engineers regarded as clerical rather than technical. Margaret Hamilton’s choice of “software engineering” challenged that hierarchy. The word engineering framed software as something that had to be designed, tested, and made dependable, not merely typed into a computer.
Apollo made the distinction matter
For Apollo, software helped control spacecraft operations, where a mistake could have consequences far beyond a faulty office calculation. The people building it therefore had to reason about how the system would behave under real conditions, anticipate failures, and ensure that critical tasks received attention when the computer was busy. That work called for systematic design and verification—the kind of responsibility the term “engineering” made harder to dismiss.
Hamilton led MIT’s Software Engineering Division during the missions. Naming the discipline helped make the work visible as a distinct technical practice, with its own difficult problems and standards. It also reflected a practical truth: reliable hardware alone could not make a mission reliable. The instructions running inside it had to be engineered, too.






