Scaling teams: Two strong oxen or 1024 chickens?

Seymore Cray was famously quoted as asking: "If you were plowing a field, which would you rather use: Two strong oxen or 1024 chickens?". While he was referring to the advantage of using a single processor solution over a massively parallel solution (which I happen to think he was wrong about) I'll steal this question to use in another context. Namely, when building teams to around technical solutions, you will almost always get a better solution if you use a limited number of smart, motivated, and experienced technical resources over a large number of folks who are inferior in one or more of those dimensions. In that regard, I think solving technical problems is a lot like plowing a field... it's actually difficult work that cannot be scaled by adding more low power resources. The problem isn't a scaling issue, it's a complexity issue.

Controlling two strong ox and focusing their effort is a lot easier than trying to herd 1024 chickens. If you've ever been around chickens, you can certainly appreciate how difficult it would be to get them to do anything in even a remotely organized fashion.

Secondly, if what you're trying to do involves lifting or pulling something heavy (like plowing a field), there is no amount of scale you can use with chickens to get the job done. They individually do not possess the power and (see above) getting them to do things in concert is impossible, more succinctly frankly put...you're using the wrong tool for the job. That having been said, when employing thought workers (programmers, project managers, etc), 1024 people who are not able to reason (or have no experience...it's actually either/or IMHO) on the problem domain are as effective as 1024 chickens plowing a field. Find your oxen and put them to good use...yeah, they cost more, yeah the implications of losing 1 ox are worse than one chicken, but getting things actually done instead of hedging in an irrational manner is a better strategy.

Comments

Popular posts from this blog

Please use ANSI-92 SQL Join Syntax

The difference between Scalability, Performance, Efficiency, and Concurrency explained

the myth of asynchronous JDBC