For more than 50 years, the IT industry has followed a well-known script associated with emerging and evolving paradigms: First a product or category is introduced, then it gains wide market acceptance (or dies on the vine), followed by a long period when vendors and customers seek out ever more efficient ways to produce the thing.
Ultimately, the category becomes so important that all must have it, and the only way to make money is to sell to very large, mass markets. That's commoditization for you.
In IT there have been several cycles of birth and eventual commoditization, and the trend is for more. If you've ever been to a Salesforce event, you know that there will be at least one slide in the deck addressing the transition from mainframes to networks to the Internet to social media and cloud computing.
These days, the last stop on the tour seems to be not just the cloud but clouds, such as financial services, healthcare and education. Siebel once had more than 20 vertical CRM products, so I expect more clouds to come -- and not just from Salesforce.
Commoditization of Coding
The cloud- or industry-specific approach is another facet of commoditization involving product line extension -- where once there was one SKU, now there are many that give a vendor the ability to further penetrate the market.
Prior to industry-specific CRM, cloud computing or Software-as-a-Service was the ultimate commoditization of IT. Pay by the drink, don't buy anything other than your personal device, let some other party pay for the back-office administration and acquisition costs. It's hard to see how you commoditize further, but who knows?
Despite all this, one area of IT has been resistant to the commoditization cycle: application coding. Through all kinds of disruptions in hardware, networks, storage and even computing language introductions, the core reality of the technology industry has been that no matter what, someone had to write tedious, bug-ridden code to keep all the balls in the air.
Free for All
We're finally at the point in technology commoditization where that's changing, and there are two good reasons.
First, the demand for software is so great that we've passed the point where we can expect to provide for our software needs with traditional approaches. Second is the growing belief that software, like music before it, should be free or virtually free, so it's becoming hard to see how conventional coding will pay the mortgage in the future.
The solution that's becoming ubiquitous is application generation, but alone, that's not enough to make software commoditization a reality. Generating an app or even a whole suite of them will only get you to the point where you can provide for your own needs. That's a problem because it means you need to be more or less self-sufficient.
Ideally, if software is free or nearly so, there should be no issues with sharing template applications that almost anyone could tune for an organization's specific needs, using appropriate tools for the job.
All of that would significantly alter and even disrupt the process by which we get software today. There would be virtually zero coding, and the developer would more likely be a business analyst or other line-of-business person attempting to support a critical process.
We already see that taking place, but the implementation tool is a spreadsheet, and we all know that spreadsheet apps work well only until they need to capture successive versions of data as business processes move forward. Spreadsheets don't have databases behind them.
However, spreadsheet apps provide a good first approximation of the functionality needed in a business process. The new paradigm of commodity software administered by a generation tool plus a suite of readily available and nearly free template apps almost forms the nexus of the new software paradigm.
The last piece of the puzzle is a method of exchanging templates so that no single entity must be self-sufficient. Sharing zero-cost software drives the formation of a software commons united by a common software platform. Unlike other platforms, all participants would be equals, able to trade their self-made apps for others.
Then the cycle could renew itself. Users might tune template apps to suit their needs and recontribute their solutions to the commons -- or not, the choice is individualized.
More Devices Require More Software
In a future column I'll examine how some emerging vendors approach this very different and possibly disrupting approach to the software lifecycle. Companies like Anaplan, Metavine and ServiceNow all have deployed their versions of this vision. Each has a different take on it based on the markets they serve.
For instance, Anaplan is focused on enterprise planning, Metavine is an application development and deployment platform (as are the others) with emphasis on front-office solutions, and ServiceNow focuses on service modes.
All of this is straightforward, but the ultimate demand might surprise you. As large as the software market is today, it will be much larger by 2020, when various prognosticators speculate that there will be in excess of 50 billion devices connected to the Internet.
All of those devices will need software, and the demands on software providers will be intense. Those demands will include near zero cost, near flawless performance and the ability to run anywhere. That's commoditization at a very high level.