Weight plates for weightlifting in different sizes.

When lifting we always want to do it correctly, so that we do it right by reflex as we lift something heavy. No personal trainer will tell you that it is ok to be sloppy with the lighter weights. Damage is prevented by always using our legs and keeping the back straight.

What is the equivalent in software development?

Premature optimisation is a thing. There are also things that do not take that much time to do when we know how to do them. The first times we try to lift with our legs, or get the movement right with a barbell, it is tricky. It will take more time than if we just did it without care. But at some point it comes natural. And it is definitely easier to learn it with something that is also not the heaviest we can lift. We should be practising the skills we need to manage “heavy” code also on “light” code. Getting to a point where the sustainable way to write software is done by reflex, could save pain the same way that lifting with your legs does.


1. Nitsan Avni

I love the analogy! What falls into Lift with your Legs for you? What falls out? For me: version control, small steps, readable code, strong-and-fast feedback loops (tests). I guess the converse to that could be overshooting with software development practices.

2. EsterDaniel Ytterbrink

Thank you! I guess that everything that is not a trade off when it comes to cognitive load fits for me. Somethings you might need to add in moderation, unless it clutters your space. Most things though, can be done so that it never becomes too much, if done right. I would like to add automatic linting to your list, and configuration as code.

Related texts

A single frosted leaf with clear contours and veins.

TDD in the context of writing code to be read

Wunder Baum hanging from a car window (Known as Little Trees in most English-speaking countries)

Wunderbaum testing