/ notes
← all notes
engineering 3 min read

Interesting Concept I Picked Up — Eliminate Stupid Mental Effort (ESME)

I discovered Andela's Eliminate Stupid Mental Effort concept in 2019, a refreshing perspective for Nigerian developers. ESME addresses the unnecessary mental exertion we endure daily, much like enduring Lagos traffic.

Sometimes in 2019, I stumbled on Andela Best Practices on GitHub and, for me, it was the closest you could get to an Andela education if you did not pass through Andela.

One of the very interesting concepts in their best practices is Eliminate Stupid Mental Effort (ESME). I found the concept profound because it recognizes the environment we live in as Nigerian developers and the things we may have internalized while growing up in Nigeria that could affect the way we work.

To understand this concept, you first need to understand stupid mental effort.

Let's look at a typical Lagosian life. Some people say in Lagos it is 5-9 and not 9-5.

You leave your house very early by 5AM to beat traffic and get to work on time. You struggle to enter public transport. Then you spend about 3 hours in traffic, and going back home can be even worse.

As inconvenient as this way of life is, Lagosians have become used to it because this is what they experience constantly and it has become the norm.

I remember a conversation with my friend who was in Rwanda for grad school. She complained that she could not get used to life in Rwanda because things felt slower compared to Lagos.

The problem with getting used to inconvenience is that when things become convenient we think something must be wrong, so we tend to do things the harder way.

What are the possible stupid mental efforts you can encounter as a developer?

  1. Using HTTPS instead of SSH to clone your repository. When you clone with HTTPS, every remote Git operation asks again for username and password. That repeated friction can be avoided by cloning with SSH.
  2. Manual testing and deployment instead of using a CI/CD pipeline. Manually running tests and deploying code is time-consuming and error-prone when it can be automated.

Andela puts it strongly: if you bring a mentality of being okay with inconvenience, or stupid mental effort, to your job as a software developer, you will never achieve greatness.

How do you avoid wasting your mental energy on stupid mental effort?

You must enter the lazy programmer mode where you automate repetitive activities that waste your mental energy or find alternative solutions that make you more productive.

Which other stupid mental efforts can you think of, and how do you think we can address them as developers?

comments