Software as a Service is a delivery model of business solutions where the application is hosted on the provider’s server and available for the client as a subscription service. This means that SaaS applications do not require installation and the product can be used through a mobile app or through a browser. For that reason SaaS became the most popular solution delivery method for startups.
SaaS projects are becoming more and more popular among businesses. There is the CRM, ERP software, project management, email marketing, collaboration software, vertical applications etc. Thanks to the experience I have gained working on SaaS projects I have come up with top 5 SaaS development challenges that are to be faced during the process no matter what kind of a SaaS solution you will go after:
1. Custom third-party payment integration
A payment functionality is an essential part of a SaaS product. Usually, it is achieved through system integration with a third-party payment service. This integration heads towards two ends: the easy way and the more demanding one. The easier option is a payment service with a great support for the integration. The more challenging one is where the development team needs to examine the technical aspects and challenges behind the payment integration to create appropriate application parts, including services and facades to integrate the external payment service seamlessly. The standard payment solutions already expose libraries necessary for integration. Such services are for instance PayPal, Secure Trading, QuickPay, Skrill or Braintree, which we implemented on many projects. What is important is that the development team creates a set of automated and manual tests, to ensure that the payment integration works properly.
2. Safe and well-defined database access that is GDPR compliant
With the GDPR restrictions taking over the world, together with standard tenants protection, a secure databases design is a necessary part of a successful SaaS product. On top of that, with projects for the American clients (especially specific systems like for medical industries), we need to take additional steps and apply the HIPAA constraints ensuring that the patients data does not leak outside of the system boundaries. The GDPR or HIPAA requirements should be defined and implemented into the system in the initial phase. During the system creation, unit and integration tests need to be applied to ensure the restrictions of the data access. To have a persisted data storage we usually make use of PostgreSQL, MySQL, Elastic Search for visualization, analysis, and reliable searches, Neo4j and MongoDB for database management and Redis - used as a database, message broker and cache.
3. Guaranteeing zero-downtime deployment
Availability of the system is also of a high priority. One of the drawbacks that we see from time to time, where the system might not be fully accessible to the user, is when a new system version is released. Here, the development team can make use of a zero downtime deployment strategy. This means that during the process of deployment the service is fully responsive and stays that way the entire time. In traditional systems, the application notifies the users about scheduled downtime, but the blue-green deployment strategy ensures nearly zero-downtime deployment, making the SaaS solutions reliable.
4. Managing SaaS subscription lifecycle
One of the ways to handle SaaS plans and subscriptions is to use a ready-made solution. Sometimes the solution can already be integrated with a payment service, like in the case of Stripe. Stripe has a straightforward approach to taking care of these two things along with payments, exposing its API to be used by the SaaS system. It is well documented and provides lots of examples, so developers feel quite comfortable using it. Still, if the product owner decides to build subscriptions and plans management into the SaaS platform, it is feasible. The good part of this approach is having it all in one place, not being dependent on the external provider, paying only once for the development of this solution instead of monthly or yearly fees for the management on the external services. The best way to deal with subscription systems is to use prebuild ready-to-use solutions. Since the SaaS subscription life cycle consists of subscribing, trailing, upgrading, canceling, resubscribing a proper management of every part of this process is the key to a seamless integration of billing systems into SaaS.
5. A customizable system
An important factor of a good SaaS system is that it needs to be fully customizable, starting from the interface up to the underlying system layers. The customization always remains to be decided by our client or the product owner. We had cases, where there was a need to have customization of subdomain, layout, colors, templates and more, for each tenant separately. Handling such requirements might be demanding, but if designed and tackled in a lean and agile manner, it can benefit a lot the system in the long run.
SaaS solutions bring a lot of business advantages like lowering production costs, faster development, great flexibility. They are getting attention from both vendors and consumers. It is estimated that by 2020 a quarter of organizations will be using SaaS as their core CRM systems. Due to the ease of development and reach capabilities the future of SaaS looks bright, outpacing the traditional product delivery. A successful SaaS project means a fully customizable system with a safe, GDPR compliant database, zero-downtime deployment, fully integrated with third-party payment infrastructures.