>I struggle to codify what “coding as a craft” is.
It means different things for different people, but for me, it means:
Step one is getting it to work, step two is making is as simple/clean as possible (most people stop at step 1 it seems).
Take time to fix issues / sloppy code when you see it.
Ideally you want the codebase to look like it was all written by one person.
Carefully balance maintainability vs speed or cleverness.
Refactoring is a necessity and should be done periodically. Same with tuning.
Take the time to name your methods/classes/variables as accurately, verbosely and consistently as possible.
Test your shit for bugs before you give it to QA, for the love of everything holy. If QA sends something back, you should feel a little embarrassed.
Take the time to write useful comments. Focus on intent, that way the next person can know if the code is doing what it's supposed to or not.
KISS, DRY, YAGNI.
The best test is when I come back to my own code I wrote 6 months ago and if I say, "who the hell wrote this shit?!" and it's me, I need to clean it up.