The Lesson My Dad Taught Me That Directly Influenced My Success As A Programmer
A couple of years before he passed away at an age only a few year older than I am now, my Dad and I went for a long walk where he told me that in anything I do, I should do it Zack Zack. This slang he learned when he was a kid in Germany before the war meant to do everything exactly right.
When he was a young teenager he went to work as an apprentice to a cabinet maker who built things out of wood, including coffins. They had mostly human powered hand tools and built everything out of raw wood with only a little hardware. My dad learned the importance of making sure every design, part, finish and assembly had to be correct or the end result would be of poor quality; basically the quality of what you put into a project was the quality you got in the final result. This, therefore, was the meaning of the enigmatic slang (I never saw it written down so the spelling is a guess).
After the war my Dad got a degree in architecture and spent his life managing in the furniture industry in the US. Growing up we remodeled every house we ever lived with me as the #1 helper. In one house we replaced every single thing in the kitchen while still using it full time. I envy the people who live in those houses today.
At the dinner after I graduated from college my Dad sat in a chair that was wobbly and he spent the next few minutes trying to fix it which was pretty hilarious in a crowded dining room. He couldn't stand being around things that were broken, a trait I inherited in full. In my case of course it's software not wood and metal; I spent so much of my youth in remodeling I pay someone to do it today in my house!
Even though he passed away very early in my career his advice has stayed with me. I only want to deliver software that works correctly, even if it's only to QA. Being around broken systems or software or processes or even companies I always feel the itch to fix whatever is broken. My DNA won't allow me to sit and ignore it.
I worked at a game company for 2 years at a way below market wage just so I could fix the game client; I had played the game for years and was tired of my friends all giving up because of crashes and major memory leaks. I've taken other jobs simply because the company was broken or had bad software because I figured it would give me an opportunity to make it better. Sometimes you get to fix it; sometimes you don't or the company dies before you get a chance.
Writing software is never an easy task but I've managed to build my own internal process from early on that makes me confident I can deliver that Tsak Tsak end result. Everything I do is built around that.
Steve Job's dad was also a craftsman who emphasized the quality of his work, even on the inside, and had a major influence on where Apple is today because his son learned that lesson as well. To build something of quality starts before you even figure out what you are working on, how it's designed, built, tested, packaged and eventually used by a customer. You can't treat any step as a throwaway and catch up later; quality in every step results in quality in the customer's hands. Anything less won't.
That's the lesson I got from my Dad.