SPlusS400

I've been having a lot of discussions on Software + Services lately, both inside and outside of Microsoft (nothing lights up a dinner party like some witty tech banter, I always say).  Invariably, I find that merely agreeing on the definition of S+S is somewhat of a challenge... so I'm compelled to try to force one on the public...

First, let's start with the comparison between S+S and Software As A Service (SAAS).  I've seen both terms overloaded and confused with each other... and we (the software industry) need to figure out if we intend these terms to mean the same thing - or not.  Personally, I believe we can make a strong distinction.

In my view, SAAS defines applications that have zero footprint at the client - and are delivered through some kind of remote execution means... whether that's a web interface, rdp session, or other kind of remote terminal.  The idea is that the software itself is completely hosted, managed, and delivered by an external entity AS A "SERVICE" - and there is very little infrastructure required for those using this "service."  Thus, the technology focus for SAAS is purely at the hoster/aggregator - such as how to implement a solid service delivery platform (SDP), etc.

Certainly there is validity to that model - specifically for businesses that don't need direct integration between their core business processes and the software they use.  In small business scenarios, where there are few, if any, existing internal systems and business processes are still fairly simple it can be seen as a slam-dunk.  In larger businesses, it's getting attention because of the minimization of support infrastructure.

There are also drawbacks to SAAS - primarily related to the need to customize the platform and integrate it with the core business processes.  As organizations become larger, more complex, more regulated, and differentiated in their field - the ROI of SAAS solutions may no longer be realized, and such solutions may actually inhibit growth.   Fred Chong and Gianpaolo Carraro have a good article on SAAS in the Enterprise where they outline some of the political, technical, financial, and legal considerations (as well as the benefits, of course) -  http://msdn2.microsoft.com/en-us/architecture/aa905332.aspx.

Software + Services, S+S, is similar to SAAS in many respects.  It requires a hosting infrastructure that is multi-tenant and provides core business functions to clients from this "cloud."  However, unlike SAAS, the "services" provided are not the whole ball of wax. 

In SAAS, the solution delivers just about everything: the user interface as well as most or all of the business services.  In S+S, the SERVICES provided are essentially "coarsely grained business functions" that, alone, only make up part of the solution.  To complete the picture, additional SOFTWARE is needed to aggregate the services and present them in a usable way to users.

Thus, with S+S, you have the same technical considerations around implementing a reliable service delivery platform, as well as considerations of the SOFTWARE that leverages your services (development, deployment, management, etc.).

Now you may say to yourself, "gee... that sounds like a more complex model than SAAS"... and I can understand that.  I view the complexity as a wash, though - as efficient software may ameliorate some of the challenges you may encounter on the hosting side (i.e., the software can do a lot of the work that is challenging to the service platform).

The benefits to S+S come in the capability to be more modular in implementation - which allows easier integration with complex business processes and a better opportunity to provide functional, productive user interfaces.  That is, you can implement S+S in a way that molds to your business and users - rather than forcing your business and users to conform to your service platform (as is often seen in SAAS models).

In addition, S+S provides a great environment for aggregate business models where several organizations provide disparate services and several other organizations provide the software that provides user interfaces and aggregation of the services.  As an ISV or other participant is this ecosystem, you can focus on delivering the best-of-breed functionality based on your competencies, rather than trying to deliver absolutely everything your clients will need.

Example: A community/blogging engine (like Telligent's Community Server http://communityserver.org/) can provide a complete SAAS solution, where it's hosted externally and provides a complete, end-to-end solution for a business need (in this case, community management).  However, just using that solution as SAAS sometimes is less than desirable (for example, many people don't like the web based blogging tools)... so most platforms expose modular services that can be augmented with SOFTWARE... such as Windows Live Writer (http://get.live.com/betas/writer_betas), which I'm currently using, to provide a better experience.

Thus, the combination of Microsoft Live Writer and Community Server is: Software + Services.

The concept of Software + Services isn't really new... what's new is the clear focus on providing solid platforms to host and run services (SDPs), which was brought in by the wave of interest in SAAS, as well as many of the new client development technologies that can be used to provide extremely compelling user experiences without a significant impact on the client infrastructure (such as .NET and Silverlight).  Basically, we've reached a point where it can be done well by just about everyone using the right technologies and architectural best practices.

In summary:

  • Software + Services is the combination of SOFTWARE, typically running on a client machine, and coarsely-grained business services that are hosted and managed separately.  (in a way, you can think of S+S as an extension on SAAS that allows you to provide more modular and flexible services via the addition of software to your solution)
  • As businesses develop more robust service delivery platforms, they will be able to provide more and more value to customers via services - in both SAAS and S+S scenarios.
  • Client development platforms, such as Office 2007, .NET, and Silverlight allow businesses to provide a great software complement to their business services in ways that are very amenable to the market.  That is - if you're considering building or purchasing an SAAS solution, it really makes sense to also consider how S+S might be a fit.

There's some good material on S+S and SAAS up on the MSDN Architecture center - http://msdn2.microsoft.com/en-us/architecture/aa699384.aspx - S+S/SAAS Architecture Center.  Fred and Gianpaolo are doing a great job there.

Incidentally, my initial idea for the cartoon involved a brothel, but I thought that it'd be best to keep things PG-13.  Comments and other ideas are always welcome.

-Dan

ps. please keep in mind these are my perspectives on S+S and SAAS, for formal Microsoft positioning, please see the MSDN architecture center referenced above