Humble Insect

If SpecializationIsForInsects then I'd very much like to be a HumbleInsect.

Those who feel like me, please join the list. Or should we add it to MinoritiesOnWiki? --CostinCozianu


Some time ago when I stumbled on SpecializationIsForInsects non-sense I wrote a page proud insect as a knee jerk reaction to the eggregious AntiPattern promoted in that page. Later I grew some more, learnt better and had to rectify the idea. This page is in honour of those who desire to be HumbleInsects rather than the concepts promoted by Karl Marx , Robert Heinlein and so many other less notorious fellows who fell into the delusion of universal competence, more aptly named as UnconsciousIncompetence.


Those who think that specialization should be only for insects (or recruiters for that matter) seem to miss the point that you can't achieve any real performance in the modern world without specialization. Unless they think of themselves as some genius, the following quote is utterly unsustainable:

A programmer should be able to find a bug, market an application, refactor a spike, lead a team, architect an application, hack a kernel, schedule a project, build a database, route a network, give a reference, implement user stories, analyze user stories, work in a team, work alone, use patterns, innovate, write documentation, have a real life, create a cool Web site, email efficiently, resign gracefully, AdmitIgnorance, and keep on learning.

Yes, you can do all of that, some of them are trivial tasks, but if you are able to do ALL OF THEM at a performance level, you must be a genius. As a matter of fact AdmitIgnorance tend to favor the amateur hypothesis. If you AdmitIgnorance in databases (for example) you have absolutely no business in building a database. You should first educate yourself both in the database theory and in specific database implementation issues until you are no longer ignorant. By the time you are able to do that, you will no longer be able to hack the latest kernel, or you will no longer be able to create a cool Web site.

"Keep on learning", on the other hand, is good, but keep on learning what? Everything? Keep your learning within your area(s) of expertise. -- AnonymousDonor

But that ignores the fact that for many tasks, you simply don't need to be an expert. If you're setting up an IT infrastructure for 4 people, you need to be able to route a network, but you don't need the same sort of competence that an IT professional at a Fortune 500 company has. If you're writing an internal bugtracker (ignore for the moment the possibility of buying one), you'll need to build a database, but you don't need the same expertise as someone setting up inventory management for Dell Computers, for example.

Startups are the quientessential example of SpecializationIsForInsects. There, you will have to wear a dozen different hats, and do them all competently, because a startup doesn't have the resources to hire a dozen different people who are each tops in their field. Doing so would be a massive waste of resources, in fact, because the tasks they'd have to do are just shadows of what they're trained to do.

Most of the growing pains that startups face come when they have to move from a team of generalists to a team of specialists. By and large, startup founders and early employees are very smart people - they have to be to perform competently at a dozen different tasks. But they usually are not the best-of-field in any one of their specialties. So as the company grows, they have to hand off responsibilities to trained specialists, who often aren't as generally intelligent as them but are more qualified in the specific area of their jobs. That's why startup founders often can't resist meddling in their subordinates' jobs, driving down productivity.

In fact, many of the generalists that do work at startups do keep their learning within their area of expertise. The difference is that "area of expertise" is the particular problem domain that they're trying to service. In order to be useful in that problem domain, they need all sorts of ancillary skills (engineering, finance, sales, marketing), which they don't need to be an expert in, but they do need to be competent in. -- JonathanTang

Software engineers in startups or small software companies are a good example of generalists. I've been there, and done that. When I write these I'm a kind of generalists in a huge company and who knows what I'll be next. Still, rather than letting their "generalists" hack a kernel, startups will be well advised to contract or hire a specialized kernel hacker. And that hacker, I can guarantee, might be able to slap a simple database schema for bug tracking or blog support, but would hardly be competent to fine tune an Oracle database or to manage a largeish database schema without spending an inordinate amount of time getting up to speed in this different domain. The problem with SpecializationIsForInsects is that it goes well beyond declaring that generalists are useful, it promotes the myth of the CowboyGeneralist?. --CostinCozianu


Individuals all have different strengths and weaknesses. But a basic ability of each of these skills isn't hard to establish. Such breadth greatly augments the expertise in which you are deep, because it lets you relate it more intimately to the work and needs of others. No genius required - just willingness to get involved and keep up. Otherwise one day you'll wake up to find yourself driving taxi cabs with the other CobolProgrammers.

Still, this argument doesn't suggest that one shouldn't specialize, which is the intended meaning of the derogatory meaning of SpecializationIsForInsects. If you try to know a little of everything you'll end up knowing nothing at all.

And specialization doesn't have to be in one narrow domain. It can be in several related domains. You can't know everything. You can't even know a little of everything even in what was before a tiny domain (let's say mathematics). Even with the general culture you have to make choices. The body of human knowledge is well beyond what any human being can even superficially know. Even if we come down to software, hardware, computer science, and related domains, it's still beyond our power to grasp. So even if you want to put more accent on breadth of knowledge versus depth of knowledge, you have to make choices on what exactly do you want to know.

Try Mr Barnard, RoomTwelve.


I think SpecializationIsForInsects is as extreme a viewpoint as ExtremeSpecialization? is. I see neither one as an desirable goal, but as illustrative border case. FindingTheMiddleWay between these two is then just a matter of personal choice. -- GunnarZarncke


EditText of this page (last edited November 14, 2005) or FindPage with title or text search