Monday, April 6, 2009

SaaS Customer Life cycle - Contract Renewal

This is part of a series of posts focused on the life cycle of a SaaS customer. The first post is here, and the previous post about new releases here. This is the final installment in this series.

This final step in this series is crucial for all SaaS organizations. That is not to say that installed software companies aren't interested in renewing contracts, but the financial implications are slightly different. I have written about monthly recurring revenue (or more importantly contracted monthly recurring revenue) in previous posts. This is one of the key measurements of a SaaS organization's health and worth. If there are investors this is one of the key numbers they will likely focus on. If your organization is looking to take on investors this is a key number they will likely focus on. Did I mention this is an important number?

Hopefully contract renewal was an issue that was addressed during the sales process. The initial contract certainly included terms like price and length of contract, but hopefully also included language around how the renewal process will work. There is a balancing act to walk here in that obviously the longer the contract the better for the organization providing the software, however enterprise clients may resist lengthy contracts, especially if they are still new to the SaaS concept.

The flip side of a lengthy contract is that it will likely also lock in pricing to some degree during the term and subsequent renewals. It doesn't really matter what your pricing model is: a per seat basis, a feature basis, or some other model the contract price will likely be allowed to increase some set amount with each subsequent contract renewal or calendar year. This means that a client who is an early adopter of your services may end up with a very modest increase in their fees if they continue to renew for a long period, say an additional two, three or four contract terms. This may or may not be a big deal, however it is one that should be entered into with eyes open.

Since this blog is focused on SaaS for the enterprise I would be remiss if I didn't mention procurement. It is likely that at renewal time there will be a formal procurement process that is invoked. It is important to understand this process as much as possible and rely on your internal champions within the client to help guide this process. Many enterprise organizations have a procurement process that runs in cycles, say every 2 or 3 years, so if you have a one year contract with the option to renew at annual intervals it is important to understand how that will work. If you are lucky it might mean no formal procurement process until the next cycle or until the contract dollar amount hits a certain threshold.

One way that you can help your internal champions make the case for contract renewal is to ensure that there are tangible numbers that can be referenced when speaking to budget holders. This falls into the best practices / relationship management category but helping the internal units who are using your software build a case with metrics that are legitimate and easy to understand should help make the renewal process smoother and more likely.

There shouldn't be any surprises about whether a client is or isn't going to renew their contract. Speaking with clients about contract renewal well in advance is to everyone's benefit. The more transparent the process the better it will be for all involved. If there are issue with the product offering, or issues with service levels, etc the sooner they can be addressed the easier it will be to ensure contracts get renewed.

I would also strongly encourage internal teams to be transparent and honest when looking at contract renewals. This should also follow into the revenue projection and budget process. If a large client is unlikely to renew then having a revenue plan and budget impact if they choose to renew as well as if they choose not to renew is a worth while exercise. This also helps set internal expectations and a better informed internal leadership team. If your organization has investors or board oversight transparency around contract renewals is crucial for honest communication about the financial well being of the organization, as well as for where budgets might need to be adjusted to fit new goals (say increased client retention or ability to increase billing by rolling out new features on a more frequent basis for example).

Clearly this series of posts is far from exhaustive in relation to SaaS customer life cycle. I will follow up on some of the concepts presented in this series of posts over the upcoming months.

Monday, February 9, 2009

SaaS Customer Life cycle - New Release

This is part of a series of posts focused on the life cycle of a SaaS customer. The first post is here, and the previous post about going live here.

So at this point client is up and running, let's assume they are wildly successful and the relationship is going well. As the account management team (or whatever language your organization uses to describe this function) has been focused on sharing best practices and hitting all metrics the product team has been busily hammering out the latest version of the product.

Product Management and Product Development are discrete functions that are separate from managing implementations and relationships. This probably sounds like another obvious statement, but worth making. As tasks related to the core product require a different skill set than deploying and managing clients it is likely they are different teams within an organization. I am planning some future posts on both of these topics so I'll follow up on this thread later.

The challenges associated with pushing this latest version begin at the most seemingly innocuous place: What is this called? Is this an upgrade? Is this a migration? a push? some other word?

Upgrade and migration will typically trigger a whole host of associations for enterprise clients. Many of those associations are not pleasant ones, remember many enterprises are likely to still be involved with installed software. Think about the pain and costs associated with a migration or upgrade of some large installed software product, such as an ERP or HR system, especially if the system has been customized in any way (which is likely).

