My dad was a deep, analytical thinker, designer, and problem solver. He explored issues laterally from all angles before honing in on the best potential solution.
He talked often about the importance of understanding the first principles of a problem—often in relation to mathematics but the concept applies to most challenges in everyday life.
When my brothers and I were young, Dad would often tell a story about a test he sat in school. The test was long and difficult and he realized he was not going to have time to complete the last problem.
So, instead of taking the time to work through the complex steps required to solve the problem, he wrote a quick explanation of how he would do it.
He got full marks—because he was able to clearly explain his complete understanding of the problem, which showed that he would be able to solve it correctly.
Incremental vs. exponential learning
My son asked me the other day if Siri is programmed to know the answer to every math question we ask. It was a good question and I explained that Siri doesn’t need to know all the answers—because “she” knows the first principles of how to solve problems.
When faced with something unknown—a new app, new device, challenging coding problem, UX usability conundrum, staffing inefficiencies, relationships—we can either study the problem specifically to come up with a precise solution; or, we can step back and study the overarching principles to come up with a solution that will help us anytime a similar problem arises.
I often refer to this as incremental vs. exponential learning.
When I get new software or adopt a new app, one of the first things I do is click through all the menus and settings to get a quick overview of what’s possible. When I later wonder how to do something, I’ll have a vague understanding in my mind that there was a menu or option for that and a quick click around will often bring me to the right place.
Or, if I don’t know how to do something, I know how to query Google. If I don’t get what I am looking for the first time, I know how to restructure my query and approach it from a couple of different angles until I find the answer I am looking for.
Most people tend to approach problem-solving very specifically.
We are taught in school to memorize and recite what we have learned. We learn by “cramming” knowledge into our heads—just long enough to be able to use it in a test.
I suspect if you test most students six months or a year later, they will score very poorly—because they understand the specific solutions to specific problems but not how to deal with exceptions and edge-cases.
More exceptions than rules
In coding, a new developer might be told not to use a certain method—which might be good advice most of the time.
There will be countless other similar “rules” or recommendations to take on board, and they might be very good at remembering them and following them when they fit neatly into the requirements.
When they come across a situation where the particular “forbidden” method might, in fact, be the best solution, however, they will remember “the rule” and come up with an elaborate workaround to avoid breaking the rule—forgetting that one of the principles of good development might be to keep things simple.
They might be good at listening to instructions and retaining knowledge; but, they will learn and grow incrementally. And, they will require constant instruction and supervision.
If we adopt a more first-principles mindset, we will pause to understand why one shouldn’t use a particular method—and when it might in fact be appropriate.
There will always be exceptions to the rules, and, when the time comes that it makes good sense to break the rules, they do so—because, in principle and at that time, it is the best solution.
When documenting operational systems and processes, we can draw up elaborate diagrams—with rapidly-increasing complexity—outlining every step for every conceivable scenario. We will never account for every exception—but we can try.
Or, we can jot down a few numbered lists of rinse-and-repeat steps addressing the core principles—with, perhaps, a couple more short lists of steps for how to approach exceptions.
Detailed, complex step-by-step diagrams are time-consuming to create, maintain, and understand—and difficult to memorize and adopt.
If we can articulate and teach the principles of a system or process, anyone can adopt it without needing rules, time-consuming teaching, micro-managing, and/or constant hand-holding.
If we adopt a first-principles mindset, we tend to learn exponentially. We take time to understand the foundational principles of the problems we are setting out to solve—rather than the specific rule of the specific instance. As a result, we are more likely able to intuit the exceptions and edge-cases—without needing to consult the “rule book” or continually ask for help.
If you’re building a people-first organization, you will grow faster and require less operational oversight if you develop and encourage a first-principles mindset in your team.