Master Software Crafters Let the Workpiece Be
When not faced with external constraints, good software craftspeople will evolve their software ‘inward’, ad infinitum.
They are excellent coders. It’s a joy to watch them work. They know about the intricacies of the domain, they know the infrastructure and have in memory the pains of rushed quick fixes and other tech debt. Left to their own devices, they will clean up, rethink existing approaches, experiment with new architecture. The project can be improved, and they know just how to do it.
But there is no natural end to this process. This could go on forever.
While good software craftspeople excel at hacking, master craftspeople also know when to stop and take a step back. They put the needs of users of their working software first. It’s clear everyone benefits from paid-off tech debt in the long run. But master craftspeople also know that there is always a trade-off.
So instead of improving, and making more generic, and re-usable, and safe what they have, they ask themselves:
What do the users need? How can I provide value?
And sometimes the answer is to step away from the keyboard, reach out to people, and solve blockers for progress in a way that is not related to code.