In addition to the possible negative associations words like upgrade and migration are likely to have, many enterprises are also likely to have a number of internal processes and procedures that are invoked once these terms enter the conversation. Some of the possible events that an upgrade or migration might trigger could include another round of UAT, additional security tests, and possibly having procurement getting involved if there are any costs associated. Ideally this issue will have been addressed during the sales cycle and also covered at the end of any implementation cycle, however it is pretty likely that the people involved in those cycles are either no longer attached to this project or have completely forgotten what was said during earlier phases.

All that being said there are three major aspects of all upgrades / migrations:

  • Client facing communication
  • Production migration for code, and I'll lump DB into this category
  • Production migration for infrastructure.


Each of these should be considered carefully with a detailed plan that is shared between all parts of the organization.

Client facing communication is seemingly straight forward, but the decision to communicate at all to clients is one that will likely come up internally, especially If many / most / all of the product changes are focused on items that clients would never know about (say security upgrades, or changes to the way the application handles requests, or communicates between layers, etc).

In those instances it is theoretically possible that a client would never know. It could be tempting to simply perform these upgrades without any notification to clients. I would say this a mistake. Long term relationships with clients are built and trust and trust requires transparency. The possible downside of communicating to clients far outweighs the risks of not communicating. If something were to go wrong during the process that impacted uptime, or any other metric, you would then be forced to communicate to clients that something went wrong while upgrading. This would certainly not contribute to an atmosphere of trust and partnership.

Clearly any significant new release that would impact end users in any way must be communicated to all clients and are subject to all the same concerns.

The specifics of what exactly to include in client facing communications and the tone will vary from release to release. It is a bit of a tight rope act. The goal is to help clients understand what is coming, all the great new stuff that is included and how it makes their lives (and programs) more successful. This is the true power of SaaS. At the same time by making a release seem like too much of a big deal can generate concern and/or any of the issues mentioned previously. Most enterprise clients are risk averse by nature so that is important to keep in mind.

The communication should go out with plenty of time for clients to absorb and ask questions and have the majority of their fears / concerns addressed. If your release cycle is once a quarter client facing communication is one of the things that could be a challenge.

The specifics of a release will need to be locked down and guaranteed to be included if they are to be communicated to clients. In many cases this may not be known until all coding and internal QA has been completed. If clients need time to absorb release information then an organization needs to set some specific internal policies around completed QA. For example if it is determined that clients need 2 weeks to absorb release information and ask questions and internal teams need one week to draft and finalize client facing communications that means the product team should have a milestone that says 3 weeks prior to live all features should be through QA and a determination as to the status (in or out for this release) needs to be made. This is a pretty tight schedule for a quarterly release timeline.

Production migration for code varies depending upon what stage of maturity of their SaaS offering. If there are multiple client instances running different code bases then that strategy would need to be different than singe instance of code for all clients. It seems most likely that most SaaS organizations are somewhere in between with multiple instances of clients running the same code base. Running through some test migrations in a development or QA environment should be considered a necessary milestone prior to any production changes. The product team would be well served by engaging with the implementation teams to determine what would be the best candidates for testing (which implementations are the simplest? Which are the most complex? Which have the largest user population, etc are all questions that can help find the right implementations for testing).

A cautionary note here: No matter how diligent any development team is about ensuring dev and/or QA mimics production as closely as possible there are likely differences. These can be seemingly small (say slightly different versions of an application server or lack of monitoring software) to large (say no clustering or load balancing in dev / QA). These differences, even the small ones, can lead to failure once code is moved to production.

Up to date and quality documentation of the production environment as well as dev and QA environment can help here, however it is rarely done. This kind of documentation is boring and dull. No one want to actually sit down and write this documentation, even fewer people are willing to keep it up to date. A good policy is to add a formal step to any production change procedure to update the production documentation. This at least increases the chance that production will be properly documented.

It is also important that all hands are on deck for production pushes. This should include the QA and dev team as well as the implementation teams and client services teams. Frequently the people who deal with specific client implementation on a daily basis are best positioned to know the most crucial things to check. Don't underestimate the value of those additional eyes and make sure there is a clear process for those people to report any issues they uncover as quickly as possible.

Production migration for infrastructure is related but slightly different than migrating code. A natural tendency is to try to link changes to infrastructure to an upgrade window for all the application code. I would argue this is a bad idea, unless the new infrastructure is tied to the new code specifically. This introduces another variable into the process that exponentially increases the effort required to troubleshoot any issues that might arise. Ideally an organizations standard contract will include some sort of monthly maintenance window. It would be best to confine infrastructure changes to those windows as much as possible.

So this post turned into a much longer one than I initially thought. I should have probably broken it up into two parts. There is clearly more to say about this specific stage of a SaaS customer life cycle and I will try to expand upon these ideas in future posts. If you are still reading then kudos to you.

Saturday, February 7, 2009

SaaS Customer Life cycle - Live

