One Simple Trait That Will Advance Your Software Career
By: Todd Davis
Tags: Technology, Programming, Business, Productivity, Self Improvement

Software engineering can be an absolutely thankless job. Oh sure, it has its perks. You get to be creative and solve problems, and there is a beauty and elegance in well written code sometimes that can be hard to describe to those that don’t speak the language. Where we were once portrayed almost universally as pocket-protector-wearing, tape-on-the-glasses nerds, Hollywood now depicts us as elite hackers that can sit down at a never-before-seen terminal and instantly predict the passwords to any government agency in the world, and find a way to copy and then delete their entire database onto a USB drive in under 60 seconds. I wish. I don’t think I could hack my own laptop let alone anyone else’s, and some days it can take me more than a minute just to copy some Word documents to my USB drive.

The reality of being a programmer is a bit less sexy than our Hollywood counterparts however. Our bosses and co-workers don’t give a damn about how elegant our code is. They don’t understand that we are asked every single day to estimate how long it will take to code features and fixes that we have absolutely no idea about until that very moment. Frankly, we’re often asked to do things by people that have no idea what they are even asking us to do! Our worth is often measured by our ability to crank out code at a record breaking pace, and our willingness to work insane amounts of hours doing so. Impossible deadlines are common. Work/life balance can often be non-existent. And as we all know, one “aww shit” can wipe out volumes of “atta-boy’s”. At the end of the day, it’s your job to produce, and unlike sales-people and executives, going above and beyond doesn’t often net you a trip to the Bahamas, a gold watch or a profit-sharing check. In fact, working harder usually only ends up raising others expectations of you, and when you fall short of that new bar you just set, you end up looking and feeling like a slacker.

We all look at people like Steve Jobs, Bill Gates and Mark Zuckerberg, and think that if we were just more talented, more creative and more driven that we’d be more successful at our jobs. We stay up until the wee hours of the morning learning the latest new frameworks and technologies, spend entire weekends refactoring our core libraries to be faster and more efficient, and in many cases we end up neglecting our own needs, friends and families in the process, and for what? I can’t begin to tell you how many times I’ve bent over backwards to get my code done and checked in, only to be met with frustrations and complaints from my bosses and co-workers, rather than the kudos and rewards I was hoping for.

“Why did it take you so long to code that new feature? Why did QA find bugs in your code? Didn’t you even test anything? And why aren’t we using <insert latest beta technology here> in our app?”

It’s easy to get defensive when people call our babies ugly, and when our hard work and sacrifice is rewarded with negativity and a lack of appreciation. Even when dealing with team members, sometimes simply pointing out an overlooked issue in code, or requesting a small additional feature can net an aggravated and sometimes accusatory response from the person who coded it. It’s not a personal attack however. It’s just business. When the widget doesn’t “widge”, and the “foo” is missing a “bar”, it’s not the fault of the person that found the problem, nor does it constitute an attitude problem on the programmers part. How we respond to the questions and complaints of others, our co-workers and clients alike, will have a huge affect on how our value to the company is perceived, and ultimately, how far we can go in our careers.