The place: London. The time: Around 1890.
Imagine a medium sized room, lined with huge shelves filled with dusty books. The lights are dim, the air is heavy with cigar smoke. Outside the last shred of daylight is fading away.
In one corner of the room, you spot two large leather armchairs and a small table. On top of the table, two half-full glasses of Whisky. In each of the armchair an elderly person.
One of them opens the mouth to speak
«If I were in charge down there in South Africa, we’d be so much better off – running a colony just can’t be so hard as they make it out to be»
Of course that elderly guy in the little story is wrong. The problems are way too complex for a bystander to even understand, let alone solve. More than likely he doesn’t even have a fraction of the background needed to understand the complexities.
And yet he sits there, in his comfortable chair, in the warmth of his club in cozy London and yet he explains that he knows so much better than, you know, the people actually doing the work.
Now think today.
Think about that article you just read that was explaining a problem the author was solving. Or that other article that was illustrating a problem the author is having, still in search of a solution.
Didn’t you feel the urge to go to Hacker News and reply how much you know better and how crazy the original poster must be not to see the obvious simple solution?
Having trouble scaling 4chan? How can that be hard?
Having trouble with your programming environment feeling unable to assign a string to another? Well. It’s just strings, why is that so hard?
Or those idiots at Amazon who can’t even keep their cloud service running? Clearly it can’t be that hard!
See a connection? By stating opinion like that, you are not even a little bit better than the elderly guy in the beginning of this essay.
Until you know all the facts, until you were there, on the ladder holding a hose trying to extinguish the flames, until then, you don’t have the right to assume that you’d do better.
The world we live in is incredibly complicated. Even though computer science might boil down to math, our job is dominated by side-effects and uncontrollable external factors.
Even if you think that you know the big picture, you probably won’t know all the details and without knowing the details, it’s increasingly likely that you don’t understand the big picture either.
Don’t be an armchair scientist.
Be a scientist. Work with people. Encourage them, discuss solutions, propose ideas, ask what obvious fact you missed or was missing in the problem description.
This is 2012, not 1890.