This is part of a series of posts focused on the life cycle of a SaaS customer. The first post is here, and the previous post about implementation is here.

At this point some measure of congratulations are in order, right? The customer has moved from a prospect to signed contract and through implementation. The client is live. This is a significant milestone.

An important factor is that all monthly recurring revenue can now begin billing. It also means that all implementation costs (assuming there are any) can be billed, this does not mean that all implementation costs can be recognized in the month the client goes live. According to current accounting principles for SaaS organizations all implementation costs must be spread out over the first year of the contract. This is a fairly important item to make note of, especially when working on revenue projections and budgets. While it doesn't really need to be said, I will say it anyway: The faster you can get a client launched and live the better for everyone.

Aside from the financial considerations of going live, there is another important issue to keep focused on at this milestone. The hard work of building a strong relationship with all clients (to ensure they continue to choose your organization as their vendor of choice in the future) begins. All enterprise organizations will require departments to provide a cost justification of all contracts, especially in these tough economic times.

As a means to that end it is important to have developed best practices (previous post on this topic here.) to ensure that clients are succeeding and growing. This should include metrics. Since clients are looking to SaaS vendors in large part for their domain expertise in addition to access to their products this means that SaaS vendors need to take an active role in setting metrics for clients.

Part of the role of a SaaS vendor is to not only help clients succeed, but to help clients prove that success internally. One thing that all enterprise organizations can understand are clear metrics to indicate that a specific contract is worth keeping and continuing in the future. Ideally these metrics include some hard numbers in addition to any soft numbers (items such as increased awareness, brand improvement, morale boost, etc). Ideally all metrics that can be generated from within an organization's solution will be calculated and delivered directly to clients in some automated fashion. Monthly is the most common time period for these sorts of metric reports.

The less work any given client administrator or internal champion at the client has to do in order to put together a solid business case for your contract the better off you will be. This is not because anyone at a client is lazy, but more likely they are tasked with a number of other responsibilities. The more you can make program administrators and other champions within your client's organization look like a rock star, the better for everyone.

While going live is certainly something to celebrate, it should be looked at as the start of some more hard work.

Thursday, February 5, 2009

SaaS Customer Life cycle - Implementation

This is part of a series of posts focused on the life cycle of a SaaS customer. The first post is here, and the previous post about contracts here.

This post will focus on implementation. I won't delve into methodology this pass ( I have covered this in more detail here. It doesn't matter whether you have a 2 hour implementation or a 6 month implementation is dependent on a number of factors:

  • The simplicity of the business problem being solved
  • The maturity of the solution
  • The input / decisions required by clients.
  • Expectations of product that have been misunderstood during the sales cycle.

Nothing earth shattering or particularly revealing on that list, but I want to spend a couple of moments to go a bit deeper into each of those items.

The simplicity of the business problem being solved will impact the length of your deployment time. Note I did not say the simplicity of your solution. You may have a complex solution to a simple problem, however hopefully that complexity is all under the hood and doesn't need to be exposed to any implementation team. It is always easier to use examples, so for example if your software is geared to helping an enterprise simply track the number of hits to a specific page this is a fairly simple business problem. Now consider a suite of software that handles ERP. These two examples are vastly different in the scope of the problems they are solving. I would expect the implementation time for the ERP system to be significantly longer. As the trend is for software to become more and more feature laden it would stand to reason that software complexity will only continue to increase. This is not necessarily an encourage trend in terms of implementation times for SaaS solutions, however simplicity / complexity is not the only factor.

The maturity of any given product will impact deployment. In theory the more mature the product the more experienced the implementation teams and the more time the product and development teams have had to address any technology challenges related to implementations. There are some notable exceptions. As products mature they tend to add to the feature set, which again invokes the issues mentioned above. On the whole a more mature SaaS solution should be faster to implement than a less mature solution in the same space solving the same problems.

The input required by clients will most likely have the greatest impact on implementation times. As the focus of this blog is on the enterprise it needs to be acknowledged that many enterprise clients have a culture where people who make "bad" decisions are frequently punished. This leads to a culture where people are sometimes afraid of making decisions, or to a culture where there are multiple people are required to sign off any decisions. This is very likely to be the primary cause of delays in implementations. The best way to mitigate this challenge is to have the fewest number of client inputs as required and try to gather as much information as possible during the sales process.

