Tuesday, October 28, 2008

Project Management and SaaS, part 1

There are a glut of IT Project Management methodologies in the world. In fact there are even publications that focus solely on comparative project management methodologies. The majority of those methodologies are focused on a project life cycle as it relates to either custom software development or some other blue sky / green field type project .

Is there a difference between a development project for any custom system or large integration project and a Software as a Service deployment?

On the most basic level the answer is most likely no. Virtually all of the same fundamental issues, concerns and strategies are the same. The goals are certainly the same: deliver the project on time, on budget to a happy client.

The principles governing the success or failure of both types of projects are subject to all the same conditions: time, scope and budget. The pitfalls are certainly similar: clear definition of business goals and what constitutes success, scope creep, managing expectations, gathering complete business requirements, finding the right stake holders to provide input for those requirements and having strong senior backing to ensure project success (among others).

There are however some small differences, and those small differences can have a big impact on the efficacy of a project manager and the delivery of a successful project. This is an attempt to identify some of those differences and provide some strategies and tools to mitigate the risks they present.

While the range of projects that encompass the IT industry as varied and vast a large majority of the work that project managers are involved with are not projects involving brand new products. Many projects involve working within the confines of a system that has already been defined and constructed in some manner. This is especially true of organizations with Software as a Service business model.

As with any organization there are different types of projects that managers will need to be involved with. These might include: initial deployment for new clients, ongoing support requests, ongoing requests for customizations and upgrades. This conversation will focus on initial deployment for new clients, however it is important to keep all of the additional project types in mind, especially the upgrade, while rolling out the initial deployment.

At the end of the day all project managers and all project management methodologies have the same goals and intentions.

Limitations of Project Management when dealing with Software as a Service

Unlike a project that begins with a clean slate and blue sky all projects in a SaaS model will begin with a majority of the systems functionality defined. This may include things like data model, business logic, user interfaces.

While this may seem obvious the importance of this cannot be overstated. It is crucial that project managers understand the core functionality as thoroughly as possible. This does not mean that the project manager needs to have the same level of technical detail as the system developers do, however knowing as much as possible provides the project manager credibility with the client.

The PM at a SaaS vendor involves a combination of subject matter expert, client services and project management (with a small percentage of sales throw in for good measure).

Understanding the high level business objects is crucial in every project, however in SaaS the PM needs to be able to present lucid and valid business value propositions when any deviation from the standard product configuration is encountered. Education is the key, and the earlier and more comprehensive the education process can be the more efficient the process will be.

It is the PM's role to understand the business need from the client and demonstrate how that business need is address with the standard product functionality.

This may not be an easy task as frequently clients will not be able to separate the process used internally to accomplish a specific business objective with the objective itself. A large part of this process is educating clients about the core capabilities of the product.

The level of configuration that is available for a client varies depending on the organization's maturity level. The more mature the organization the more configurable the product may be, however there will be less flexibility to introduce customized features. Additionally the more mature an organization is the longer the cycle to add new feature to the product.



It is important to remember that unlike many software projects the SaaS client implementation is specifically designed to be upgraded in the relatively near future. Any customization for a specific client that is not incorporated into the code base for every client will likely present a barrier when the organization moves to the next version of the software.

Working with restrictions involved with SaaS, requirements gathering largely becomes an exercise in gap analysis. Where are the true differences between what a specific client needs to make their program a success that all of your other clients do not? If the product / organization is mature those gaps should become increasingly small.

There are of course exceptions. One exception might be a client that operates in an industry that has never used the product before. When deploying these clients an important factor to consider is how representative is this client for their industry? For example are business requirements being driven by government regulations that would apply to every organization in that industry or are they being driven by specific corporate mandates?

If one of the organization's goals is to attract more clients from this industry investment in implementing new features might be worth developing, however any schedule would need to be adjusted to ensure that proper QA time is being incorporated for new features.

up next time, how to handle feedback from client, further discussions around customizations and other random thoughts...


Thursday, October 16, 2008

How the Service part of SaaS can help out in troubled economic times (say like now for instance).

So as the pool of money organizations has to spend on external programs shrinks does this have an impact on SaaS providers?

The honest short answer is, of course it does. However with lower initial costs and quicker times to deployment SaaS solutions also begin to look attractive as compared with installed software solutions (there is an advantage to a SaaS solution), however lower spending means fewer new opportunities.

The big challenge for a SaaS organization revolves around the ability to quickly recognize contracted recurring monthly revenues. This means the sooner you can move from contract signature to deployed solution the better.

What are the barriers to a quick deployment? There are the internal barriers for any SaaS provider; things like how long can you actually roll something out? Does it take a team 6 months of work, or can you roll out a solution to production in a matter of days? These factors are entirely within the control of the provider.

In my experience some of the biggest barriers to launch (the key milestone to recognize revenues) are clients, especially in the enterprise space. The more dependent upon a client your deployment process is, the longer it will take. That is a pretty straight forward equation. This seems to be easily solved by limiting the number of decisions clients need to make, however as each product offering becomes increasingly complex the number of decision points increases.

This is where the Services part of Software as a Service can come into play. Having a set of well defined best practices around configuration of your product is crucial to shortening deployment times. These best practices need to be well documented, and backed up with demonstrable experiences (i.e. stats, research, metrics, etc).

All of your best practices needs to be able to tie back to the specific business goals the client has purchased your product in order to attain. If your product can address multiple business goals then you need multiple sets of documented best practices and all client facing deployment teams need to be confident they know and understand them and all the nuances that entails.

Large enterprises are used to being able to dictate requirements, however in a SaaS model that flexibility doesn't necessarily exist. Large enterprises also can get stuck being focused on minutiae and lose sight of the larger goals. It is the job of the services team to keep clients focused on the larger business goals to stay on target for the quickest possible deployment.

That is an easy statement to type, harder to realize. I recognize that, but the services side of the Software as a Service is a crucial component that should help ensure that time to recognize that monthly recurring revenue decreases. Documented best practices is often a tool that is overlooked and underutilized.