With cloud services becoming increasingly popular in recent years, more and more companies, both large and small, looking into development of their own SaaS projects, whether for an external market or for internal use to streamline operations within the company. However, not all potential SaaS project developers realize a unique set of challenges that come with developing SaaS solutions.

Written by:
Vitaly Plitchenko,
Market Research Specialist

There are a number of factors affecting the core architecture choice of the SaaS platform, the most important of which is the selected cloud provider. The need to provide scalable service with multi-tenancy also presents additional challenge.

Another potential problem that can arise in a SaaS environment is the amount of helpdesk calls and support tickets you may get. Support can bring operation costs way up, so the goal is usually to minimize it and automate as much as possible. This, however, requires constant timely updates and patches which company should be ready to provide.

In order to prepare for all these challenges, you need to understand the general SaaS implementation methodology and specifics behind it. The best and fastest way to get the general idea of how SaaS development works is to examine SaaS development lifecycle model.

Essential design elements of the SaaS platform

Cloud industry has very high standards for provided services. There is a large number of standard design elements that each SaaS project is expected to have.  These elements should be considered from the very first stages of SaaS development lifecycle and should eventually be implemented in the final product:

  • Multi-tenancy - a single instance of software should serve all tenants simultaneously.
  • Scalability – software should dynamically adjust to the current workload and continuously provide more resources as needed.
  • Discoverability – software should be easy to pick up and start using without any need for additional setup from service provider.
  • Reachability – software should be available to all potential customers.
  • Security – software should provide an adequate level of protection for customer data. Both database and communication channels should be encrypted and coupled with a secure authorization process.
  • Customization – software should allow to achieve high convenience through personalizing look and feature set.
  • Support – software should provide adequate level of customer support. Updates should be issued as fast and frequently as possible to help reduce the number of potential calls.

By combining all of the above-mentioned elements, you will be able to create SaaS platform that meets all the necessary industry standards.  

Software development methodology

The term "software development lifecycle" usually describes a particular methodology, used for development and feature implementation. Example of such methodologies include:

  • Waterfall – development irreversibly continues through several sequential phases with emphasis on planning and scheduling
  • Spiral – project is divided on cycles with development model for each cycle chosen based on immediate risks at hand
  • Iterative – project is developed on a smaller scale and then grows through several iterations
  • Rapid application development – emphasis on prototyping versus planning in order to speed up development process
  • Agile – iterative development with emphasis on communication and project refinement via feedback

There are many other development methods out there. And while Agile may be the most popular right now, each of them has their own set of strengths that makes them useful for certain specific situations.

When it comes to SaaS development life cycle methodologies, Agile again currently is the most popular and widely used one. However, the type of methodology used can change depending on what best reflects particular requirements of the project. Therefore, in this article we will look at SaaS development from a more general, system development lifecycle (SDLC) standpoint. Exact phases described here where originally distinguished by Microsoft specialists in the following article.

Envisioning

Envisioning phase for SaaS project is similar to any other type of software. At this phase, ideas are created and validated from a business standpoint. The only difference lies with the fact that accents are shifted from marketing that is easier and less restricted for a SaaS platform, to the actual implementation of the service that can be more challenging than that of a traditional software.

At this phase, various market research are conducted in order to identify business needs and opportunities, which in turn may serve as a basis for market strategy and ultimate vision of the project. Creation of a business plan and negotiations with potential partners and investors are also part of this phase.

Platform evaluation

This phase is particularly important for a SaaS project, considering that capabilities and architecture of the cloud service have a large impact on the final architecture of the solution.

First, requirements for cloud infrastructure should be clearly formulated. For consumer-oriented product, various cloud service providers should be compared and evaluated. Areas, such as performance, scalability, reliability and disaster recovery, security and privacy, should be examined. Platform should provide the right set of management tools and level of support, high enough, to ensure continuous operations and successful implementation of all planned features. Eventually, an offer that best suits the requirements and designated project budged should be selected.

Planning

At this phase, all requirements are gathered from stakeholders allowing to formalize the vision of the solution into concrete technical specifications that can be used by developers. All decisions regarding staff, project plan and functional specifications should be finalized.

Planning phase should be repeated for each iteration of the project and should be the first phase of every iteration. When planning, you need to focus both on long-term ultimate vision of the project, as well as much more detailed requirements for current iteration.

Subscribing

At this phase, all the major decisions regarding architecture and pricing should be finalized. This is a stage where close cooperation with selected cloud provider finally leads to a product subscription. First, you should trial services of selected providers and audit their performance and capabilities.  Eventually, a service level agreement should be signed with the chosen provider. You would also need to formulate backup and disaster recovery strategy that will assure high availability of your service.

During each iteration, subscription can be revised in order to make sure, that selected cloud provider and chosen level of service best reflect all the necessary requirements of the project.

Developing

At this phase, your service is created. SaaS project goes through a series of iterations, building on top of the core feature set, created based on the selected architecture.

This phase starts with setting up development environment followed by developing and various forms of testing. Scope of each iteration is decided individually during the planning phase depending on the specifics of the project.

In SaaS projects, testing plays very important part, considering that extra support calls and tickets post-launch can rump up operation costs of the service. Therefore, it is important to conduct testing at every stage of the software development. Rigorous load and performance testing should also be performed, considering that SaaS platforms usually operate under heavy workloads.

Operations

At this phase, service should be deployed and maintained. Phase begins with finalizing support plan and training personnel. Disaster recovery and backup testing should also be conducted in order to give you a clear understanding of how to ensure availability of the service in case of a disaster.

After the system is deployed, it is important to provide frequent updates and security patches in order to minimize the number of support calls and constantly improve user experience.

Conclusion

There are many various software development strategies for building a SaaS project. Each project has its own set of specifics, and lifecycle of each project can vary greatly depending on the chosen methodology. However, unique challenges and requirements, presented by SaaS delivery model, is something that they all have in common.

In this article, we tried to give you the general overview of the typical SaaS development lifecycle process with the emphasis on phases that distinguish SaaS solutions building from all the other ones out there. Our hope is that this knowledge will become a first stepping stone for you to effectively manage product development of your own SaaS solution.

 

Read also: Outsourcing SaaS software development (CRM solutions)

Subscribe to updates