A long time ago, I read a book, Oath of Fealty, that included the tough but amusing phrase, “Think of it as evolution in action”. More recently I read a wonderful book, the Botany of Desire and another equally wonderful one, The Beak of the Finch, both of which make the point that natural selection is going on at all times. Evolution and learning and natural selection are the themes of this post.
About 9 years ago it became clear to me that, all things being equal, the current model of building software for a specific API to be deployed on someone’s desk was going to be far less sucessful than the model of deploying a service. Why so?
Well this is where the comment about evolution in action comes in. Things that breed rapidly more quickly adopt through natural selection to a changing environment. Services can typically deploy changes every month or even more rapidly because they only have one single configuration on a set of machines whose OS, storage and networking they totally control and which they manage in their data centers. These days Microsoft gives birth to new products at a pace that makes an elephant seem quick, about every 60 months, that means in the time that a service can make 60 adaptions to its customer’s needs, Microsoft makes one. It used to be that they shipped every 12 months. Then 18. Then 24. And so on. The creep is driven by the ever increasiongly complexity of features, hardware, os variations, and backward compatibility of the API’s so ably designed to lock developers in. They locked the developers in all right. The Microsoft ones. This alone to me has been a compelling argument that when a product can be delivered as a service, it should be.
Secondly there is the telling point of usability. In February 1997, fresh from having built/designed DHTML for MSFT and just before building XML, I made a month long pilgrimage to talk to users about the forthcoming IE 4.0 and what should go into IE 5.0. The results were eye opening to me. Customers, almost unanimously, told me that they didn’t want the rich user interface of GUI for most applications.For office worker Personal productivity applications, sure. But in general, they wanted the easiest most self evident user interface possible. Why? Customer support costs. They had found empirically that the training and support costs for web based applications were much lower than for custom built Windows applications. Donald Norman ought to have been delighted. Simplicity had won. The economist has a huge article this week about how IT needs to be simpler and somehow manages not to mention the browser much. One wonders if it is a coincidence that they frequently quote an old employee of mine, Chris Capossela, now apparently “the boss of productivity applications” so frequently or there is some other reason for this startling ommision. But, in short, services not only evolve far more rapidly to meet customer needs, they are much cheaper to manage for most customers.
Chris’s title “boss” is illustrative of the other major reason that services tend to more rapidly adapt to changing customer needs and to more rapidly fix problems. Services provide all actions as URL’s and Button clicks and these can be statistically analyzed by services to better understand what’s working for customers and what isn’t. Thus as thus statistical instrumentation highlights customers needs, the services can instantly and dynamically respond to these customer needs. In short there isn’t some person who is the “boss” of a service. The customers are, very literally, in control. Think of it as democracy versus totalitarianism. This last point showed up almost from day one in the web. The user interface customized itself to the users needs, location, and data in a dynamic way through the magic of dynamic page layout. Today, a full ten years later, most windows apps still don’t do that. But heck they are only 2 or 3 or 4 generations evolved. Services, in the last decade, may have evolved 600 times by now all in reaction to what they have learned directly from customer use.
Some may say this is idle chatter. They may challenge me to put my money where my mouth is. I do so. I left an extraordinarily lucrative job at MSFT 5 years ago to work for 24K a year to work on services. I have personally invested in a great services company, Salesforce.com, and another promising one, Talaris, and I’m working for the one I regard as the greatest of all, Google. Greatest because the idea that simplicity of user interface wins has always been a Google strength from the start. Yet, at the same time, Google has figured out how to use my old progeny, DHTML, to let services deliver personal information activites like email in richer and more interactive ways.
Is it right for everything to be a service? Certainly not. If you need offline access, if you’re manipulating rich media (photoshop), if you need to search those files customers choose to keep privately on their PC’s then client side code is required. Blog-Readers are the poster children for this especially now we have podcasting. But I have to say, I think Mozilla could easily build in such features into their awesome browser, Firefox. And keeping data on a PC is asking for trouble. It gets old. The machine is dropped. The disk breaks. Put it on a service and it is stored, reliably, even in the face of an earthquake these days. By the way, I write all these posts just using a browser to type them in.
Perhaps more importantly, as I said in a prior post, most of the value today is coming from the community, the reputation, the access to information and goods and services, and the media itself. This ineluctable fact coupled with the driving forces of much faster evolution in response to the natural selection of market needs, much cheaper and easier and more simple user interface, and much better ability to know what can be done better for the customer are all combining. Services will be the dominant model. Think of it as evolution in action.