Be more than a developer
I do love a spirited debate. It seems that everyone I've had a relationship with suggests that I should have been a litigator because I love to argue. And hey, if practicing law wasn't 95% research and 5% arguing, I'd be all over that.
That said, I think it's important to have a general awareness of the world, especially in business. A lot of techies and developers don't seem interested in that, unfortunately. Take this recent random Twitter exchange:
someguy: Why is #Zune website www.zune.net made in flash and not silverlight?...
@jeffputz: Why do people ask this question over and over? Because for a marketing site to move product you use what's most installed.
someguy: well then they could have it done in both SL as well as Flash.. atleast show it to the people who have it installd...
@jeffputz: For what purpose? How does that sell more Zunes?
someguy: true but atleast those blogs criticizing MS for it, wouldnt be written :-) ... it shouldnt always be ONLY marketing..
I probably wasn't being very diplomatic in this case, but my intention was to challenge him on the reasoning for making his initial statement. In this case, perhaps he was baiting some goofy point like, "Well if Microsoft doesn't use Silverlight themselves, then what does that say about it?" Great scandal? No, I think they just want to sell more Zunes, and that has nothing to do with platform religion or their belief in the product.
Every time I've hired consultants for project work, regardless of how trivial or complex, I've made it a point to try and get in their head to see if they understand just the fundamentals of business, and if they can work and design software with business goals in mind. I can teach someone how to use dependency injection or the control lifecycle, but I strongly believe that greater awareness about the business is a lot harder to instill in someone.
I freely admit that I'm a gear head (or is it bit head?) and love to mess with stuff. But I also believe that it's critical in your every day work to ask yourself if what you're doing adds value. It's OK to not be sure about the value in cases where you're taking a risk. I'm not suggesting you have to buckle down and not try new things, but if you want to rewrite some component just because, ask yourself if there's some return you'll get for that action, and if not, I'd do something else.
The best developers have a keen awareness of the bigger picture across other disciplines. You can be more than just a heads-down code monkey.