Various thoughts on one hot buzzword:
One recent development in the IT world is the emergence of the Software as a Service, or of services that are provided to someone running an IT operation. This is due primarily due to the drop in the cost of communication which allowed for closer partnerships.
The most important thing about consuming a service is that it allows you to decompose the interaction with the Service Provider. While previously you needed to purchase a big,fat shrink-wrapped product and then orient your application around it now you can pick from the offerings that a service has and choose the ones that bets suit you from a cost, QoS, etc… perspective. This, obviously, doesn’t prevent the sale of consolidated service stacks. (However, you should be careful when buying a service stack because you are also buying the relationships between these the services in this stack. These relationships will ideally be customizable easily).
The different economics (the fact that you are buying the service thru a subscription rather than with one payment) drives a different interaction: the Service Provider has a big incentive to take you “hostage”. On the other side the consumer of a service wants to minimize the costs of transition from one Service Provider to another in order not to be taken “hostage”.Taking a Service Consumer “hostage” is done thru features, but it can also be done by coupling your application to that service. You should avoid coupling in order to avoid being taken hostage. Features that are not implemented by competing Service Providers will probably be more expensive and will also take you hostage (funny how you actually pay more for being taken hostage).
One type of coupling between a Service Consumer and a Service Provider is thru APIs. The Service Consumer should abstract the interaction with the Service Provider in order to minimize this coupling so that they could switch to a different Service Provider easily if they need to.The service consumers have the upper hand in this game, if the interaction with a service is properly designed switching to a different provider should be easy.
Another type of coupling between your operation and the Service Provider is thru data: you need to keep control over your data so that you can move from one service provider more easily. When you are moving from one service provider to another you should make sure that you keep control over the data so that your data is not taken hostage by your service provider. Providing data to your service provider should be a process that should be very careful organized, you need to keep a tight control over it. You need to keep a very tight control as well over the data produced by your service provider: invoices of the things you have sold thru that Service Provider, the customer records that a CRM service provider has about your customers, etc… A service provider which cannot communicate to you the data that it has produced on your behalf should be considered risky, you may be taken “hostage”.
One particular type of data that you may be interested in is data concerning the service usage. Consider this example: one retailer outsourced its B2C site to a Service Provider. The site was recording a lot of traffic, but very few sales were taking place. Click-path-analysis (which is essentially scanning the data of how the B2C service was used) eventually revelead that the check out process was confusing. The service usage data is vey important, especially if the service is facing ordinary consumers.
The services that are outsourced to an Service Provider are not services which are strategic an operation but rather services that have been commoditized to the point where they don’t differentiate one operation from another. This implies that you should not outsource services that your company counts on for getting ahead of the competition. For example, if the customer experience is at the crux of your operation it doesn’t make much sense to outsource it to salesforce.com, because this would eliminate one important arrow from your quiver. However, if you are building an operation that revolves mainly importing various artifacts from China you may consider salesforce.com for managing your relations with your customers.
The service that you subscribe to should have some latency, the SLA’s regarding latency should be somewhat relaxed. Most of the services will be provided remotely from a different data-center, this should be considered. This would add more weight to the fact that you should not outsource services critical and strategic to your operation. You could mitigate this by delegating coarse-grained services to the Service Provider so that the interactions between your applications and the service you are using are not frequent. This would mean that it pays off to delegate more functionality to the Service Provider, as a result the service they provide should be easy to customize according to your needs.
When you are outsourcing a service to a Service Provider you are also outsourcing the maintenance, operation and the security of that service and its data. You should make sure that the Service Provider’s op team is up to the challenge (this point is so evident I didn’t think it should be stated).
Software as a Service will probably continue to drive the commoditization of various IT operations, SaaS is about outsourcing non-differentiating operations to an entity best equipped to handle them.