0

Spell it ouT


Have you ever been pissed off at yourself, but felt pride and accomplishment at the same time? Not so long ago I wrote a blog post about my thoughts on code quality. I put a lot of effort into trying my best to articulate the relationship I have had with clean code since forever. The article turned out fine, but looking back now, I would have given it an okay-ish rating. It still feels like I didn't reach a satisfying conclusion and now I know why.

I spoke about my attachment to good coding practices and how that translates to longterm benefits. Unfortunately the way I see it is that you have a tradeoff to make. A tradeoff between personal values and that of a company. Making stuff robust, I believed to be antithetical to fast feature delivery. It takes time to build good software, but it feels just so right to do it. The feeling is somewhat akin to the nesting instinct of taking care of your home and feeling secure. Rushing towards the finish line usually does not give you that. It does however make your employer happy.

The old me would have told you how I am bothered by what I consider to be "ugly" code. But no more! After I released the original post into the wild and talked it over with friends, I started to really think about it yet again. Few short weeks went by and and here we are now. I feel great, I delivered more features on time than ever before. Heck, I even went the extra mile and did some work off hours. Made some nice dev tools for myself and my coworkers too. I'm just so dang happy and it's all because I finally seen the light, man!

"What changed, J?", you might ask. Well, dear reader, I wrote a blog post about it. I spelled out my internal struggles. Loudly and proudly. In doing so I got a new outlook on life. I was finally able to shift my focus and to a degree reengineer my developer persona. I see the path so clearly now, and it's not due to 5mg of dried up liberty caps. No. It's because I was openly honest about myself to the world around me. It was a humbling experience.

I'm not throwing out the entire playbook. I still feel the need to care for code aestetics, organization, modularization and all these other things. But I no longer feel the weight on my shoulders, to having to compromise every day. My mind is roaming free and I'm starting to consider the possibility good code and fast development do not have to be worlds apart. I feel like I have a say in the matter for the first time. It didn't cost me my passion for programming, rather it had invigorated it. I hadn't felt such a rush in years. I got to be able to focus on other important things as well, like knowing how to pull in company resources, when to draw the line, how to be more assertive without being a total dickhead, empowering my coworkers etc.

It's a sweet and sour feeling. If only I had just written that blog post, or talked to someone about it sooner... Thinking like that brings you nowhere. You've gotten so far buddy. You skip over some steps and occassionally you hit a brick wall. In the end what matters is perserverence. Do what you think is good for you. Be open & honest, stay positive and don't be afraid to make mistakes.

You miss a 100% of the shots you don't take.