Kernighan’s Law and Product Design
The importance of designing products and programs for simplicity, consistency, and maintainability
Kernighan’s Law is named after Brian Kernighan, a computer scientist who co-authored the book “The C Programming Language.” It is a fundamental principle in software engineering. Simply put, Kernighan’s Law states that debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. Kernighan’s law highlights the importance of writing code that is easy to understand and maintain, rather than trying to be overly clever or complex. As MIT researchers Harold Abelson and Gerald Sussman (1983) famously put it:
“Programs must be written for people to read, and only incidentally for machines to execute.”
This law has implications for product design as well, as many of the same principles apply to creating a product that is easy to use and…