Being Selfish

November 15, 2011

Dear Reader,

I must confess a deep dark secret of mine. This blog… it’s not about you. Don’t get me wrong, I appreciate someone out there reading what I write – it keeps me honest and motivated to continue writing, but I have my own selfish reasons for posting to this blog and setting a goal to start writing every day – the most obvious of which is to improve my own ability to communicate. Of course, communication is two-way, and I’d like to think that someone out there might learn something from my musings, but I’d like to be clear about my motivations for doing this. I want to get better at writing, and I want to become as prolific as some of you. The best way I could imagine to do this – to read and write about my craft each and every day, to keep up to date on the newest technologies and innovations and to keep working hard to accomplish those goals because I know well that none of you are sitting still.

As a young developer, I am very much playing catch-up. I’m actively trying to gain mastery in a variety of areas to improve myself and provide more value to the company. Though I feel I do more harm than good for the projects in which I participate, still I stand on the shoulders of giants. I build on what the architects before me have created, pulling as much knowledge as I can from the existing system and from the act of completing tasks in the code base. I use my own selfish motivations to do some good and continue learning all the while, and every task I complete I am able to contribute even further.

Everyone is motivated by how things will affect them. I approach each problem with my own preconceptions and desires for an outcome; I’d love to believe that these preconceptions and desires always match those of my company and my users, though I’m not so naive as to believe it. I know that any number of compromises are made along the way before it really reaches my plate as a developer, and it’s my job to resolve what I’m given in a way that is acceptable to all parties.

Being aware of the differences between the interests of your client and your company will make you a better developer. Though it won’t mean that the code you write will be more elegant, your ability to deliver what the client needs (note I didn’t say ‘wants’) should be vastly improved. Knowing what to build, is often a more challenging task than actually building it. It stands to reason that the more involved one gets with the users, the more they can understand their needs. Using the system you build is a good first step (also known as dogfooding) to truly understanding your users and bridging the gap between their wants/needs and your wants/needs.

So despite my selfish desires for this blog, hopefully this content will be useful to someone out there. And even if no one reads this, I’m more than happy to continue creating and making posts, if only due to the belief that my continued writing will make me better. I like to think that I’ve turned this selfish means of communication into something that provides some value. Learning to do the same for all your goals might earn you a support group of your own, or better yet some fans. Just keep turning your actions into daily wins and it’s hard to go wrong.

So with that, I wish you the best of luck in finding the causes for your own motivations and turning those desires into little (or big) wins.

Sincerely,

Nathan L. Sickler
Software Engineer