At OSCon last week, I got an idea I'm calling The Rule of Seven[*]:
When you don't have one clear solution to a technical problem, you get seven.This pattern is all over the place:
We're also evolving as an industry. There are entire classes of problems we don't know how to solve, or solve well. Globally distributed architectures is one example. Having multiple competing solutions helps, because it we learn from each other and evolve over time.
Then there is the gratuitous proliferation, like Milton Ng described in his keynote last week. He wants to standardize his renderfarm on one version of RedHat, his vendors only support another version of RedHat, and RedHat's new licensing is moving towards pushing him towards a third version. It'd be nice if everyone could just agree on something that just works for the customer, but it's getting painful (and expensive) enough that it's almost worthwhile for Weta to plow some serious coin into open source development so they can run their lab on their terms, instead of dealing with dueling software vendors.
*: Not to be confused with The Rule of Four, which is something completely different