Software Development: A Woodworkers Perspective (Part 3)
“Every Cut Counts”
Square Up
You’ve mapped out the project. Gotten all the boards roughed to shape. A few cuts here and there, a little glue, and we can call this project complete…
Don’t get ahead of yourself.
Wood moves. Here in Kentucky, the humidity and temperature dramatically change… daily. Even after surfacing the lumber it’s always a good idea to double check with a square. Unless that is, you are after a wobbly, half-jointed, paperweight. Square those pieces up. You may have spent time with each section. You may have paid extra attention to how every corner of each piece looks — But put them next to one another and suddenly what looked dead square is now nothing but a rhombus-shaped coaster. There’s no unseeing it. If you had kept building the finished piece would have been twisted, leaning, and barely functional. When working with each piece keep the others in mind. Remember how they interact and don’t lose sight of the end goal.
Every Cut Counts
With every cut for this box, sawdust was made. Every cut I swept the sawdust into a container and left it sitting at the end of my workbench for one reason — mistakes happen.
Along the way, mistakes will happen. Don’t ignore them… Learn from them. In the photos below you’ll see a few examples. I didn’t quite saw to my line. When marking a line with my square… it moved. Even when cutting “exactly” to the line there were a few gaps when piecing the boards together. It’s rough, you spend a lot of time trying to be accurate, planning to make the perfect piece, but you’re human. At this point don’t freak out. Examine what went wrong for next time. How can you improve? This is the teaching stage. It’s also the stage where most give up. Keep your chin up, keep pushing forward. As a woodworker, that collection of sawdust at the end of the bench — experience. Mistakes will always happen. Patch it the best you can, and move on. In the end.. they’ll never notice. Every cut counts, good and bad, You will learn from both.
The Crossover
As a developer, don’t get ahead of yourself. In the same way wood moves, Code can grow and change over time. That feature you built locally, that’s perfect, now has to be merged in with the rest of the beast. Remember not to lose sight of the end goal. At some point, you’ve probably heard the expression “can’t see the forest for the trees”. Don’t build rhombus-shaped code. If it looks twisted and forced it probably is. Find way’s to keep yourself and code in line with those around you. The thought should not be “This is how my feature works” but “This is how my feature can be used by others”. For the solo developers out there your future self thanks you.
…and remember mistakes happen… Learn from them.
Every keystroke, every thought, every countless frustrating hour you spent trying to make something work. It matters. You matter. Keep your head up. Keep engaged. Use your resources and ask for help if you need, but don’t get lost in the void. Don’t become so focused on the one line of code that you forget the big picture. Mistakes will always happen, bugs will always appear, patch them the best you can and learn from the experience. Keep yourself motivated. Five years from now, that bug won’t matter, but how you learn to react to them will.