The Engineering Principle: If You Don't Know What You're Doing, Don't Do It
The āengineering principleā is attributed to Richard Hamming, a legendary mathematician and computer scientist at Bell Labs.
He contrasted the mindset of research versus engineering with this specific distinction:
In science: if you know what youāre doing, you should not be doing it.
In engineering: if you do not know what youāre doing, you should not be doing it.ā
This simple formulation captures a fundamental difference between exploratory research (where the destination is unknown) and engineering application (where a destination has been chosen and the focus is now on delivery).
I believe using this distinction can be extremely helpful in modern system design and delivery.
In the āscienceā phase: any project should consider the available data and analysis to decide what can, or should, be done. For me, the ideal is that this phase creates outputs that feed into subsequent engineering phases.
In the āengineeringā phase: we should use the understanding gained in the āscienceā phase, with particular focus on:
- Functional requirements. What should any the system actually do? How should it behave?
- Non-functional requirements. These can include meeting constraints derived from the problem space e.g. technical, legal, financial, operational restrictions.
- Other outputs may include documenting preferences. In some systems we may prefer low-latency over scalability; in others, we may prefer resilience over multiple geographic regions.
In large companies, these functions may be done by different people, or departments, but in smaller companies and in startups, the engineering team often have to perform both activities.
Related Quotes
While Hammingās quote is the definitive on the āengineering principleā, many thinkers have expressed similar ideas:
The Fail-Safe Minimization Principle:
If you donāt know what youāre doing, donāt do it on a large scale.
This appears in Tom Gilbās Principles of Software Engineering Management and is used to advocate for small, incremental testing when faced with uncertainty.
W. Edwards Deming on process:
W. Edwards Deming is highly quotable on all matters of process and quality, but I found this an interesting variation.
If you canāt describe what you are doing as a process, you donāt know what youāre doing.
The āFit and Forceā Rule:
A common workshop adage often taught as the āFirst Rule of Engineeringā is:
If it doesnāt fit, donāt force it.
This is the physical worldās analogue to ānot startingā, or continuing execution, if the parameters or other context are known to be incorrect.