Corn and Software

methodology

Sat Aug 23 17:18:00 -0700 2008

King Corn is an excellent documentary which describes the overproduction of corn in America. At the end, they dig into the question of why this surplus production exists. The summary is: in the first half of the last century, starvation was still a real threat for a substantial portion of the US population. Corn production was thus optimized for one factor: yield. This was a solution to the most pressing problem of the time. Nutrition, taste, and variety aren’t considered important concerns when people are starving to death.

A combination of government regulation and cultural momentum kept corn production working in overdrive long after the original problem was gone. Now we have new problems - obesity, diabetes, lack of nutrition in common food products - caused by the over-application of the solution to a now-irrelevant problem.

This happens in other kinds of systems, too. In a mature software system, there are always components and bits of code which solve problems that no longer exist. The existence of such code, and the need to maintain it, often causes problems of its own.

I’m very aggressive in chopping out code or even whole components (Orion once called me “Hemingway with an axe”) that appear to no longer be solving current problems. If whatever was cut does turn out to be needed, we’ll find out quickly; and revision control makes it easy to bring back. In my experience, 95% of the time something appears unused or irrelevant, it is.

Legitimate solutions to real problems that persist too long abound in every walk of life. Keep your eyes open, and don’t be afraid to break out the axe.