Wednesday, October 25, 2017

Lessons for Management of a SaaS Application


Over the years I have been responsible for both Software-as-a-Service (SaaS) and On-Premises Applications.  Each has its pros and cons, but from a pure application development point of view it is difficult to beat a SaaS application model.  Retained ownership, speed of deployment and delivery to market, subscription based revenue models, etc. are some of the incredibly powerful benefits of SaaS applications.  However, it is not all roses and rainbows.  Below are a few of my top concerns that should be taken into consideration by all leaders of a SaaS application, regardless of their role.


Don't confuse usership with ownership.

The end user in a SaaS application is similar to a renter of an apartment. They have some rights to things, but they are far from having ownership rights.  Ultimately, they are not responsible, you are.  I like to think of SaaS applications as "They break it, you own it".  This means the Developers and DevOps engineers that build the application and maintain the infrastructure own it from soup to nuts.  They must be extremely defensive in nature and be willing to stop one actor from hurting the rest.  Because of this ownership it is extremely important to understand and clearly delineate between the different rights you versus your users have.

It is not uncommon for different groups to want to blur the line between usership and ownership.  Most common is the users themselves.  They want the control without the responsibility.  If you give up the control of who owns the application, environment, data center, etc. it generally comes with significant consquences.  Some of the consquences mean you have a SaaS application behaving more and more like an On-Premises application and losing some of the unique qualities that make SaaS so appealing in the first place like economies of scale, nimbleness, time to market, continuous deployment, among many others.  It is imperative to stand your ground and ensure the keys to the kingdom are kept squarely in your pocket.

What is good for the goose is good for the gander.

SaaS applications are shared applications.  The same code is used by many different clients or users.  This means that when you are building solutions, you want to make them solve problems for the widest market possible.  There has been a consistent pattern in my career of trying to solve problems for individual customers (usually the most vocal) and then unsuccessfully trying to apply them to the market as a whole.  This leads to a feature being used by a single user and worse an application that doesn't scale well and is incredibly difficult and expensive to support.  Eventually leading to feature fragmentation, feature duplication, feature consolidation and migration.  If you are not familiar with these concepts, they are all extremely time consuming, resource intensive, and expensive to deal with and should be avoided.

Consistency and Simplicity are the foundations of Trust.

Consistency is a key consideration of all applications.  This is especially true for Multi-Tenant SaaS applications as it creates a foundation that helps create an easy to use and intuitive solution.  Easy to use, intuitive design leads to a consistent user experience which is the primary ingredient to gaining your users trust.  If you gain users trust, you have a customer for life or at least until your lose their trust.  Using simple building blocks that work consistently to solve problems regardless of complexity is the hallmark of a successful SaaS Solution.  In general users of a SaaS application should be able to manage themselves and should need minimal to no intervention from you.  In order for that to be successful the application had better be intuitive in how it works.  

One platform to rule them all.

SaaS applications should appear as a single solution regardless of how they are built behind the scenes.  This means they need to scale, ideally both vertically and horizontally and both at the application/business logic tier and the database.  This also means understanding the multi-tenant nature of the application and being able to clearly identify and manage these tenants.  Building tools that are  able to address a single tenant, group of tenants, or all of them will go a long way toward being able to address the needs of your community of users.  Monitoring and maintenance is a long term concern for all SaaS applications.  The solution is owned by you, which requires you make and keep it available and performing at all times.  This becomes more difficult as your grow and scale.   

What is the spice of life?

For SaaS applications the "spice of life" is the ability to personalize and customize the solution.  Users have different patterns, styles, and needs.  Building different levels of customization and personalization into a SaaS application enables users to tailor the application to their needs.  This is incredibly important to building a strong positive user experience as it can't always be expected that the user conform to your approaches.  But customization and personalization is a double edged concept.  It must remain within the protected walls of the application.  Guardrails and limits should always accompany the ability to change the application to meet the needs of individual customers else you fall into the trap of building one-off solutions that cannot be supported in the application in a cost effective way.  This type customization can make changing or growing the application in the future more difficult too.  It is best to tread carefully in the area. 


A firm handshake makes a great first impression.

SaaS application should be able to be integrated with.  People are sharing with you one of the most valuable assets they have: Data.  Being able to get data into and out of your application is a must for all SaaS applications.  Being able to manipulate the data via the business solutions you provide another layer of integration that is often representative of a mature SaaS application.


Security is a key thread of the application tapestry.

As customers rely on your application to provide them with the services to meet their needs they also are entrusting you with their data.  The base expectations is that you are a good steward of their assets and you will keep them safe.  This means security must be a top level concern for all SaaS applications.

There are many concerns when building or managing software solutions regardless of how they are deployed and distributed.  SaaS applications have become the norm in a lot of ways and they come with their own unique concerns.  Maintaining the right mindset and understanding the problem space of SaaS applications is key to the success of the project.  If you are on this journey, good luck!  I hope some of my top concerns help guide your way.  

2 comments:

  1. Enjoyed reading the insights on SaaS management. It's crucial for businesses to grasp these lessons. If you're further exploring the world of SaaS and want insights on development costs, this resource might be helpful: https://www.cleveroad.com/blog/saas-development-cost/.

    ReplyDelete