SaaS: Our Experience and Insight
The Software as a Service (SaaS) business model is a fast-growing trend nowadays. Companies, from small businesses to large enterprises, are trying to automate processes as much as possible to save time and costs, and SaaS solutions and services help them achieve process automation, reduce resources, and improve quality.
In this article, I will share our journey of designing a SaaS application and our recommendations to deliver a more successful product that will gain the customer’s trust. A win-win solution for both the business and customer requires a carefully-designed SaaS application.
The current trend for consumers is having a simple cloud solution or service with instant access, one-click sign-up, fast on-boarding, mobile friendly, timely notification, and pay-as-you-go subscription model. Customers can log in from any device at any time. From our experience, the customers expect to have an opportunity to try the software for free before signing up for a monthly or annual subscription.
"IDC estimates that vendor revenue in the worldwide cloud system and service management software market, including SaaS and on-premises software, grew 33.5% in 2019. Customers continued to shift toward SaaS-delivered solutions".
The key considerations for designing software in this competitive market are a free trial, subscription model, modern user interface (UI), easy navigation, instant access, cloud capability, one-click payment, and security.
Understand the Business Value Proposition
Every SaaS solution or service is addressing a business problem, so it is important to understand whether the business is providing a solution to other business (B2B) or customers (B2C).
We all are consumers of many applications in the market from banking to healthcare to education. We have experience as customers for B2C applications, however B2B solutions require us to have industry knowledge. It is important to know the industry, current challenges, end users, current products in the market, and the lacking features from the end user’s perspective.
Business case studies and market research documents are great sources to learn from and to understand the industry’s end user and product requirements thoroughly.
Recommended Steps for a Successful SaaS Application
Our foremost recommendation is to start the design effort from the end user perspective. It includes the UI design, user roles and permissions, application flow, technology stack, data structure, integrations, hosting and deployment, testing, and releases. A clearer picture of the target industry will help us design the SaaS application successfully. There are many tools, technologies, and cloud vendors available in the market to accelerate our SaaS delivery.
Customers’ expectations are the driving factors for the best design, so our goal should be to create a lasting first impression with our target audience.
Every industry has its own standards for application design, one simple example is keeping the logo on the top left and a call to action (CTA) button on the top right. It is recommended to follow industry design conventions and standards.The following questions can guide you to finding the right standards and recommendations.
Latest technologies provide more intuitive and clean design features with simple component implementations that are revolutionary to the IT industry. As an example, users are interested in knowing when the last entry was made. A component is available to show it within seconds, minutes, or hours. We should do some basic research on the trends and customer behavior to use the right design components.
We usually find the standard frameworks and templates available in the market to get a better idea of all the available components. To help us save design and development time, we recommend not to reinvent the wheel for the application design framework and components unless you are building a new one in the market or learning.
Aesthetic and minimalist design should be the primary goal for SaaS application. Take Apple for example.
User Roles and Permissions
SaaS applications are designed as a role-based application with different permissions and access levels for data security. All permissions and access levels can be controlled with easy clicks by the admin role.
It is vital to identify all possible roles, permissions and access levels for the application to set up the structure right up front and scale it when the product evolves. If the product is serving many roles within the company, the structure will become complex. We should consider addressing it by grouping them, defining the hierarchy and assigning permissions.
Ex: Users – Groups – Roles – Permissions
Super admin must have the capability to manage it at any time. The permissions can be identified and defined at the page level, operations level, or data level. For example, access to the Dashboard page is given only to the management team, access to add groups only to group admins, and edit/delete options at the data level to certain users.
From our experience, a structured approach based on use cases helps us manage better when the application scales. In addition, the design flexibility and ease of turning on and off features in the front end with super admin authority is better than updating code in the backend. Amazon’s AWS is one of many examples of how users, groups, and permissions are designed and managed.
SaaS applications should be designed very well for each persona with high-level intuition. User stories should be written in such a way to depict a picture of user experience, visual design, and navigation flow for the design and development team.
Well-executed application interaction flow will make the customer continue to proceed even if the look and feel are not great. It is important to understand human behavior with computer operations. When understood, the interaction becomes successful in gaining the customer’s trust.
Success comes from a simple design, clearly-defined flow, intuitive UI, and easy use. As a solution architect, it is our job to design UI to clearly communicate to the user interaction. The one question we need to ask ourselves is how easily a new user can navigate this application for a given role.
Google’s Gmail application is used by most of our customers, meaning they are used to Gmail’s features. Using familiar features is one of the key considerations for easy navigation design. We have used Google’s advanced search with multiple search options by keeping the list table as simple as few columns, and it is a big hit with our customers.
There are many tools designers use to design user interfaces and user experiences. The mind map is one of the most powerful tools to put actions and flow into a comprehensive layout.
Simple and easily navigable applications will stand out and represent our company’s quality work. Highly successful applications have consistent design elements, follow industry conventions, and maintain standards.
Our goal is to provide a strong foundation to build the application with the technology choices by keeping scaling in mind. The choice of technologies play a vital role when it comes to user interface, data access, security, performance, integrations, and hosting. Every company has a different approach based on many factors.These are the current technology stack of our SaaS applications.
Our technology choices are based on market trends, company growth, and the developer’s expertise. Productivity, timely delivery, resource availability, stability, scalability, and ongoing maintenance are key factors when choosing technology.
SaaS databases can be designed in multiple ways for multi-tenant concepts. It can be designed for one database per customer, schema per customer, or one database with tenant identifier. Depending on the approach, the design should consider the security with roles, permissions, and data level security.
It is recommended to follow the database design standards for optimal performance and scalable solutions.
Comprehensive SaaS service includes features from other systems, meaning the SaaS application should be flexible enough to integrate with other commercially available solutions through an Application Programming Interface (API). Some common examples are Payment Gateway Integration for payments, QuickBooks for billing, Eventbrite for event integrations, and more. It is recommended to plan for all future integrations even if not included in earlier versions because it helps the development team add integrations easily when needed.
Hosting & Deployment
SaaS application architecture is designed to provide cloud or on premise solutions. In general, the design is flexible, so it can accommodate enterprise requirements. Multi-tenancy is common in many applications of the service industry. Multi-tenancy, where a single instance of a software application is hosted on a single server to serve multiple customers, is common in cloud solutions. Multi-tenancy can be designed at different layers of the system including infrastructure layer, database layer, or application layer.
SaaS architecture can vary based on those layers. It can be deployed either through a single database or through separate databases for tenants. There are pros and cons both from both the developer and business standpoints. Maintaining the code base and version is easier for developers in this approach. The choice of architecture design should consider “security” as the key factor as infrastructure is shared among all users. This includes data backup, transaction-level data security, encryption, and password protection.
There are many cloud vendors available to set up and configure SaaS solutions easily with different architectures. AWS is a cloud vendor where users can easily configure and scale as their application evolves.
The user stories defined earlier will help the team identify possible test case scenarios, test data, and write out test plans. It is critical to write test plans while the application is in the development phase so it can be tested as soon as the application is ready.
It is recommended to perform the testing from different devices and browsers to mimic user behavior as much as possible. A bug-free and high-performance application will increase customer retention in a competitive market.
Automation testing helps for repetitive testing, not for earlier releases as features will be changing slightly, but for future versions and upgrades once the product is stable.
There are many open-source tools and technologies available to conduct testing easily such as Cypress.io, Appium, Selenium, and more.
In multi-tenant SaaS applications, we are required to regularly deliver new releases and software upgrades. Planning and maintaining continuous development, continuous integration, version control, release planning, deployment procedure, and deployment tools are important.
Every change or feature upgrade will go through the same cycle of design, development, testing, and release. This should be planned and executed very well for seamless upgrades with no error. Modular architecture will be helpful for releases, especially when there are small changes.
It is important to remember that deployment glitches happen with a cross-functional team, so preparing developers to manage issues quickly and smoothly is the key to success.
From our experience, the primary focus is always identifying the root causes of a production problem, providing a quick solution immediately and a permanent solution soon. It is helpful to maintain a code backup to revert to a previous version if absolutely required.
Automating a release is the best way to reduce mistakes and maintain a smooth process.
Poor customer service can lead to losing customers. Our support system should be flawless, intuitive and easy to reach for customers whether it is with email, chat, FAQs, or knowledge base. We recommend designing “get support” or “need help” buttons which are highly visible.
If our SaaS application is providing a free subscription, customers will want to try it out on their own. If customers are successful without asking anyone for help or learning from the FAQ, we have done a good job and reduced acquisition costs for the customer to sign up.
Our ticketing system should be simple enough to raise a ticket and get an instant response to keep the customer for a longer period. In our experience, customers are often looking to change software because the support system is not that great. It is important to retain existing customers with a good support system.
Support tickets are the customer’s feedback on our SaaS application. We take time to analyze all support tickets, review processes, and provide functions to reduce support tickets as much as possible.
A well-designed SaaS application will stand out in the competitive market and offer a win-win solution for both business and end users. The above considerations are essential to apply at an early stage to create a product that differentiates very well in the market.
Instant access, clean user interface, simple-flow, bug-free, and premium-support SaaS products will always be on the rise!
Finally, the team behind the product will be able to manage efficiently in terms of scalability, security, performance, maintenance, and support when the user base increases and business expands.