What is SaaS ?
You can find a lot of articles about SaaS. I’ll try explain it simply. For example; Instead of developing a calculator and deploy it to users, developing a service on server and users are using it via connecting to server. Users are chareged by using duration or usage volume. Finally you can sell that calculating system as a service. You’re using a lot of SaaS product in daily usage like Spotify, Netflix, Microsoft Office 365, Google Apps(GSuite, G.Drive, Gmail…)
Indispensable of SaaS Architecture
There is some important elements to run a SaaS project. For example, Users should feel safe while using the service and need to know their datas are safe in the service. By the way, users want support from paid service, and they want improvements and new features on service. They want to reach the service from different platforms. There is much more reasons to follow one or more element while developing a SaaS Project:
Essential design elements
- Multi-tenancy: A single instance of software should serve all tenants simultaneously. You can read about Multi-Tenancy from here
- Scalability: Project, system, network or process should can handle growth or dwindle while it’s working. New features can be added project or some fetures can be removed from project. You can visit here for more information
- Discoverability: Users should use software without any need for additional setup from service provider. Proccess should be Qucik and Easy
- 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: Users should customize software by themselves. By the way it’s good way to stay users in sevice and increase brand advocacy.
- 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.
Development proccess is most important part of SaaS. Software must provide an architecture which supports essential design elements. There is some software development methodologies below:
- Waterfall Model: That model follows phases and order is System, Analysis, Design, Coding, Testing, Operations. In that model development processess work step by step. You can read more from here.
- Spiral Model: The spiral model is a risk-driven software development process model. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models.
- Rapid application development: In general, that method approaches to software development put less emphasis on planning and more emphasis on an adaptive process. Prototypes are often used in addition to or sometimes even in place of design specifications.
- Agile: In that method, requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customers or users. It advocates adaptive planning, evolutionary development, early delivery, and continual improvement, and it encourages rapid and flexible response to change.
There is much more development methods you can find. Agile is most popular method currently. Methodologies can be changed by you depending your requirements and project standards. Theese are only approaching style, they are not rule.