Well, it's been a few days since I blogged. I've been bogged down with finishing up a Silverlight project for a soon to be former employer. Back into private practice. Woohoo!
Something that's been on mind lately has been the issue of self esteem among software professionals. I have a really close buddy of mine, who is relatively new in the world of high powered programming enclaves. He was so intimidated by his co-workers 'great knowledge' that he was effectively unable to do his job well without fear, trepidation, and generally low self esteem.
After an extended session of talking about the spiritual and philosophical issues at the root of his current dilemma, he concluded that maybe 'he wasn't cut out for this [software development]'. "But, you're a fine programmer" I countered. After much pep talk, he felt better, but his lack of joy at the time actually convinced me to address this issue in Meta { ! } Think.
For the record, everyone can do something well. Software organizations, like any other, require a wide swatch of skills and abilities to be truly healthy. As an example, take Microsoft. They have their prime time players who are the face of the organization. Great visionaries who steer the technical direction of the company. Great computer scientists who write and blog about all kinds of arcane subjects and are the center of attention at every software conference. 'Gee', you think. 'I wish that was me'.
Infamous Microsoft Example
Well, remember that these folks have the job of strategic thinking. They are truly looking at the whole, or a big chunk, and not the specifics. These are the folks who think strategically and drive Microsoft's long term goals. Think Bill Gates. Think Microsoft Research. Think about any Microsoft superstar.
Now, can Mr. Gates do functional testing for Server 2008 subsystems? Maybe, but I wouldn't want him on my Server Test team. I'll take the person who has successfully and consistently found hidden defects that even unit testing failed to find. A loss of sales due to product defects that my team finds, even with Mr. Gates on the team, is a failure. So, who's more valuable?
Ah, you say. Bad comparison, Zeke. Bill Gates - hands down. At least we could start another company with him and get rich. Lol. Maybe. But in the focus of this hypothetical, let's think about this. Do this search on Google: http://www.google.com/search?hl=en&q=bill+gates+windows+crash&aq=1&oq=Bill+Gates+windows&aqi=g10 Now, I ask you. Who is more valuable to the organization?
Look at all of the damage caused to Microsoft by this now infamous event. Notice Apple gleefully pounding Microsoft on this issue. Heck, a new series of Mac vs. PC commercials was born out of this type of incident. This was not the first time Windows has embarrassed Microsoft because of something that escaped failed functional testing efforts. Now I ask you - who's more valuable?
Advice
Well, it depends on the situation. And that is my point. Figure out what you do best and put yourself into the right situation that needs you! If you are best with competencies that require skills a foot wide and 20 miles deep, like targeted development niches or functional testing, then focus on that. That is your fit in the IT Ecosystem. Be proud of it and feel good. Heck, you could have even saved Microsoft a lot of pain.
Consider this advice I found in "The Message", by Eugene Peterson:
Galatians 5:26 (The Message)
25-26Since this is the kind of life we have chosen, the life of the Spirit, let us make sure that we do not just hold it as an idea in our heads or a sentiment in our hearts, but work out its implications in every detail of our lives. That means we will not compare ourselves with each other as if one of us were better and another worse. We have far more interesting things to do with our lives. Each of us is an original.
Amen to that. ;-)