Cloud Strategies works with client’s software development organizations to address the many new requirements of development of software for SaaS. We assist software organizations develop the appropriate architectures and processes for SaaS development, and aid in the transition of existing software organization to build SaaS applications.
Software Development for SaaS
Client Technology Choices
New products will almost exclusively employ HTML5 technology as a key component of their desktop client software which is well suited for SaaS enablement. Many software companies have been reluctant to adopt HTML5 for their enterprise applications because of the high (40%) penetration of XP in the marketplace which does not allow a Microsoft browser supporting HTML5.
Mobile SaaS applications may be implemented in either HTML5 or Native Mobile Apps depending on the requirements of the application as discussed in the post, “Choosing between HTML5 and Native Mobile Apps“.
SaaS products will generally want to have APIs to allow development of additional capabilities by VARs and third party developers, integrate with other software packages especially analytics and Big Data applications, and provide services to mobile applications.
Server Side Requirements
Server side development has significant new requirements. The performance requirements for SaaS environment where many tenants share the same (virtual) server are much more demanding than on-premise software supporting a single tenant. Multi-tenant shared databases require additional security to logically isolate data from different tenants on the same server.
SaaS security must be more rigorous since access to the application is not controlled by a corporate firewall. Compliance and audit issues become more complex with multiple tenants running in a remote location. In some cases, such as with PCI compliance, the data locality becomes a mandatory requirement requiring software awareness and control of the location of the data.
Software upgrades become more complex because of the desire to upgrade the software without a service interruption, or at worst, during a brief maintenance window. This precludes being able to perform lengthy operations that may occur during a software update such as a lengthy database restructuring. Some SaaS companies such as NetSuite support two releases simultaneously for a number of weeks to allow their customers the ability to transition to a new software release at their timing, though most SaaS companies upgrade all of their clients simultaneously.
Software uptime becomes much more critical as any unplanned downtime potentially effecting thousands or millions of clients becomes much more visible. SaaS software must be architected to be much more resilient from failure and have a low MTTR.
Additional attention must be considered in the SaaS architecture to ensure that software failover (HA) is well designed and the time to recover from any process of data corruption is minimal.
Other software requirements unique to SaaS are the on-boarding process for new tenants and the the billing for tenant use. While there are third party packages to assist in these requirements, they need to be included in the software architecture.
Finally, the SaaS company is now responsible for the operation of the software such as system monitoring including performance, fault detection, intrusion detection and remediation, security, and audit streams. While other software will be used to perform many of these SaaS operational functions, the company’s SaaS architecture must be designed to work well with these tools.
- A more complete discussion of Software Development for SaaS companies – “Why Software Development for SaaS is Different.”
- A guide for choosing between HTML5 and Native Mobile Apps for SaaS companies – “Choosing between HTML5 and Native Mobile Apps.”
- A guide for the software and operational requirements for SaaS companies – “Requirements for Enterprise SaaS Applications.”
Cloud Strategies can help you navigate through the sales & marketing requirements to build SaaS applications.
Contact Us for a free hour review of your SaaS development.