From time to time, I'm sure most people ask themselves the question "What am I doing with my life?" Why am I stuck in this dead end job? Don't I deserve better? Why aren't I writing that great novel? I should be trekking the Himalayas. I've never been to Paris in the springtime. In the IT world we seem to be constantly asking ourselves “Why aren’t I working on the next killer app that will change the world?”
Most of the literature I've read on this subject seems to contain the implicit message "It's because you suck." True, I haven't found anyone honest enough to actually phrase it that way but they do tend to say you aren't achieving greatness because you aren't trying hard enough. To an extent, that's true but if you really look at it as a logical proposition it doesn't hold up.
Greatness is a comparative term - high achievers look good because their accomplishments are so far above everybody else's. If everyone moves closer to greatness, the measure of what is great moves further away by definition. Even if everyone continually improves, only a small percentage will ever be regarded as truly great because they're great in comparison to everyone else.
This is not a clarion call encouraging people to be wilfully mediocre (or worse) but I am calling into question the attitude that "I will not be happy unless I am the greatest in my chosen field." It's good to aspire to improve but if we're all supposed to obsess about being the best then the unavoidable fact is 98% of us are going to end up disappointed. This attitude seems more prevalent in the IT industry than others. I remember a quote from the late 90's dotcom boom that the speaker doubtless thought was insightful and inspirational: "I don't want my obituary to say: He improved the company's e-commerce efficiency by 5%"
The only thing that pisses me off more that that sort of fatuousness is someone in a black turtle-neck and trendy glasses telling me the reason I think their concept sucks is because "I don't get it." When you look at it objectively, at least 80% of IT jobs are limited to this sort of achievement. IT development isn't a never-ending series of epiphanies and flashes of brilliance. For most people, most of the time, it's a long, slow grind. If more and more people achieve what they thought would be "life changing" moments then, conversely, less and less things will seem like they actually are life changing.
At some point, this perpetual urging towards greatness crosses over from being inspirational / aspirational to being downright cruel. I think everyone should always be looking for ways to improve and even the crappiest job can give a sense of satisfaction if done well. But face it - we aren't all going down in history and that fact alone shouldn't make us feel like failures.
This line of thinking was inspired by some recent articles that showed a "best of the best" approach being deployed in the real world to pretty impressive effect. At the smaller end of town, Joel Spolsky's posts on hiring processes at his company show a very well thought out way to get what he sees as the best people working for him. A post from Steve Yegge shows this quest for excellence being deployed on a huge scale at Google. It starts off by slagging off Agile development (which is really funny if you're a nerd like me) but the meat of it is a description of working practices at Google.
While Yegge's piece is my new favourite piece of writing on software development, it's also a little depressing. Just coming to terms with how far my work environment is from Google is tough. I'm not motivated enough to get a job at Google (arguably I'm not talented enough but I prefer to live in denial) and very few other workplaces will ever be run in a similar manner to Google. When I read of the "perks" etc at Google it really seemed that these were fundamental to their success. Google isn't successful in spite of their programmers being spoiled (by most corporate standards), Google is successful because their programmers are spoiled.
This sort of treatment is never going to be widespread, not because it isn't economically viable (Yegge paints a convincing portrait of this as Google's very reason for economic success) but because most workplaces suck. Most bosses simply couldn't stand treating IT staff that well. The majority of IT workers will have experienced resentment from both management and non-IT staff. Sometimes it's implicit, sometimes it's overt "why are you complaining? You already earn more than everybody else." This is despite the fact that basic economics shows that a worker is unlikely to be paid well if they don't provide commensurate economic benefit to the company (I'm talking workers, not management). Google looks like the decadence of ancient Rome to tight-fisted employers.
In the end, not only are most of us not going to be as spoiled as Google workers, we won't change the world either. A far more sensible approach would be to have realistic workplace goals and maybe even look for fulfilment outside of work (god forbid!) I know many people would argue that we should always aim for lofty goals no matter how unrealistic they are. After all, isn't it better to try and fail than to never make the attempt?
I'll repeat my previous point; I'm not actively encouraging people to be deliberately mediocre. But isn't someone who sets realistic goals and maybe even helps improve the life of one or two people going to be more fulfiled than someone who spends their whole life following a series of doomed, quixotic quests to save the world? If you have it in you to be one of the very top performers in your chosen field then it's a waste to not aim for the very pinnacle. I'm a big believer in setting goals that are outside your comfort - you're never going to reach your potential without setting a few goals that scare you.
But who exactly is served if we set ourselves goals that are so far beyond what is realistically achievable we spend our lives feeling like miserable failures?