- The Tech Lead
- Posts
- The Left-Brain Fallacy
The Left-Brain Fallacy
Half a mind will not serve you.
You’re in danger.
Not the look-over-your-shoulder type of danger.
But it’s nevertheless another kind of danger.
One that haunts our lives.
It shapes our beings.
It always follows us.
It’s the danger of limited thinking.
All the while, you are feeling like you are in the right.
For engineers, this hits home especially hard.
We are told we are left-brain thinkers.
And that there is no way out.
The impression of others thus traps us.
As if we could not escape.
However, we can escape.
We should escape.
Here’s the plan.
And why.
The Blueprint
Software Is Not Left-Brain
Software is a creative industry sprinkled with logic.
Unlike some forms of math and science, where there is empirically only one correct answer, software often has many.
Whether it be in UI design details.
Or implementation details.
There is rarely a “right” answer.
Kraken Pro walks the fine line between enough information for both sides of the brain. Image from Kraken Pro website.
Sometimes, logic can help you deduce the best way of handling a problem.
Are you working with enormous amounts of data?
Is approximating an answer sufficient?
What are your operating constraints?
Answers to all these questions can be deduced by logic.
Others cannot.
How can you avoid information overload?
Can you make this operation “feel” faster?
What would a user expect as an outcome?
How versed is the user in the problem you are solving?
Answers to such questions might not be as straightforward, and while having information can help solve them, logic alone may not yield an answer.
Your Intuition
Software is built by humans and for humans.
This is harder than it sounds.
Your end users may not be technical. You must not forget them.
Your engineers reading your code are. You must not forget them.
Just like how we have two eyes, we have two sides of our brain, both of which are designed to serve and enrich our lives.
Thus, right off the bat, your work will be consumed by two sides of the brain:
one consuming the pretty interface
one consuming the technical inner workings
Hyperspace from Epic is a very left-brain-heavy application.
As mentioned previously, there isn’t often an objectively “right” answer to the problem you are solving, but you know the general aim and what options lie before you.
It’s like math:
1 + 1 = 2
And 3 - 1 = 2
And 2 + 0 = 2
etc.
In each case, 2 was our aim, but each option took a unique way of getting there. Which one of these that you felt was the most intuitive is subjective.
The same applies to software.
You might know the goal.
You might know the design.
You might know the user base.
But how you choose to get there is up to your intuition, striking a three-way balance between:
flexibility/adaptability
ease of use/understanding for the engineer
ease of use/understanding for the end user
The Worst Programmers
In my experience, the worst programmers are the ones with a math background.
(I mean no offense to any mathematicians. Your behavior may not be in line with this point whatsoever.)
Why?
Math is a left-brain activity.
Mathematicians exercise that muscle day in and day out.
Breaking that mold is difficult.
And their code reflects that.
As an example, here is an academic implementation of the quicksort algorithm:
void quick_sort(A,p,r)
{
if (r - p > 1)
{
q = Partition(A,p,r);
quick_sort(A,p,q);
quick_sort(A,q+1,r);
}
}
size_t Partition(A,p,r)
{
i = p;
for (j = p; j < r-1; ++j)
{
if (A[j] <= A[r-1])
{
swap(A[i],A[j]);
++i;
}
}
// the last place requires no test:
swap(A[i],A[r-1]);
return i;
}
Its weaknesses are evident to the common programmer:
Syntax naming inconsistencies.
Poor naming conventions: most are single letters.
It feels like a math equation that didn’t port well to code.
Yet it gets the job done and runs the quicksort algorithm.
While the bones are good, polishing it with good naming practices and making the syntax consistent would go a long way in making this code more approachable.
Unfortunately, most math-heavy minds tend towards the above example and often stray from self-documenting code. In this practice, the naming conventions often self-describe its purpose, like the sentences in a book.
Self-documented code accomplishes its purpose by solving a problem and communicating the engineer’s thoughts. All for the price of one.
The Best Programmers
On the contrary, the best programmers are often part-time creatives.
They love music.
They explore the arts.
They express their creative side.
An aptitude for the arts and music doesn’t necessarily guarantee success as a programmer, much like how a left-brain thinker may also struggle.
There are, however, connections which point to its repeated success. And it’s something that the best companies notice.
Google’s Pittsburgh, PA, office has a dedicated music room.
Google is known for attracting world-renowned talent. They know that to keep that talent fresh and engaged requires a few outlets.
Google’s Pittsburgh, PA, office has a dedicated music room. Why? Many of the high-performing engineers under their roof also have a knack for being creative.
In short, that means they are both left and right-brained. Google knows how to cater to and support both of those sides.
Self-documented code accomplishes its purpose by solving a problem and communicating the engineer’s thoughts. All for the price of one.
Success in software ultimately amounts to both sides of the brain being used.
The best engineers aren’t left-brain geniuses. The best engineers are well-rounded and can tackle more than just what fingers at a keyboard can solve.
The Way Out
New York Times best-selling author Chuck Palahniuk describes the brain like this: “Your left brain is a scientist. Your right brain is an artist. People live their lives out of the left half of their brains.”
Despite this diagnosis, we don’t have to live our lives using just our left brain.
Just like how we have two eyes, we have two sides of our brain, both of which are designed to serve and enrich our lives.
So, how does one break the barrier and use both sides? Break your habits and straddle the proverbial mental aisle by walking right down the center.
Walking is a great way to break the mental barrier.
For instance:
Step away from the keyboard.
Take a walk out in nature.
Listen to music.
Read a book.
etc.
Find what works for you outside of logic and code. This isn’t a strict prescription.
All of these suggestions exercise creativity.
All of these suggestions use the right brain.
All of these suggestions are often enjoyable.
This isn’t about a new routine that becomes a grind. It’s about broadening your horizons and leveraging all that your mind has to offer.
When you regularly exercise both sides of your brain in your daily life, it will naturally translate to your job.
Your mind is a gift.
Use it wisely.