The final item listed has the potential to be the biggest challenge to implementation. No matter how clear you think you are being during the sales cycle it is still possible that what a client hears isn't exactly what you meant (let's assume the best intentions for both the sales teams and the clients). When these sorts of mismatched expectations occur it will almost always require escalation to more senior resources on both sides. Once that has occurred it is highly likely that delays will occur but more importantly confidence will begin to erode. This is the most detrimental part for establishing a long term relationship. In a perfect world this would never happen, but alas sometimes it does. One strategy that seems to be effective at minimizing these sorts of issues is to have a member of the implementation team present at the appropriate point in the sales cycle. Ideally it would be the same implementation team member who will be responsible for that client's implementation. This helps avoid the he said she said that these kinds of miscommunications can sometimes turn into. Clearly if the implementation time for your solution is only a day it's less of an issue, but if it is longer it is worth considering integrating implementation with some part of the sales process.

While some or all of these may be factors in any given implementation process the faster an organization can implement their solution the better. This will allow you to get to the all important revenue recognition as soon as possible.

Tuesday, January 27, 2009

SaaS Customer Life cycle - Contract

This is part of a series of posts focused on the life cycle of a SaaS customer. The first post is here, and the previous post about pre-sales can be found here.

This post will focus on SaaS contracts. I feel like I have covered this ground in previous posts but in the effort to cover the entire life cycle of a client I will spend a little time on this topic again.

In the best case scenario any topics of discussion or concern will have been addressed during the pre-sales process so that contracts become a formality. In reality it seldom works this way. As this blog is focused on SaaS for the enterprise we should keep in mind that the notion of an adhesion contract that a client will just sign doesn't apply. There will be some level of negotiation for every contract, at least in my experience. The negotiation can sometimes start with which parties standard contract language gets used.

No matter what boilerplate contract gets used there are a few things that should be spelled out clearly.

  • How upgrades / migrations are handled.
  • Who owns what data
  • Pricing model, including any custom requests if such thing even applies
  • Scope of work, as much as possible without getting bogged down into specifics
  • Clearly spell out any / all SLAs and how reporting on those SLAs will be handled
  • What browsers, technology your application will support. Avoid specifics like IE 7 is also advisable. The language could be something more generic like "the latest stable release of IE" or "the most common 3 browsers on Windows".


Here is a short list of things that I would suggest NOT putting into contract language.

  • Any specifics of the technical solution. I have found that many large firms like adding this language, it provides some sort of comfort to lawyers in some way. The truth of the matter is that adding the specifics (think what DB server, or presentation layer technology, etc) in a contract can lead to potential issues if/when those technologies change. My advice, just leave it out if possible
  • Code escrow agreements. I have written on this in the past (see post here) and the honest answer is that even if a company goes out of business having source code is useless to the client. If a customer insists on such a term then clearly spell out it is the responsibility of the client to bear those costs and agree to a specific calendar time that the code will be updated.

There is obviously much more to contracts. I am not a lawyer and so I won't even bother trying to cover all the other stuff (liability, etc etc etc) as it lies beyond my subject matter expertise.

The most important thing is that the contract language matches the information what has been delivered during the sales process. The next team to follow shouldn't be hindered by contract language. Contracts are another tool to help set expectations with clients.

Monday, January 5, 2009

SaaS Customer Life cycle - Pre-sales

Let me start by saying sales is certainly not my area of expertise. I couldn't do what sales does. I couldn't convert a lead to a prospect if my job depended on it, and I am certainly not the person who is going to come in and make sure a deal is closed.

I have spent plenty of time doing pre-sales support, and that is what I will focus on in this post.

I am going to state what seems like it should be obvious:

The sales team should understand what SaaS means. The sales team should be able to not only understand what it means but also how to communicate the value proposition to prospective clients, at least at a high level.

The technical sales support is crucial. Enterprise clients are becoming increasingly familiar with SaaS. This increase in familiarity is both good and bad. The good news is that as the SaaS delivery method matures prospects are not in the situation of needing to be convinced SaaS is valuable or viable. The bad news is that the types of questions that you are likely to face seem to be more focused.

Any technical pre-sales support should be ready to explain basic architecture (both network and application) as well as security and privacy issues. It would be helpful to be able to explain how the upgrade or migration process works once a client is up and running. This may go hand in hand with questions about product road map and the methodology your organization uses to develop and share that road map.

A mature SaaS organization can use the pre-sales period to distance themselves from less mature competition. This can be a significant differentiation point. An important part of Software as a Service is the service part. If an organization has an advantage in that area it should be something that prospects understand.

This period is also the time to set expectations with a prospect. This can make all the difference for the relationship and the teams that follow after signature.

Things to be clear about during the sales cycle should include implementations (how long, what is required from client, cost, etc) as well as how migrations or upgrades will work moving forward.

Any ambiguities about implementation and/or future upgrades will likely lead to incorrect expectations. This can damage a relationship right from the start if there are significant relationship challenges around deployment.

If both of these issues can be clearly communicated and expectations set correctly then the relationship has a much better chance of turning into a positive long term relationship.