Feb 10 | Eric Smith With the rise of open source software came the commodization of application development. The move away from proprietary software solutions was something that I never would have predicted. But now it's a given that somebody, somewhere has attacked the same problem you have, and in all likelihood has open-sourced her solution. One of the interesting bits about the availability of code is that a kind of referendum occurs on the various solutions. People vote with their downloads. And as solutions get tried and beat up on, standards start to emerge for general classes of problems. And as Ian Murdock -- the creator of the Debian Linux distribution -- has argued, it is standards that open the gates to the competitive arena where commodization begins.

But as any reader of any blog knows, such widely available solutions lead to mind-numbing sameness. The ubiquity of certain conventions on web sites has certainly improved User Interface design over the years -- you know what to expect and how to get where you want to go without hunting. But the monotony of features may be of little help to an organization that understands the relationship with its audience and precisely how best to communicate with them. Typically these folks have a pretty good idea of how they would like to get across important information. And canned solutions often don't do the trick.

So even though many bread-and-butter programming tasks have mercifully been taken care of by armies of open-source programmers, there is still the unique puzzler that a client sends your way because they know what they need. These problems can be fairly challenging, and tax even the most flexible software infrastructure, but such features are how a client will talk to their audience in a way that is uniquely their own.