Tuesday, April 12, 2005


A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - Robert Heinlein

And its variation...

A programmer should be able to fix a bug, market an application, maintain a legacy, lead a team, design an architecture, hack a kernel, schedule a project, craft a class, route a network, give a reference, take orders, give orders, use configuration management, prototype, apply patterns, innovate, write documentation, support users, create a cool web-site, email efficiently, resign smoothly. Specialization is for recruiters.

Source: the web

Yes. I agree. One can no longer afford to restrict oneself to a certain domain and vehemently justify his/her ignorance in the rest, by calling oneself a specialist. Specialization is necessary. But not at the cost of losing resourcefulness. It is very vital to be conscious of the bigger implications.

A counter argument to this is on the quality issue. What good is it to have 100 averages? 10 specialists can do better than a 100 averages.

Well, the point that is being driven home is not about sacrificing quality for the sake of diversity. Quality is absolutely required. However, the point is about seeing the "big picture" in everything. There are thousands of cases where state-of-the-art technology has failed due to the absence of a market. A "NEED-MEANS-EFFECT" approach is necessary. Specialization comes after clearly identifying the need for a resource, the means for achieving it and the effects of realizing it. Not before that. Specialization must not be a veil. It is only a means.

No comments: