Complexity does not go away, it just changes hands...

A law that I always found interesting in Physics is the the Lavoisier Law which states that the mass of a closed system of substances will remain constant. In other words, matter cannot be created nor destroyed, it can only change form. (just for the purists: of course this law does not hold in special relativity or quantum mechanics where photon (which are mass less) are emitted, but I don't think we are ready to discuss software as a service in quantum terms quite yet :) Anyway... the point is that a similar "law" could be expressed in the context of software as a service: In a closed system, software complexity does not go away, it just changes hands.



The fact that (metaphorically) a SaaS customer can just "plug" into the service fabric and get immediate access to LoB application is because the delivery of the application (e.g. hosting, monitoring...) shifted to the provider, not because the delivery complexity disappeared. It seems obvious when stated like this, but based on a few conversations I had recently it often seems to be forgotten.

In this case, a first approximation of a "closed system" where complexity stays equal (but changes hands) is the Enterprise-ISV-Hoster trio. (The reason I said first approximations, is because there are additional entities that could participate in the closed system, such as system integrators, resellers, aggregators, multiple layers of hosters...). In other words, all the functions of software consumption and service delivery must be present somewhere in Enterprise-ISV-Hoster trio, otherwise the "law' of conservation of complexity would break, which, a part from maybe a few relativist or quantum cases, is impossible :)

Since complexity does not go away, the value proposition of an ISV is to shift complexity from Enterprise to ISV by offering SaaS and the value proposition of an Hoster is to shift complexity from ISV to Hoster by offering a Service Delivery Platform.

In this situation, Enterprises concentrate on using software they need, ISVs focus on building domain specific software and Hoster focus on the delivery plumbing and SLAs. This is IMO a much better model than stretching core competency by performing someone else expertise (i.e. ISV self hosting)

Note that the Enterprise/ISV/Hoster separation of concern is at the conceptual level, nothing prevents a large enterprise (Global 1000 type) to perform the 3 roles of 'using', 'building' and 'delivering' software (intranet-saas?!) but keeping these functions separate would benefit them.

Make sense?


I'm pretty sure that I could also have plugged the second law of thermodynamics stating that in an isolated system (i,e, without any external 'work') entropy can only increase. But I will leave that for a future post. :)