SaaS Upgrade Maturity Model


As of late, I’ve had a number of conversations with different individuals regarding release cycles and what SaaS companies currently do and/or should do with respect to releasing upgrades to their offerings. The biggest question is how to map the release to your customer’s needs. In many cases, it’s ok to release an upgrade to your SaaS offering and “force feed” the upgrade to your customers (i.e. they don’t have a choice regarding acceptance of your upgrade). In other cases, however, this could be a terrible mistake.

Let’s start with an example: imagine you are an ISV that writes software for helping manage law practices or that aides in litigation. Your law firm customers generally use your software in a mission critical, time sensitive fashion like managing a current legal case that is making its way through the court system and is worth millions of dollars. A midstream upgrade to your SaaS offering could be catastrophic for the law firm. Your changes could require some amount of retraining, could accidently introduce inefficiencies that were unintended, or might impact your customers in unforeseen ways. Any of these changes would mean that the imaginary law firm would be negatively impacted due to your upgrade, which is most certainly not the intent of an upgrade (Ask Microsoft, I’m sure they remember Windows ME). How can issues like this be solved? By supporting multiple versions! Before calling me a SaaS heretic, let me give some detail!

Ideally, the law firm in our imaginary scenario should have been able to opt out of the upgrade for a period of time, accepting an upgrade when ready. This would indicate that while some customers were on version ‘new’, others were on version ‘old’. In SaaS, it is wise for a SaaS ISV to take a “one version only” stance as a mantra during periods of non-release, but real world pressures exerted by customer needs should always come first during releases. SaaS providers can be bucketed into 1 of 3 buckets in the following maturity model:

  1. Level 1 (’The Blanket Upgrade’) - When you release new functionality or bug fixes, you release it at a specific point in time to all customers. At a minimum, it would be wise to give your customers fair warning (15 days, preferably 30) prior to the release. In sensitive situations, it will give your support team the ability to mitigate any disastrous customer service outcomes from an unexpected, sudden upgrade. What would be even better would be to a fixed release schedule (e.g. ‘Every 1st Tuesday of the Month’) so that they have foreword expectations and can plan accordingly.
     
  2. Level 2 (’The Grace Period Upgrade’) - A new release is released in batch at two points in time. Customers are notified of an upgrade and are given the option to ‘opt out’ of the first upgrade date and delay their upgrade to the second date.
     
  3. Level 3 (’The OnDemand Upgrade’) -  Level 3 is one that intrigues me the most. Customers are notified of a pending release and are given a time span (say, 60 days) during which they must upgrade. They can invoke the upgrade at any point in time within the 60 days, or be forced to upgrade on the 60th day. This puts upgrade control in the customer’s hands, within boundaries. Generally speaking, this would require a highly automated architecture.

Part of the upgrade process that applies at all 3 maturity levels would be the ability to have ‘preview access’ to the new version prior to releasing. This would allow customers to retrain staff and understand changes to the offering outside of normal operational constraints. 

Which maturity level seems to be most common in the marketplace? If your organization functions at any of these levels, what has your experience with that level been and have you considered maturing to a higher level?

 The SaaSBlogs group on LinkedIn now has 1300+ members and it’s growing every day; make sure you are not missing out and join today.

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.


Other Posts
A Discussion About Apprenda & SaaSGrid
“What it Takes to be a SaaS Provider” - an interview with Mike Seckler



Write a Comment

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

Reader Comments

Sinclair - I’ve worked with an application very much like you describe. A couple of interesting things from the experience:

Process/feature changes that positively impact usability and productivity are excepted immediately - however, in many cases those should be considered for monitization. Depends a lot on the competitive atmosphere.

Feature changes that require “relearning” with no apparent usuability or productivity bonus are roundly rejected and likely to lower user retention. It doesn’t mean they aren’t necessary in some cases however for reasons the users aren’t aware of. Making them aware of the deeper issues is key in this situation.

But the worst case scenario is when a change requires API restructure and integration realignment. Planning this level of upgrade can be very difficult when customers have a significant investment in integrated apps.

In the first case, I can see the positive upgrades being pushed out immediately - in coordination with marketing of course.

The second and third situations would require your “level 2″ or “level 3″ upgrade, but there is also a very serious service component both helping customers understand potential issues and in some cases helping them test and prepare for the upgrade. In SaaS we are selling service, in some cases added service ($) and retention is king.

So, I wouldn’t necessarily call this a “maturity level” decision - it is more a matter of the product manager, QA, and service team having a way to evaluate changes and determine which plan works for an individual situation. There are going to have to be some parallel versions during testing and in some cases evaluation or “beta positive” users that allow themselves to be pushed to the new version as soon as it is ready. Getting to that discussion before release is where the maturity comes in.

Having lived through the dom com era as the sofwtare development manaer for Buzzsaw, we have tried all 3. Certainly we started with Level 1. This did induce pain on the part of customers. We tried Level 2 for the shortest amount of time, since even the second coming was painful. Now Autdoesk offers Buzzsaw using the Level 3 method. This works well. Customers pick a date, and we migrate their data when such migrations are necessary.

Clearly option 1 is the most cost effective model for SaaS. Why not just give a 60 day lead on the blanket update and have a preview like most do anyway. Then option 2 and 3 are moot and you have solved all the issues. Besides, when you stray from option 1, you stray from basic SaaS foundations. So if a customer does not like it, they should just just do managed host. In fact it’s why managed host is still, and likely to continue to be more poular than SaaS.

Autodesk Buzzsaw is not pure SaaS. It’s more like software + services. There is a Buzzsaw client to install. When we upgrade our servers, all of the customers affected have to install a new client. Sometimes customers are in the middle of a critical project, so an install is inconvenient. As a result that’s why we go with Level 3. Customers get their data moved to the upgraded server at a time that meets their schedule, and then the client installs begin from there.

Wes, I would argue that 3 has the ability to be most cost effective given the right automation system. The cost associated with any of the maturity level seems to be related to how much intervention is required.

Scott, have you experienced a cost effectiveness difference? Also, with respect to your desktop client, have you considered technologies like Silverlight or Flex via a browser to help with the update issue, or is Buzzsaw taking advantage of something on the host OS beyond what’s exposed via those technologies?

The client for Buzzsaw was developed in 1999. It is an ActiveX Control. It communicates with an ISAPI extension on the server. As we evolve the service, the client will leverage newer technologies, but for what it is now, Level 3 meets our needs.

Interesting - we actually have a SaaS product for law firms.

Without a doubt these are interesting ideas. I think though what also needs to be taken into account are the nature of changes. This is especially so in Agile shops where sprint cycle releases are the norm. So, consider, for different types of rollouts:

1) Substantial changes to existing product - absolutely levels 1 2 and 3 should be considered.
2) New features not affecting existing product - deploy at will in conjunction with PR/Marketing and subscriber agreements.
3) Bug Fixes/small improvements - also deploy at will.

Otherwise, you risk making a muddled mess of deployment. The simpler the better.