According to Gartner, user spending on SaaS is growing year by year, putting it far in the lead of other “as a service” delivery models. Recent growth is estimated in the tens of billions of dollars annually, from $121 billion in 2020 to $145 billion in 2021. Gartner predicts $171 billion in user spending on SaaS by the end of 2022, which would equal 18 percent growth in comparison to 2021.
In this article, we disclose the whole process of custom SaaS app development. The theoretical material is supported by our real technical experience and an examination of cases we’ve worked on, actionable insights regarding outsourcing SaaS development, and recommendations from our experts.
What is a SaaS solution and how does it differ from traditional licensed software?
This is an application delivery model. It allows users to access a cloud-based app using the internet and a web browser without needing to install software on their device. With traditional licensed software, users would buy a software license and install software locally on their own devices. In comparison to traditional software products, SaaS apps don’t require customers to use their own server hardware or run software on a particular device. Instead, they let customers access ready-to-use software from any device and all of the heavy lifting is done in the cloud.
Advantages of SaaS
Benefits of this software distribution model cover multiple aspects of a solution’s building, maintenance, upgrading, and provisioning.
Regular revenue. A subscription business model guarantees regular revenue. With the introduction of new functionality, the subscription cost usually increases, thus increasing the company’s revenue.
Lower unit cost with business growth. The constant growth of the provider’s company and an influx of customers over time allows a provider to shift to bulk sales at a lower price while increasing their net profit.
Hardware and setup advantages
Easy, cheap, and reliable maintenance. Providers don’t spend resources on buying and maintaining hardware, as they pay for it indirectly via a subscription for a cloud computing platform. This approach guarantees greater hardware reliability. Some cloud computing products have servers all around the world. Thanks to a content delivery network, or CDN, customers can enjoy high performance from any location.
Fast and regular updates. Traditional licensed software requires end users to wait a long time until an update is delivered to their hardware, which is inconvenient. SaaS delivers updates to all end users simultaneously, automatically, and fast.
Less time to launch. There’s no need for providers to work with the customer’s hardware. A customer can start using the app right after starting a subscription.
Development and enhancement advantages
Scalability. A SaaS delivery model gives providers absolute control of the whole platform regardless of clients’ and end users’ locations. They can maintain it from one place, serve a large number of users, and shape traffic with little effort.
Flexibility. SaaS is highly flexible in terms of meeting the audience’s needs and adjusting to new market trends. The ability to change directions and quickly implement new components makes such solutions winning replacements for traditional licensed software.
Security. SaaS applications are built on on-demand cloud computing platforms that guarantee high-quality security for your platform, cloud network, applications, cloud operating system, and physical infrastructure. Your company’s only responsibility is securing customer data.
Configuration and integrations. Cloud-based solutions allow for personalized configurations and integrations with third-party providers.
Business intelligence. A web-based app allows analysts to conduct in-depth analysis of end users’ demands and behavior, allowing specialists to make considered decisions regarding the software’s future enhancements and infrastructure changes. The business intelligence statistics that analysts acquire during post-release analysis help marketers and technical experts make personalized offers, control server capacity, and fine-tune business models.
Increased customer satisfaction and loyalty
Flexible monetization model. SaaS apps let users pay monthly, quarterly, annually, or at some other interval instead of all at once.
Customizable service packages. Customers can choose what functionality they need and pay for nothing more.
Budget flexibility and billing review. Customers can choose a suitable subscription plan with the required set of features. They can stop using the app at any moment, add new features to their plan, and downgrade or upgrade their subscription plan in a few clicks after reviewing their activity.
Increased lifetime value. Constant updates to the application give advantages to customers as well. Providing customers with features they need for work, providers help clients achieve their business goals and streamline their workflows.
Customer support and care. SaaS makes it possible to provide customers with a lot of perks to heighten their satisfaction: real-time human support, discounts, special offers, an option to white label and personalize software, etc.
Trial period. Companies offer short free or discounted trial periods for users to investigate an app’s capabilities before making a decision.
Availability on multiple devices. SaaS applications can be used on any device that has access to the internet, which is a crucial point currently due to remote work because of COVID-19.
The next step is determining if your company is ready to make use of these advantages for enhancing your software.
Determining if your company is ready for a SaaS
You can consider such solutions whether yours is a small, midsize, or enterprise-level company. What really matters are your company’s business goals, budget, and customers.
The B2B segment remains the most appropriate candidate for adopting SaaS solutions, as this delivery model helps B2B providers sell one platform customized to the needs of multiple clients from different industries or establishments as well as to the needs of their end users.
Before you get to building SaaS, you have to make sure your company has the experts required. Working with SaaS applications requires a significant amount of time and a skilled team of professionals who are capable of planning, designing, developing, and deploying a new solution.
If you don’t have a team yet, there are several options to choose from:
Hiring an in-house team on a permanent basis is convenient for long-term solution creation and enhancement, but it entails paying regular salaries even when app creation is on pause.
Hiring freelancers on a temporary basis is suitable for developing applications that won’t get regular updates or that you will stop enhancing right after the first or a short series of releases. However, you will have to gather a team again in case you’d like to continue development, and your new team will spend much time exploring the app.
Hiring an outsourcing software company is the best option because they provide SaaS application development services and consulting. Yalantis, for example, has extensive experience working with such solutions. The advantage of this option is that you can quickly form a team of the experts you need. You will pay a flat fee and if you need further work done on your project, your outsourcing provider will already have documentation on your project details.
A SaaS product development team’s structure varies from project to project, but the skeleton staff is universal: the team has to consist of DevOps, backend developers, frontend developers, quality assurance specialists, UI/UX designers, solution architects, and managers to control the development.
Now that we’ve discussed business details, let’s dive into the SaaS product development process. In the next sections, we will rely on Yalantis’ experience developing software-as-a-service applications and present this process from the perspective of an outsourcing company.
A stage by stage guide to SaaS product development
Developing a software-as-a-service application is time-consuming and cumbersome. It requires a lot of preparatory work, post-development monitoring, and plenty of professionals. To clearly understand what this process entails, we will consider the SaaS development lifecycle.
Stage 1: Roadmapping
Roadmapping is one of the most crucial stages in SaaS creation. It covers comprehensive research, planning, and approval of the app concept. We can’t deny sudden changes due to unpredictable external or internal circumstances such as the urgent building of specific features, budget or time cuts, or cloud provider shift. However, Yalantis experts and our clients discuss and approve the main development path at this stage.
Research and analysis
The first step is researching and analyzing your requirements, company, and product expectations. Business analysts meticulously investigate the industry, competitors, and audiences to identify business opportunities, design strategies for attracting and upselling customers, and assess ways to scale the app.
In this context, our experts draw up the concept for an MVP with major components (design theme, monetization model with advanced billing, user stories with style guides, mockups, functional prototype, etc.) that would solve end users’ issues and address their pains.
During planning, a lead developer can give approximate estimates in terms of solution development deadlines. Our clients have to clearly see how their product will be enhanced over time and when each update will occur. Strategic planning includes assessing the most suitable cloud providers (AWS, Google Cloud, Azure, etc.), establishing partnerships, and announcing new features to end users. The last point is especially important, as it demonstrates the app’s potential to our clients and also demonstrates our own expertise. Specifically for the B2B segment, it’s important to allow end users to request features already at the strategic planning stage to accurately plan their implementation.
Communication with clients
When communicating with clients, we give them a clear understanding of how to develop a software-as-a-service application. We provide clients with a detailed presentation on their software development and support it with our suggestions, since clients don’t always have clear expectations for their apps or might not be able to accurately describe their vision of it. A business analyst might describe possible business scenarios and processes, visualize revenue streams, present advantages of cooperating with a specific service or cloud provider, and emphasize benefits our clients will get from the app in the future.
Yalantis best practices at the roadmapping stage
Analyze a solution’s capabilities in the long-term perspective. Once the MVP version is released, we can continue to modernize and scale the product in any direction. That’s why we have to plan everything from at least the five-year perspective. Integrations, features, and partnerships substantially affect the solution. Things you don’t consider at the beginning may create complications later. For example, a new partnership may force us to rethink the architecture design.
Standardize services and functionality. The client decides on the default feature set and we help them create subscription models. It’s important to analyze all dependencies, end users’ needs, and end users’ possible feature requests.
Draw up a detailed monetization model. This model should include all billing operations supported inside the platform, i.e. subscription models, transaction fees, purchases, custom pricing, and trial periods. We usually implement anti-fraud mechanisms and payment data protection with data encryption and storage.
Make clear cost projections. Expenditures on maintenance are one of the critical points to consider when developing SaaS solutions. Before presenting clients with cost projections, we take into account the cost of each aspect: hardware, software, cloud providers, human resources, integrations, and communication.
Sometimes, cooperation between a client and an outsourcing company involves more than just clarifying details and approving a SaaS product development strategy. There are projects where clients actively participate in the analysis stage.
Our experience working with clients' stakeholders
To best meet their expectations, we encourage our clients to closely cooperate with us at the research and analysis stage. One project in which the client’s specialists supported us during analysis was working on a SaaS solution for RAKwireless. Yalantis developed a device management platform for IoT network maintenance. Both Yalantis and RAKwireless specialists contributed to analysis that allowed us to clearly define business goals, understand the client’s product vision, and develop a SaaS solution that fully met our client's requirements.
As soon as we approve the concept with our client and complete the strategic planning stage, we start working on the architecture design.
Stage 2: SaaS solution architecture
Creating the SaaS application architecture is one of the key aspects of SaaS application development. It affects not only the operation of the application but also how it will scale technologically and business-wise. Solution architects create the design considering opportunities for smooth scaling.
When creating the architectural vision, it’s important to take into account a number of things that are usually implemented at further stages. In the future, this will help you not only in developing the application but also in testing it, releasing it, and updating it with little effort and few issues.
Yalantis’ best practices for building a high-quality solution architecture
According to Yalantis specialists, these are the key things to consider:
Multi-tenant architecture. It allows a platform to scale. To create a software-as-a-service application that can handle a large number of customers, you need a multi-tenant architecture with one database containing information about several customers.
Data security. Multi-tenant application development requires a heavy emphasis on data protection. Shared databases entail the risks of losing data in case a server goes down or exposing data to other users inside the shared server. To secure end users’ data, Yalantis specialists apply data loss prevention practices and tools, data and file encryption mechanisms, and malware prevention methods when developing SaaS products. We also strongly advise clients to set up multi-factor authentication for access control and role and permission management mechanisms.
Besides providing default security measures such as HTTPS/SSL, cloud databases, encrypted file storage, tenant isolation, data backups, and access levels for different user roles, we consider specific security measures based on the type of business, industry, and region.
For example, Yalantis' development team took into account HIPAA (Health Insurance Portability and Accountability Act) requirements when they were building a SaaS online appointment scheduling solution for medical facilities. Developers chose AWS as a HIPAA-compliant infrastructure provider, used HTTPS/SSL protocols for secure data transmission, data encryption techniques, implemented role-based access control (RBAC) mechanisms, and other security measures.
Architecturally Significant Requirements (ASR). To ensure architectural stability, we assess architecture performance requirements, load factor, and predicted growth.
Default third-party integrations. Instead of on-demand personalized integrations, it’s best to create a list of default third-party integrations for payments, audits, etc. for all customers.
SLA (Service-Level Agreement). It’s impossible to avoid downtime. Our clients and their end users need some guarantees that the platform will be stabilized fast in the event of an issue. That’s where an SLA plays its role. With our SLAs, we demonstrate our readiness to ensure the server’s stability in terms of:
High availability: A guarantee for customers that the platform will work stably 99.999% of the time
Latency: The maximum amount of time for the service to return data in response to a user request
Durability: The level of certainty that any single piece of customer data won’t be damaged or lost
RTO (Recovery Time Objective): The maximum allowed amount of time for the service to recover in case of an incident
RPO (Recovery Point Objective): The maximum allowed history of a customer’s operations that can be lost due to an incident. For example, if we set RPO to 20 hours, then after recovery the customer’s service should be in the state it was in no more than 20 hours before the crash.
Risk assessment and management strategies and disaster recovery plans. Disaster management activities should be standardized, documented, and automated. The platform has to meet specified deadlines for disaster recovery outlined in the SLA, which is why each second the platform is down should be spent on recovery procedures. If the problem turns out to be new, we make sure to investigate it and update the recovery plan.
HA/DR strategies to minimize data loss. In case of an unpredictable disaster, the provider’s responsibility is to revive the solution as soon as possible. We implement a High Availability (HA) strategy that helps the system deal with database or server failure and a Disaster Recovery (DR) strategy to cope with data center failure.
Alerts and protocols. First, core on-call and customer support teams should be notified of emergency situations through communication channels linked to monitoring tools that a company chooses. Second, specialists have to know how to deal with emergency situations. To fulfill these conditions, we configure the alerting system and design mechanisms for automated issue resolution according to risk management strategies.
User lifecycle documentation. Yalantis specialists create technical documentation for three stages of user engagement with the service: enrollment, residence, and leaving. User activities on the platform, such as transactions or data management, should be documented and automated from the provider’s side. We describe in detail the process of onboarding (contracts, keys, etc), working (billing, communication, integrations), and leaving (erasing customers’ data, stopping payments, restricting access) in project documentation. These procedures are usually automated to prevent mistakes.
Admin dashboard for customers. Customers need a place where they can review their activity and billing details, customize the service, and configure the feature set. That’s why there’s a strong need for a convenient online account where clients can manage their activity and get first-class support.
Admin dashboard for a support team. A SaaS solution is a huge automated environment in which human support is an indispensable element. Support specialists have to be provided with tools for communicating with customers, logging in to the platform under a customer support account, creating reports for the QA team, etc.
Full automation. A SaaS solution can grow into a gigantic application over time. To ensure smooth monitoring and maintenance, we implement the following practices:
CI/CD. Our specialists build deployment pipelines, implement static code analysis tools, and provide coverage to exclude human factors and accelerate a move to the production stage.
Standardization of approaches and processes. Say you have several teams working on different solution components, and each team makes changes to the code. Simultaneous or uncoordinated changes in the codebase might disrupt the work of the system or cause it to go down. For this and other similar cases, there should be an officer-in-charge to control and approve pull requests.
The architecture design stage is capped off with the creation of a Solution Architecture Document (SAD) that outlines key strategies and decisions. It often contains the justification of the SLA, technical diagrams, forecasts, key principles of the chosen architectural design, business strategies, revenue streams, feature requirements, communication plans, and risk mitigation strategies.
The points we described above are nice to consider in advance from a technical point of view. However, there are situations when clients prioritize urgent delivery of solutions to end users and want to skip certain steps. Unfortunately, pursuing short-term goals can result in architectural clutter that prevents future scaling. We would like to share how we navigated such a situation in order to satisfy both the development team and the client.
Yalantis’ experience adjusting to the client’s business needs
On one of our projects, our client wanted to focus on the short-term perspective and develop some features as soon as possible, jumping over necessary technical steps.
Our team handled the situation as follows: we replanned development in a way that would fulfill the client’s business needs. At the same time, our team laid the foundation for future enhancements, providing new components through intermediate architectural layers instead of direct integrations. Later, our team was able to implement those integrations easier and smoother.
After the architecture design is approved by stakeholders, application development starts.
Stage 3: SaaS Software Development
The SaaS platform development stage brings our plans to life. This process demands close cooperation between solution architects and developers. The development team often chooses an appropriate technology stack (framework, programming languages) at the design stage by assessing the industry and the region where the client’s business operates. This approach helps developers build a solid security system and ensure compliance with security requirements.
Technical specialists have to be aware of the importance of their technological decisions. Whereas an application may theoretically be written in any language, practice says otherwise. Given the need to scale SaaS solutions, the wrong choice of technology stack can put a spoke in the wheels.
Requirements Yalantis always complies with
Security requirements. We pay close attention to relevant laws and regulations in the jurisdictions in which our clients’ solutions will operate. Ignoring compliance requirements can lead to financial losses from the client’s side. If a chosen technology is not ready to comply with local requirements, we may face a situation where nothing can be changed and the only option is to rewrite everything from scratch and reconsider the technology stack.
Performance requirements. Before choosing a technology stack, we evaluate its capabilities and how it will contribute to extensive scaling. The wrong technology or a weak technology will lead to regular database sharding or extra computing resource allocation. Scaling infrastructure will require additional financial resources, and eventually specialists may have to think about a migration strategy.
Stage 4: Testing and Optimization
SaaS testing is conducted throughout the whole SaaS development process. It concerns code, the work of specific product components, the correct communication of integration elements, etc.
At the final stage of testing, our quality assurance engineers check on the app's performance stability, availability, security, interoperability, stress and load, and business workflows to identify defects and conduct a bottleneck analysis. After vulnerability optimization, the platform is tested again.
SaaS solutions are complex and enormous systems that can’t be tested manually. That’s why we incorporate automated testing approaches to avoid human error at the architecture design stage.
When everything is ready, the solution goes to the production stage.
Stage 5: Deployment of the MVP version and metering
As soon as the platform is deployed and available to a wide audience, we monitor its performance stability and gather statistics on the use of features, the work of servers and databases, and so on. After gathering feedback on the work of the MVP version and fine-tuning its performance, the team starts working on further versions of the service, modifying features based on the results of business intelligence analysis.
Outsourcing SaaS development with Yalantis
Yalantis values the experience our specialists gain when cooperating with companies and working on projects. Our team carries out lessons learned in response to problems they’ve faced and does everything to prevent those problems from repeating and ensure a smooth, automated, and error-free deployment process.
Poorly thought-out and poorly prepared deployment processes can result in system failure, poor performance, and even data loss. In addition, the absence of role and permission management mechanisms can cause unstable work of system components. DevOps and release engineers have to solve performance issues in real time, and it isn’t an easy and quick task. To avoid such problems, partner only with experienced software engineering companies.
Yalanits supports full automation practices and uses them successfully when working on SaaS solutions.
Now you know how to create a SaaS application. As you can see, SaaS solution development requires a lot of time, great skills, and a large budget. Make sure that the SaaS application development company you’ve chosen to work with is skilled enough. Yalantis specialists have extensive experience working with SaaS applications, developing high-quality architectures designed for years of active scaling, maintaining supercharged performance, and ensuring high security standards in accordance with the latest methodologies and requirements. Get in touch if you're interested in cooperation with us.
Want to develop an upmarket SaaS solution?
We’re here for you