Wednesday, March 16, 2011

On Doing the right thing

There are two truths about being a commercial software developer:

1) You are never really done
2) There is always someone who is not happy with you.

On the first item,  there never is really a time when you can put a bow on a product, frame it and hang it up, step back and admire and claim - "it is done!"  There are always more requirements to fulfill, refactoring to do,  defects to fix,  and crud to finish up.  Really.  You are never done.  You continuously fight architectural decay,  requirements burdens and general entropy.

The second item is what has been on my mind recently.  You really can't and don't make everyone happy in a software product.  There is always an opportunity to fault the defects, the process, the requirements gathering, the product management,  the user interface, the performance, the testing, the software architecture.  The bigger and more complicated the product, the more this is true.  

So what should motivate a commercial software development team?  Some teams or individuals are motivated by the coolness factor,  bragging rights.  Telling your buddies what cool algorithm, hack, stack or complexity you developed.  I know that as I look back on my career, I get a smile on my face when I think about some cool code I have slung in some very short amount of time that did some very neat things.  Bragging rights.  

Bragging rights are cool,  but those opportunities don't come very often as you are taking care of the 100th refactor, bug or UI tweak this month.

So, you know what conclusion I have come to over my career?  My motivation is to do the right thing, not please every person.  This means that when things aren't moving as quickly as you want, or you are faced with a problem, or client services wants something quick, I ask myself and my team "what is the right thing to do?"  Not, "what will make us look best?", or "what is easiest?".  If you focus on doing the right thing and not the political thing, or the thing that will make you look best, you develop pride in your work and this in turn gives you a reason to keep working hard and enjoy what you do.

It's not as easy as it sounds.  Doing the right thing means making a hard choice, or admitting you did wrong. It means courage to speak up and advocate, rather than being a passive participant.  It means being able to make a commitment and stick to it.  It means doing something you feel good about - not something that will make you look good in front of others.  Doing the right thing means being able to admit you may be wrong, and adopting a better practice that may exist in the industry or that someone else may by suggesting.

The great thing about doing the right thing is that you don't have to worry about who is happy with you or not, and you don't have to worry about office politics or petty things that creep into teams.  It means you can sleep good at night knowing you have done what you believe is the right thing.

No comments:

Post a Comment