There's a big difference between front- and back-office computing that becomes clearer to me every year. Back-office...
processes deal with what is known, or knowable. How much money did we make? How many units did we ship? What raw materials should we buy? Questions like those are largely quantifiable. Even when we don't know a precise answer, we can make an assumption and proceed from there. Front-office processes are much different. The front office is exposed to the customer and also to unpredictable reality, which the back office may easily appreciate -- but it's simply not the same.
A philosopher (I forget who) once showed that some infinities are greater than others. For example, although the set of whole numbers is infinite and the set of fractions is also infinite, nevertheless the set of fractions is a larger infinity. In the same way, the number of business processes in the back office is great, but it is not as great as the potential set of processes of the front office. Extending the analogy, cloud computing will mean more for CRM over time than it will for ERP because there's more software to be built for the front office.
With no small amount of difficulty, companies manage to support their back-end business processes using the software products of one or a small number of providers. The object is to minimize the interfaces that need to be built and maintained to better control the integrity of the limited number of processes under management.
The front office, on the other hand, has so many specialized business processes that companies routinely bring in multiple vendors to manage it all. Frequently, that isn't enough. Individual applications can be expensive or they can be a nightmare to integrate, and many users rely on spreadsheets and desktop application development tools to support their processes. You know the drill — it can be a mess. So, along comes cloud computing with the promise of remediating all this. Cloud computing has at least these advantages:
- Application delivery on-demand
- Built-in hosting
- Development tools integrated with the above
We've known about all of this for a while now, but the cloud vendors have not always done a good job of selling the big picture. So we get situations where a company like Salesforce.com introduces a development environment one moment and talks about long-tail applications and cloud computing on other occasions. Too often, we're left to figure out what it all means. Amazon offers computing resources on-demand, as do other vendors, and Google offers an office automation suite. Social networking sites offer tantalizing visions of the future of communication, but it's all Lego without a blueprint. Maybe that's the way it must be, since any attempt to prescribe a solution would inevitably leave something out. Certainly, this is one instance when the solution really is greater than the sum of its parts, and I think it's time for cloud vendors to make more of a statement for a couple of reasons, including branding and marketing.
Today, anyone is free to put the Software as a Service (SaaS) badge on a product and take advantage of the largely favorable attitude in the market. But this approach invites dilution. Is a single-tenant application provider the same as a multi-tenant provider? Purists would say no -- and for good reason. Currently, though, not much defines SaaS or cloud computing other than what a vendor says it is. We need to be a bit more rigorous in this. I suggest an independent body that sets the standards and the definition of cloud computing. We're at a point that the late Thomas Kuhn first described as a paradigm shift in his 1960s classic, The Structure of Scientific Revolutions. (It might be short, but this is not the kind of book you read for fun at the beach.) Subsequent authors have done a better job by bringing the idea of disruptive innovation into common use. But that's where we are, paradigm shift cum disruptive innovation, the software industry is moving from a premise-based licensing model to a cloud and subscription-based model of highly integrated solutions working on standards that make the integration possible.
In a transition period, it is common to see attempts to mix and match the old and the new. I think we're seeing the mix-and-match approach right now in enterprise software because the number and variety of SaaS architectures is proliferating. What I thought was a settled discussion is now a fertile area with competing ideas about single-tenant, many-tenant and multi-tenant architectures. They are all being called SaaS by loyalists. Technically, they all are SaaS.
But it takes more than a browser front-end and Internet transport to make a SaaS application. The importance of SaaS is the standardization it promises. A single code set and sophisticated metadata to manage customer data provide the standards that enable us to back away from conflicts about operating systems, databases and versions. These standards are what make it possible for many application vendors' products to work together in common business processes.
Back-office applications are the children of the license model, and front-office applications have successfully used the model for a long time. But the paradigm shift is being felt most significantly in the front office. Perhaps one of the challenges we face is not simply SaaS standards but the acceptance that front- and back-office processes have diverged enough that they now require two different — but bridgeable — computing paradigms. This matter needs to be settled because there is another paradigm on the horizon -- actually it's already breathing down our necks. Social media heavily leverage the SaaS model and integrate people the way SaaS integrates companies and applications. There's no telling whether SaaS or even cloud computing will be a sufficient paradigm for this new world. But what's on the horizon should give us all the incentive we need to consolidate our standards and move forward in an orderly way.