If it’s too hard you’re doing it wrong.

Sharpening the Axe is Doubly Important In Software Development

Posted at — Aug 1, 2020

The ancients recognized the wisdom of sharpening one’s tools.

If the iron be blunt, and he do not whet the edge, then must he put to more strength: but wisdom is profitable to direct.

– Ecclesiastes 10:10

In more modern times the same sentiment is apocryphally attributed to Abraham Lincoln.

Give me six hours to chop down a tree and I will spend the first four sharpening the axe.

While these adages are obviously true, they have an extra meaning in software development. But what does it mean to use a dull axe? It means to do something that is harder than it would be with the proper knowledge or tools. For example:

But why is a it doubly important for programmers to use a sharp axe? The cost of a dull axe is not just the additional time spent on a particular part of a task. The additional cost is a context switch. Programmers are quite familiar with the how exhausting a yak shave can be. Context switches drain productivity and sap mental energy. Any time a dull axe causes you to switch contexts you pay twice – the initial time cost and the cost of switching back to the original context. Conversely, any time you sharpen the axe by improving tools or skills you gain twice – first in saved time and second in less context switches.