Why your SaaS software needs a cockpit?
The hype around software as a service (SaaS) platforms has grown by multitudes and it wouldn’t be wrong to say that SaaS platforms are growing by leaps and bounds. Although, this hype is in a way beneficial and shows the successful adoption of a SaaS as a solution to many businesses. But it also uncovers another important facet of software development — successful deployment of SaaS products without any overflow of expectations, avoiding any misunderstandings and disillusionment regarding the scope of the product.
I have been a part of many development projects and I am aware of the ever growing customer expectations (with ever shrinking budgets and timelines). And with my years of experience I can say that every SaaS product needs a Cockpit.
Yes. A cockpit.
You’ve probably heard the word. It’s a common lexicon in the world of ships and aircrafts. Cockpits help pilots in monitoring the flight stats- they have flight data indicators, navigation displays, backup instruments and of course the pilot who steers the plane. Needless to say, it is as important as any of the core components of aircraft.
Bringing the analogy to software development, don’t you think we need something similar to a cockpit? You do not want your customers to say/feel any of these:
- We can’t access the application anymore. That’s a Crash!
- It is taking a lot of time today. Damn that turbulence.
- It is showing incorrect results. Gone nuts, have you?
- We are not able to acquire new clients easily. Failed take off!
To manage it well, you need to follow some of the essential and often overlooked services in your SaaS platform. Few of them are-
Configurability
Every user will use software to solve their unique needs. Although domain of their problems may be similar, but each will require little tweaks here and there. There will be small variations in business rules. For example, some customers will require two-factor authentication and some won’t. As a SaaS provider, you will require the ability to make those tweaks without any downtime. And, without affecting other customers unintentionally.
So, you need this ability in your cockpit to make these tweaks without reaching out to the engineering team to do it for you. Because the moment you have to make big changes in code to incorporate these tweaks for a particular client, two things that’ll cross your mind are- cost and delay in rolling out the changes.
Needless to say, both of these are not going to make your customers happy. As a product manager, you need to think of configurability all along. Don’t delay it till the time it becomes a necessity.
Another impact of lack of or limited configurability could be — your product will be in danger of being single tenant. Supporting multi-tenancy requires configurability at its heart. Kind of things that need to be configurable are — UI personalization, analyzing what an organization needs, customized rules processing, custom workflows, custom notification requirements, custom security needs etc.
Health monitoring and problem reporting
Typical SaaS applications aren’t social in nature. A lot of business needs depend upon them. They are critical for businesses. If something goes wrong, it’s going to affect their operations, make a lot of unhappy users and who knows how much of potential monetary loss. Therefore it is important to know the health of all your services all the time.
You would not want your users to come and tell you that a feature is not working as expected. Or it is down altogether. You would like the system itself to give vital clues if something is not right.
For example, if user login for a particular client used to take 500 ms, but it has been taking 800 ms since last 15 min, you would like your system administrators to know about it asap. Or, what if there have been more errors of a particular type reported in the system since a new roll out? The system should be capable enough to report and log such errors. For this to happen, you need to bake in required ability in your product. Fitting it in later, is not as easy as it may sound.
Licenses and quota management
Usually any kind of licensing model is postponed up until the last moment. But, by that time, it becomes very hard to implement. It’s better to keep an eye on possible licensing models right from the beginning. Chances are, you won’t be too much off from whatever kind of model you choose. Deviations will be easy to implement later rather than not having any.
Another aspect that is often totally missed is quota management. A very simplistic example of applying quota is — for a particular licensing model, how many transactions are allowed in a day.
If you are thinking why this is even important here is the reason — every transaction costs some money. Your profitability will be impacted if you do not control the per transaction cost. Also, this will help in planning your infrastructure needs. Based on quota that clients have opted for, your IT team will get an idea of how much hardware muscles need to be added and by when.
Auditing
The responsibility of data and what happens with that lies with the SaaS provider. Therefore, it is important to have robust auditing in place to track all the entity changes that happens in the system. At times it may be required to set up notifications on certain kind of events based on predefined thresholds.
For example if there are too many failed logins, system administrator may want to get an alert and also the ability to get details around those failed logins. For instance, from where they have been originated, what time etc. Auditing framework is very hard to add to the system later on.
This is one of those NFRs (non-functional requirements) that is often postponed to later stages. But the harsh truth is that stage never comes. As system grows, the cost of implementation of auditing grows exponentially. Sometimes compliance requirements enforce SaaS providers to setup auditing right from the word go. In other cases, it doesn’t. Whatever be the case, it is essential that auditing is built into the system right from beginning.
These are some of the essential NFRs that are must for every SaaS provider to consider early in the product life cycle. There are a few more– multi-tenancy, security, integrations, scalability etc. The ones mentioned in this article are most often overlooked.
Your system administrators, and to some extent administrators of each client, need a self-service portal to manage configurations, assess health of system, get alerts in case of problems and licenses. This self-service portal is your cockpit. Thinking of this cockpit early in the lifecycle of your product will help in baking the required support in the system for making this cockpit operational and helpful.
Hope this help you in building better products and sailing efficiently through your product management life cycle.
I wrote this blog for our Medium Publication- Unboxing Product Management. The publication is a weekly column by leaders of Quovantis to share their learning and knowledge with the world. If you liked reading the blog, clap your heart out and help others find it.