Brush Your Teeth With Your Other Hand


A Revelation at the Dentist

Once, at a routine dentist appointment, the dentist remarked that they could see I brush my teeth with my right hand. How? To their trained eye and from their perspective, it was fairly obvious. To me it was a revelation. I had never considered that the mundane task of brushing my teeth could leave a lasting imprint on me. It was a small, seemingly insignificant detail, but it highlighted a powerful truth: we all have invisible habits that shape our world in ways we don’t even realize.

Think About It

What are some of your “invisible” habits? What do you do every day without thinking?

The Invisible Habits

We all have invisible habits, things we do without thinking. Brushing your teeth with the same hand every day is a perfect example. It’s efficient, but it’s also a rut. In software development, we have similar “invisible” habits. These are the ingrained ways we approach problems, the tools we reach for without thinking, and the methodologies we follow without question.

These habits can be beneficial, they create a shorthand for our brains to solve problems without having to expend a lot of energy. Our entire workflow is built on these habits, from the linear way we take a specification to code, to the way we use our IDE and build and test tools. But they can also be a hinderance when the landscape changes. And the landscape is changing.

An Invisible Note

The Shift in Methodology

The software development landscape has always been in a state of flux. However, the rise of AI and Large Language Models (LLMs) is a seismic shift. It’s not just a new tool; it’s a new way of thinking about and approaching problems. This shift in methodology requires us to examine our invisible habits.

Vibe-coding came into vogue for a while and then shifted to spec-coding which requires a completely different perspective on code. The way of working shifts to something that feels more like collaboration or pair programming. But the tools (currently) do not do that well with very large codebases. You need to talk it through the complexities and you need to know when to just do it yourself. But now the code you are working on is effectively a shared live document and just saving it is not enough; your collaborator needs to be made aware of what you did. Your coding assistant may even benefit from structuring your code in a semantically more meaningful way beyond the /src tree we all grew up with.

Don’t try to be polite with your coding assistant, but consider what it needs to be effective. What documents do you truly need to make your tools that read these documents, understand your project. What does your coding assistant actually cost and how do you optimise this expenditure?

These new, practical actions force us to examine our older, invisibly ingrained habits. Are we still reaching for the same tools and methodologies out of habit, or are we consciously choosing the best approach for the problem at hand? Are we brushing our teeth with the same hand, or are we willing to try the other one?

Some Habits Under Scrutiny

  • Get spec, init project, boilerplate db, code, test
  • Code in IDE, tests on console
  • Code, wtf output, Stackoverflow, docs, aha! Code
  • I work on this set of files by myself
  • /src/…

Brushing with the Other Hand

Trying to brush your teeth with your non-dominant hand feels awkward at first. It requires your full attention. You are forced to be present and deliberate in a way that you might not have been for years.

The same is true for breaking our software development habits. It might feel uncomfortable at first, but it’s in this discomfort that we find growth. It’s how we learn to adapt to new technologies and methodologies. It’s how we stay relevant in a rapidly changing industry.

This advice is not new, but it has come into sharp focus. In the age of AI, the most effective skill is no longer using a specific language, library or framework; it is the ability to adapt and unlearn habits, even the invisible ones.

A Warning

Don’t mistake the comfort of habit with the effectiveness of a tool or methodology.

Loading comments...

Leave a Comment

This will be shown with your comment.
Maximum 2000 characters. HTML is not allowed.
Author's photo

About Heinrich Venter

A technology leader, he is passionate about mentoring developers and growing teams in learning environments that foster impactful solutions.