Sunday, August 1, 2010

Craft

A while back it occurred to me that not every software developer strives to be the best at their craft that they can be. Many don't even regard it as a craft at all, and see it simply as a way to make some money.

Now, I'm not talking about people that put in the 8-5 and go home because, admittedly, that's what I do. But, rather people that are too content with the status quo, or unwilling to change it if they're not. People that aren't opposed to learning new things, as long as they can do it by accident.

I'm not sure why this revelation surprised me, it seems incredibly naive in hindsight, but it did. I guess it's because to me, the interesting part of writing software has always been learning new things, pushing the boundaries of what's been done, and trying to do better than you did last time.

We're not always presented with new, groundbreaking opportunities every day. For example, my current project is an Android app where our biggest goal is to "make it like the iPhone." Not the most exciting thing in the world.

However, the interesting parts are in the details. We're using some great libraries to make testing the app easier, and challenging ourselves to make a cleaner app with better patterns than the last one we did. Everyone on the team is engaged in making this the best app it can be for our client.

It's not always the technical details that matter either. We've been giving thought to how we can improve communication with clients, how we can begin a project with the best chance of success, and how we can make sure we're on track as the project continues. I also feel like I've made huge personal leaps by learning how TDD/BDD development really works and how pairing can help make you better as well.

So who are you? Are you someone who is content with what's been done before? Or are you someone who constantly strives to push things and make them better one step at a time? It doesn't have to encompass your whole life, but it's a fascinating world we work in, and I urge you to take a look.