What’s in a SaaS Version Release, Anyway?


One topic that is rarely addressed on blogs or in conversation is release management: the processes and science behind rolling out a new version of your SaaS offering. So imagine you’ve created the world’s next Salesforce.com: how do you plan on handling new releases? This question is stickier than it seems. There are a variety of operational decisions to make. At a minimum, you should ask yourself:

  1. How often to I plan on releasing? Most companies I’ve spoken to about this have indicated monthly or bi-monthly (every two months, not twice a month) releases for bug fixes and basic functionality introducton, and larger scale “version releases” yearly. The decision of “how often” should be driven by a combination of customer needs and expectations coupled with feasibility. For example, if you are in the awkward position of managing an offering with features that have long development cycles (3-4 months), then don’t try and cram things into a single month simply to be on the monthly release bandwagon.
  2. Do I offer a ‘preview release’? It isn’t uncommon to offer a subset of your customers (particularly the early adopter type) a sneak peek of a new version or giving them a pre-official release upgrade. This keeps early adopter customers happy and gives you the opportunity to get some critical feedback on your new features, but does introduce some logistics around multi-version support (see question #3).
  3. Do I support multiple versions? This is a religious war in SaaS world. Some folks are adamant about one version and one version only, while others see it as critical to proper customer management. On one hand, supporting only a single version (i.e. migrating all customers to a new application version once released) simplifies a variety of tangential topics like support. On the other hand, single version releases may not play well with real world dynamics. For example, on a major release, large clients may request that they delay upgrading for a month or two with exposure to a “sandbox” upgrade of the new version, allowing them to train staff on new functionality prior to making that new version part of modus operandi.
  4. Do I need a parallel release environment? Now that you’ve got 1-3 answered, how do you plan on actually cutting a new release? Are you going to maintain dual, matching environments and “cut over” or are you aiming at a patching mechanism that can physically roll out new bits over the old ones with rollback capabilities, or even trickier, will your versioning be meta driven allowing you to match customers to the appropriate version bits and coordinate this on a release management engine? Each of these approaches has different cost, risk, and implementation difficulty implications.

The questions I’ve posed are a small part of the many decisions to make during your release management planning. Other parts of defining a release strategy aren’t options, but required. For example, little things like when you migrate your customers to new bits, you should migrate their contracts in lock step. What does this mean? Well, if you’ve added functionality that you’re bundling for free in a subscription or have removed functionality from the application and are currently charging customers for that now removed functionality, update their contracts so they get the free stuff or so they are no longer paying for things that don’t exist! Little things like this are key to ensuring customer satisfaction and a hiccup-free release.

One last tip is automate! Look to automate this process in a way that is flexible but that keeps mistake-prone human hands out of the equation. This will be critical, regardless of what decisions you make above.

How do you feel about multiple versions? What tips do you have from the real world for ISVs planning a release management system for their SaaS offering? Have you encountered any unexpected headaches? Do share!

TheĀ SaaSBlogs group on LinkedIn now has 1100+ 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
“What it Takes to be a SaaS Provider” - an interview with Mike Seckler
A Chance at Practical Info for SaaS Companies



Write a Comment

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

Reader Comments

One other area that adds a whole other level of complexity is the integration of your SaaS with the clients business. What level of integration are you going to support? Will your SLA committments need to change in order to support that degree of coupling?
If you don’t really allow any integration support are you just a commodity waiting for someone else to deliver the higher business value.

The integration question posed by Charlie is indeed a question of increasing importance and complexity. It runs in multiple directions too - are your customers embedding your SaaS solution in other SaaS offerings? Is there integration at the platform level? Perhaps across a suite of offerings (as is happening more and more with SalesForce adopters and Google-based apps)? With local apps and databases?

There is no question that SaaS apps will eventually go through the same integration hurdles that enterprise applications faced years ago. Hopefully the developers will see the “opportunity” before it slows them down.

I can tell you one thing for sure - SaaS release and upgrades are infinitely easier than conventional installed software.

My advice would be to
1) release often
2) make sure you have a really good set of automated tests as you can
3) automate the entire release process - in many of the enterprise environments I’ve worked in there was absolutely no direct access allowed to the servers - everything scripted
4) make sure you have a test environment that exactly replicates production - and I stress exactly. This can often be achieved these days by virtualisation.