Monday, September 10, 2007

What is Software Commoditization?

I was reading Stephen Walli's blog, as I often do, and came across one referencing a presentation by Brent Williams on the topic of "Open Source Business Models: A Wall Street Look at a Wild 2006 and the Prospects for Even More Fun in 2007", with the slides (PDF) posted here.

What particularly caught my eye was Stephe's comment about Williams' "tear down of the commoditization myth." After reviewing the slides, I see that Williams truly possesses a great intellect and analytical ability. I can only hope to see him make a presentation in the near future! However, I get the sense that when I use the term "commoditized" to describe cheap software bits, it doesn't exactly fit the term that he's tearing down in his slides. I would seem then that when he debunks the idea of commoditized software, we're actually talking past each other and arguing purely on semantic grounds.

My view on commoditized software has been that, with the proliferation of coders and more code distributed throughout the massive expanse of the internet, we see an emergence of low or no-cost programs, libraries, and other bits of code that other developers and IT professionals can latch onto, either as is or stuffed into a complex composite application. This model treats bits of code as reusable parts that a decent code jockey can then make use of, so that developers can bypass the grunt work often associated with coding and jumping almost directly into the more interesting work. The end result is a cheaper development process and, IMHO, downward price pressure.

This model assumes a bunch of stuff: 1. that the code is pluggable enough to be inserted into other software and 2. that it's of decent enough quality. Often, either or both of those statements are not true, which takes the developer back to square one of building everything from scratch - or does it? Williams' slides really made me re-think the whole term commoditization: is it the code or the knowledge of the problem's solution that has been commoditized? We can all imagine software as a pluggable commodity, but what if it's not the software itself, but rather the knowledge gained by seeing another solution and using the logic as a starting point?

While it's important to note that "commodity software" doesn't fit the traditional definition of commodities, I'm not sure how useful such word-splicing is. I suppose it's better instead to come up with a word that can describe "software depressed in price by an abundance of implementations AND implementors." I would actually argue that it's the latter that's of primary importance here - after all, doesn't the potential of others to implement a feature set depress prices just as much as an actual implementation? Do all ISV's build in this "fear of the near future"? And with the internet, that fear mushrooms when you think about the prospect of hundreds of knowledgeable people around the world *potentially* working on similar solutions as you.

Compare software and science - would you argue that the theory of relativity is a commodity? Probably not, but it's a known quantity. The practical aspects of relativity have been known for some time now, although the theoretical realms may still be under discussion - I actually don't know, not being a theoretical physicist. But this captures the essence of my definition of commoditized software - something that's been done and from which others have derived a basic understanding of how it was put together. The knowledge of relativity could be categorized as a type of intellectual currency with real value, just as the knowledge of software building blocks also has real value. Yet, no one assumes that someone who understands relativity is another Einstein, and no one assumes that those who understand software building blocks are Kernighan and Ritchie. Basically, I'm talking about the trickle-down effect as applied to knowledge industries, and software development is no exception.

So yes, commodity is probably a bad word, but there needs to be some sort of terminology for "been there, done that" or perhaps "several others are about to be there and do that."

Edit at 4pm PDT, by JM: added paragraphs 3 and 4 to explain in more detail the concept of commoditization

1 comment:

Cris said...

Google brought me to your blog as I was looking for a precise definition. Curiously, some of the translations in French for commoditization are "banalisation", which convey an idea of the "been there, done that" meaning. Maybe it's a word you can use?

If you want to get some brainpower on this definition, try english.stackexchange.com