Software as a service, or SaaS, is a software delivery model that hosts business applications—such as customer relationship management (CRM) services, human resources management services, content management systems (CMS) or accounting services—on the cloud (in most cases, on the internet). By using cloud computing to deliver these virtual services, customers reduce costs normally associated with hosting data on physical servers and machines. SaaS has grown significantly within the last few years due to both consumers’ and businesses’ insatiable appetites for easy access to and consumption of online data.
According to the analyst firm Gartner, the SaaS market will continue its upward trajectory, with sales forecast to reach as high as $22.1 billion in 2015. The cost savings for customers—particularly small businesses and non-profits looking to subscribe to enterprise software products without high licensing fees—is one of the factors driving growth. However, there are also aspiring startups looking to “SaaS” their products and provide service offerings that help automate core business functions.
Unlike application service providers (ASPs), which operate software environments (i.e. physical machines that require extensive maintenance and long-term contracts), SaaS service providers rent cloud applications to customers on a contractual or pay-as-you-go basis.
Some of the major drawbacks of developing and deploying traditional software are the high upfront costs associated with migration, transition downtime, customizations and, of course, return on investment. Moreover, infrastructure required to run and maintain a web application—hardware, physical services, etc.—usually requires big IT budgets and significant man hours.
Nevertheless, from the customer’s perspective, this is one of the aspects of SaaS that makes it so appealing. SaaS users aren’t required to install anything in order to use a SaaS product; they can simply log into the software and start using its tools and features so long as they have an internet connection and web browser.
Build the Architecture
One of the first steps to building a SaaS application, product or platform is ensuring that the software architecture is cloud-friendly and easily scalable. Ideally, a SaaS application should support multi-tenancy, meaning it should be able to deliver online services to multiple customers and subscribers on a single server or software instance.
This could be done in a number of ways, including utilizing unique web databases and applications for each software user, or allowing all users to share both an application and database version of the software. Salesforce.com, one of the most widely used and successful SaaS providers, offers its enterprise cloud-computing services based on this model. You could also install a single instance of software that customers share, but maintain a unique database for each customer’s software configuration.
Other factors to consider as you build your SaaS app include:
- Building web apps using horizontal scaling, or apps that can be installed on multiple computers without the use of a physical copy of the software.
- Designing a platform that allows extensive customization, including extending existing data objects, add-ons (e.g. software modules) or integrating with other web apps.
- Offering a self-service model that thrives on user-driven development and implementation. For example, Squarespace, a SaaS application that allows web users to build entire websites and blogs with little or no coding knowledge, offers a wide array of user-friendly tools for design and customization.
- Adding multiple layers of security to protect sensitive user data. Naturally, this is a top concern when “sharing” a SaaS app across multiple hosts or users. Factors you should consider include user authentication, rules and permissions (e.g. who can see what data based on role or location), encryption and audit trails.
There are certainly other areas to explore when developing a SaaS application. However, the aforementioned list should help you build a development team that not only has experience in these areas, but can also put that knowledge to work by making your web app SaaS-ready.
Host Your Software Environment
Once you’ve built your web app, the next step is finding an open cloud company that will give you the resources you need to test and deploy your web app. Companies such as Rackspace offer startups open-source operating systems for cloud computing as well as apps that rely on servers or a combination of both.
The primary benefit of migrating your existing application to a cloud provider is that you don’t have to worry about building or maintaining the infrastructure that allows your app to function. The entire “stack” of a server—the application, operating system and configuration—is captured and moved to the cloud server instance. There are several benefits to using this approach:
- Fast and cost-effective migration.
- Minimized downtime and regression testing during the program-development process.
- Reduced hardware and support staff, which helps keep initial IT costs low.
- Access to the cloud provider’s engineering team to manage application-layer and infrastructure components, keeping your system up-to-date and at optimal performance.
Using a cloud-hosting service to provide many of the support that would otherwise require hiring, training and growing a team of experienced software engineers allows startups and small businesses to focus on what’s truly important: running a business.
There are, however, some downsides to SaaS to keep in mind:
- Dependency on the internet to function.
- Security concerns due to data being stored on the cloud.
- Some latency issues due to data being stored at a further distance from the user.
As long as these sticking points aren’t critical to your product functions or target market, SaaS may be a great way to share your software with users.
Offer Easy and Seamless Customer Service
The third and probably most vital component of building a SaaS app is delivering excellent customer service that offers an easy and flexible subscription process as well as efficient and transparent billing. From the moment visitors land on your registration page, to the point when they launch your app, ensure that the signup and implementation process is easy and seamless; simplicity in the signup and setup of your app will encourage users to start buying and using your software.
As you’re thinking about your customer-service model and philosophy, consider implementing a dashboard or other features that provide customers with a quick snapshot of usage data, system roles and definitions, and billing options. Giving customers the ability to quickly modify or tweak subscription settings creates transparency and empowers users to scale up features and services effortlessly. Due to potential latency issues, it’s also a good idea to have customer service representatives ready to ease the concerns of any customers due to slow processing times.
Finally, don’t forget about data-import and -export services. Your customers will likely have old data that need to be brought into your web app. This process can sometimes be difficult when transferring large amounts of data on the internet from another SaaS, so be sure to be prepared to assist customers with this roadblock. Likewise, offer services that enable app users to easily delete extra data from your application, so as to reduce concerns about storing sensitive data on the cloud.