Nov 23 2004

Software Classification

Ted Leung referred to Malcolm Gladwell’s ketchup essay in a recent post. It mixed well with other stuff that’s been on my mind. Why are so many categories of software crowded with half-baked implementations of rehashed ideas? Even among the good stuff, which is appropriate and when?

There are differing tastes, different contexts that demand different design and implementation tradeoffs, valid reasons for having packages with identical functionality but different licenses. There are several application spaces that are ridiculously crowded, like web application frameworks, CMS frameworks, and workflow/BPM systems. I think they could all use some clarification about which products are filling what niches. I like what Matt Raible has done
comparing Java web application frameworks. I especially like what Jack Herrington has done with classifying code generation software on There’s a section in the original camel book (Programming Perl) that describes different ways to optimize development: for time, space, programmer, maintainer, porter (wave a handsome tip under his nose), and user.

Maybe we can agree on some common language and classifications to organize the crowded application spaces.

The licensing dimension seems pretty well defined, perhaps because of its legal nature. The market leaders here seem to be GPL/LGPL, BSD/Apache, and proprietary commercial, in no particular order. Size of user base can range from individual to small workgroup to large enterprise. Some software is experimental, while other systems are mission critical. Issues of taste might be harder to articulate. The SEI has software taxonomies for quality measures and how software is used. Gartner has its magic quadrant with “completeness of vision” and
“ability to execute” for vendors.

I think it would be fun to use analogies from the food industry. Who wants to be the extra-chunky CMS software? The spicy gourmet process engine? The 64-ounce container of low-budget web app framework? Nevermind, that’s a cheesy idea…