Clearcode How To Build Enterprise SaaS
Clearcode How To Build Enterprise SaaS
Table of Contents
Introduction3
2. Privacy 14
2
Introduction
Cloud adoption in the enterprise environment is on the rise.
A recent study from Centaur Partners states that revenue generated from SaaS and cloud-
based business-application services will increase from $13.5 billion in 2011 to $32.8 billion
in 2016 (a CAGR of 19.5%).
Source: Centaur Partners, Introduction to Centaur Partners SaaS Market Overview, 2015.
The need to adopt SaaS within the enterprise environment is becoming stronger as the
increase in benefits grows.
Some of the main benefits of cloud adoption were highlighted in the findings from the
2014 KPMG Cloud Survey, which revealed that the top three improvements businesses
noticed since the implementation of the cloud included improved business performance,
improved levels of service automation, and reduced costs.
3
This white paper focuses on the current state of SaaS, the increase in adoption by enterpris-
es, the features enterprises are looking for in their SaaS applications and platforms, and
the new way to build SaaS for enterprises.
If yes, then what about Facebook and Twitter? They are both examples of software used by
large companies, but are they both examples of enterprise-grade software?
For the most part, the differences are often connected with the problems they are solving.
Software built for solving problems for enterprises won’t necessarily be suitable for con-
sumers, and vice versa.
A more obvious way to tell the difference between the two is to look at how they are mar-
keted.
An example of this are two popular cloud storage solutions, Box and Dropbox.
4
Box markets itself as a cloud storage solution for enterprises, whereas Dropbox markets itself more towards consumers.
By scanning the homepages of both Box and Dropbox, you can see the audiences they are
trying to target.
However, just because a software vendor says that their software is for enterprises, it
doesn’t mean that it is enterprise-grade software.
So, how can you truly tell if a piece of software is enterprise grade or not?
Well, for the most part, it has a lot to do with the features it offers, the way it is built, and
ultimately, who it is built for.
This change is highlighted in a recent report by the International Data Corporation (IDC):
Source: Worldwide SaaS Enterprise Applications 2014–2018 Forecast and 2013 Vendor Shares, IDC. Author: Christine
Dover, Research VP, Enterprise Applications and Digital Commerce
5
The report also suggests that the enterprise-applications market will be SaaS-based and
generate $50.8 billion in revenue by 2018.
Another report from Cisco illustrates the growth of SaaS, PaaS, and IaaS.
The growth of SaaS, PaaS, and IaaS. Source: Cisco Global Cloud Index: Forecast and Methodology, 2013–2018.
With this increase in SaaS solutions, it’s not surprising to see many public and private SaaS
companies grow more than their Software-as-a-Product counterparts.
According to Software Equity Group, Public SaaS companies grew at 28% in 2014 versus
8% for Software-as-a-Product companies (as illustrated in the image below).
28% 8%
SaaS SaaP
Source: Software Equity Group, 3Q15 Software Industry Financial Report, 2015.
6
The New Way of Building SaaS
For most software providers, building software involves big projects, a big budget, and a
long development time. The problem is that both the consumer and enterprise environ-
ment are changing too fast, and by the time the software is released, the user’s needs and
requirements will have changed.
The new way of building software requires a combination of the SaaS delivery model and
an approach that many successful startups embrace when building their software.
Traditionally, software applications and platforms were big IT projects that required a lot
of resources, time, and money. Nowadays, mainly due to high project-failure rates and a
highly competitive software industry, more and more businesses, including startups, are
looking for newer methods.
A minimum viable product – the minimum set of necessary features needed to deliver
users the most value possible, and to learn the most we can about them, while also deliver-
ing the highest return on investment versus risk.
• Minimize risk by identifying if their idea solves a problem and potential challenges.
While MVPs are traditionally associated with startups, they can also benefit large corpora-
tions.
7
Keeping It Small Reduces Project Failure
Another important benefit of starting with an MVP for corporations is that it can signifi-
cantly reduce the chance of project failure.
A recent report from the Standish Group found that the smaller the project, the more suc-
cessful it was.
Failed Failed
Successful Successful
Source: The CHAOS Manifesto 2013, The Standish Group 2013. Small projects are defined as projects with less than $1
million in labor content. Large projects are defined as those with more than $10 million in labor content.
A 2012 Gartner user survey also backs up the “small is better” theory, as it discovered that
the larger the IT project, the more likely it is to fail.
Source: Lars Mieritz, ‘Gartner Survey Shows Why Projects Fail’. Gartner, www.thisiswhatgoodlookslike.com, June 2012.
8
Validate the Ideas
If a project is small, the software vendor and development team are able to validate the
original ideas at the beginning of the project and then move on to the other stages of de-
velopment. The validation stage in complex and lengthy projects doesn’t usually occur
until later in development because of its size. By that time, it is too late to change or adjust
the scope and direction of the project, which results in budget blowouts and extreme time
extensions.
By far, the two most common project-management methodologies for developing software
are agile and waterfall (traditional).
Agile
The agile approach to software development focuses on minimizing risk, optimizing time
spent on developing the application, and producing a working product as soon as possible.
This type of software development allows developers to foresee and react to any issues that
may arise along the way and set the project on a different, more effective course of develop-
ment.
This model is fast becoming the project-management method of choice, largely due to its
focus on optimizing development time and producing an operational application in the
shortest time possible.
Waterfall
The traditional method as a software project-management model dates back to the 1950s
and is based on the project-management method used in manufacturing and construction
industries. It was developed in response to the lack of other models available at that time.
This model calls for developing applications one stage at a time and is considered very rig-
id and linear. The project starts at the first stage and then, once completed, moves on to the
next stage without the possibility of turning back to previous stages.
9
REQUIREMENT ANALYSIS REQUIREMENT ANALYSIS
IMPLEMENTATION IMPLEMENTATION
Agile Waterfall
A 2013 survey from Ambysoft found that agile is more successful than waterfall in terms of
project success.
Failed Failed
Successful Successful
10
The same study concluded that agile outperforms waterfall on many other levels as well.
Even though the above-mentioned processes and methods are helping companies deliver
more successful projects, increase revenue, and save time, the real challenge lies in chang-
ing the mentality of corporate executives, as they are more accustomed to working on
larger, full-scale IT projects. However, with the success of agile and MVPs becoming more
known, this is definitely changing.
On-premises software allows companies to store sensitive information and data on their
own infrastructure, which helps keep it secure and protected.
In the case of SaaS, the onus of keeping user data safe falls on the software provider; there-
fore, it is not surprising to see that security and data privacy are the top two capabilities
organizations are looking for in cloud solutions.
11
Most important capabilities or attributes to the
organization when seeking a cloud solution
82% Security
81% Data privacy
78% Cost/price
Source: KPMG 2014 Cloud Survey, KPMG, 2014.
It is clear that the features included in enterprise-grade SaaS should revolve around ad-
dressing business concerns, solving business problems, and ensuring the software is able
to provide the availability and efficiency needed in the ever-challenging enterprise envi-
ronment.
With that being said, here are five features software vendors should include in their enter-
prise-grade SaaS applications and platforms.
The security issue is one that challenges companies on a daily basis, mostly due to chal-
lenges in surveilling who is accessing what and when, and the sheer number of ways a
company can get hacked.
Therefore, when building enterprise-grade SaaS, there are many different security factors
companies need to take into account. Most security aspects are connected with the actual
development and the quality of the software’s code, but some are features that can be built
and implemented quite easily.
The two main features include user privileges and strict login policies.
User Privileges
Today’s hackers are not just the ones wearing Guy Fawkes masks – they can even be dis-
gruntled employees who want to take revenge on the company, and if the disgruntled em-
ployee has access to the company’s system, it is much easier for them to steal sensitive data
than it would be for an outside attacker.
First, you should grant users with as little permission as possible and be very strict on the
permissions you grant. This will help you prevent users from accessing things they don’t
12
need to access, and quickly identify who had access in the event of unauthorized activity so
you can take quick action and resolve the issue before it gets out of hand.
Second, you should create multiple privileges for each user. Let’s say you want to deter-
mine a set of permissions for admin accounts. You may have multiple admin users and not
all of them will require the same privileges.
You should grant users with as little permission as possible and create multiple privileges
for each user.
So, for example, you may grant one user an admin role to create, edit, and update user
accounts, and grant another user an admin role to create, manage, and assign groups. This
will add another layer of security to your already-tight user privileges.
Including extra security features at the login level, such as a two-factor authentication fea-
ture, can increase the security.
13
Gaining unauthorized access to a user’s account via the login screen is not as difficult as
one would imagine, especially when you consider that the most common passwords are
ones like password, 123456, and qwerty. These types of simple passwords are low-hanging
fruit for hackers and make the security of a piece of software severely vulnerable.
Apart from the example mentioned above, there are a few other techniques hackers use to
gain access to someone’s account.
Therefore, when building the login feature for an application or a platform, it’s paramount
to include a number of different security features (such as a two-factor authentication) to
increase the security at the login level.
2. Privacy
Privacy within the SaaS world is a red-hot issue, especially for enterprises, as keeping their
users’ privacy safe and protected according to privacy-compliant regulations is one of their
main priorities.
Ever since Edward Snowden blew the whistle on U.S surveillance programs, the online pri-
vacy issue has been front and center and has led to foreign governments changing regula-
tions – the recent invalidation of the Safe Harbor pact is a prime example.
Therefore, it’s paramount that the software not only be secure, but also adhere to privacy
regulations and best practises.
For enterprises, however, getting the right features that solve business problems or en-
hance workflows is often hard to achieve with standard out-of-the-box solutions, which is
why the need to customize and extend the software is so great.
Customization
Customization is not really a feature, but rather a service (i.e. custom development). For
enterprises, however, customization often provides an essential competitive advantage. For
this reason, it’s vital that the software and architecture be built with future customization
in mind.
14
White Labelling
Building enterprise-grade SaaS is not only about providing companies with quality soft-
ware, but also offering other businesses the opportunity to sell it to their customers, which
requires white labeling. The ability to white label your software involves building it in a
way that will allow other businesses to change the colour scheme, replace logos and corpo-
rate branding, and remove or replace company references in the code.
The white labelling feature can either be built-in, or developed as a plugin and offered to
clients as a paid feature.
Extensibility
The software also needs to be built with extensibility (e.g. with plugins) and the future in
mind in order to provide users with software that can be enhanced to meet ever-changing
needs and requirements.
Today’s enterprises utilize a number of systems and software, and using new software that
integrates with existing solutions is becoming more and more essential.
By building software that can be easily integrated into their main systems, such as Share-
Point and SalesForce, companies can centralize their tools and reduce the disruption to
their end users.
15
Multitenancy
Multitenancy is when a piece of software runs on a server, but provides that software to
many companies (aka tenants). Apart from providing the software vendor with a range of
cost savings, multitenancy also allows the software to scale more easily (compared to single
tenancy).
A content-delivery network is a series of servers located in different parts of the world that caches content and delivers it
to users closer to their location.
For example, if your web server is located in the U.S., but a user from Germany wants to
access your software, your web server will send the content to a node located either some-
where in Germany or somewhere close by and then display it to the user, increasing load
time, providing high availability, and delivering better performance.
Disaster recovery involves putting a plan in place (a Disaster Recovery Plan – DRP) that will
protect the organization in the event of a catastrophic human or natural event. Disaster
recovery is a subset of business continuity.
16
Ensuring that both these points are addressed when building enterprise-grade SaaS will
protect companies from sudden data loss and will maximize uptime.
Researching Technologies
The software-development industry is filled with loads of programming languages, frame-
works, databases, and third-party technologies and software.
Today’s developers have a number of tools at their disposal, most of which are open-source.
17
Open-source software provides both developers and clients with many advantages:
1. Cost: Most open-source software is free to download, use, and modify, which signifi-
cantly reduces the cost of development.
2. Security: The main reason open-source software is more secure than proprietary
(closed) software is the source code, which can be viewed and inspected by anyone, making
security flaws and bugs easy to identify and fix.
Selecting the right technologies for the project is critical to the overall performance, stabil-
ity, and extendability of the software.
Over the years, a number of methodologies have been introduced to help ensure software
is built to the highest level of quality and has the best chances of ending successfully.
Here are a few important aspects to keep in mind when developing SaaS.
A common feature of the agile methodologies is sprints, which are essentially miniature
projects within the main project. Sprints are usually divided up into two- to four-week
increments. The goal of each sprint is to produce a new working feature and is centered on
developing the most essential parts of the application.
This piece-by-piece approach allows developers to foresee and respond to all major obsta-
cles and to set the project on a straighter course of development.
18
Automated Tests
Incorporating automated tests into the development process significantly reduces the
number of non-compliant pieces of code and bugs.
The goal of automated testing is to reduce the number of manual tests, rather than elimi-
nate them altogether.
• Prevent regression.
The types of tests carried out greatly depend on the project-management method. There
are three main types of tests used in the agile methodologies:
Unit Tests
These tests are carried out on small, operational pieces of the application in isolation. Their
goals are to determine if the pieces are fit for use and to detect any bugs that may cause
problems when they are integrated with the rest of the application. Unit tests reinforce
code quality and reduce the number of bugs.
Integration Tests
Unlike unit tests that separately evaluate individual pieces of the application, the integra-
tion tests assess these parts as a group to see how well the different pieces work together.
Functional Tests
This test ensures the application does what it’s meant to do and that it meets all client and
developer requirements.
Another subsection of automated testing, and one that is vital in performance-based soft-
ware, is performance testing.
Performance testing simply involves testing new pieces of code and identifying the impact
they will have on the overall performance of the software. If the new code reduces the soft-
ware’s performance, then developers will decide whether that result has a positive impact
on the software from the business perspective or not. If performance is reduced to a level
that can’t be justified from the business perspective, then the new pieces of code would
have to be assessed and improved.
19
Another important part of the testing aspect is continuous testing. By evaluating new piec-
es of the software on a regular basis, developers can resolve issues sooner and add quality
pieces of code to the continuous integration environment.
Continuous Integration
Continuous integration (CI) involves merging all the developer’s working pieces of code
into a shared mainline. Once a developer creates a new piece of code and pushes it to the
code repository, tests are fired automatically and the developer is notified if any have failed.
This process often happens several times a day.
• Easily and quickly identify bugs and incompatible parts of code, then resolve them.
• Test new pieces of code sooner to determine if they work with the rest of the codebase.
A solid CI environment will allow developers to ensure continuous delivery, which involves
continuously releasing new pieces of the software to users.
Coding Standards
Coding standards ensure that all team members (developers) follow the same rules when it
comes to building software.
The aim of introducing coding standards is to produce code that can be read and under-
stood by all members of the team.
Coding standards cover a number of aspects, such as name conventions for classes and
objects, formatting and indentation, and comments and documentation.
20
Introducing coding standards brings about the following advantages:
• The code becomes comprehensible by all team members, which increases the quality of
the software and reduces bugs and other issues.
• Problems and issues can be detected quickly, which results in better efficiency.
• A more uniform approach to software development and problem solving can be intro-
duced to the team’s workflow, resulting in a faster pace of development.
Introducing coding standards into the team’s workflow is quite easy, as each programming
language has its own coding standards and tools.
Code Reviews
Even though automated tests significantly reduce the number of bugs and non-compliant
parts, it is still important to have the code read by human eyes.
Code reviews occur after the test passes the various assessments that are in place and in-
volves the team members reading each other’s code (a.k.a. peer review).
• Bugs are identified and resolved before being released to the live environment.
• More experienced developers can identify potential issues and help less experienced
developers improve their code.
21
One of the main advantages of starting with an MVP is that the feedback you gain from
beta testers can help you shape the next features and functionalities. This approach allows
you to build a product completely in line with your users’ actual needs and requirements,
instead of building one you think they want.
While beta testing is a relatively straightforward process, there are a number of important
things to keep in mind to ensure you get the most out of it:
• Put a limit on the number of beta testers you select. This will help you to better con-
trol the testing.
• Choose your beta testers carefully. This might not be achievable in every situation,
but you should always strive to recruit beta testers who align with your target audience.
If you are building software for a company, then this will be a bit easier to achieve as your
target audience will already have been identified.
• Be strict and ruthless when it comes to obtaining feedback. The main aim of beta
testing is to learn more about how your users operate your software, and feedback is the
best way to achieve this. You should make providing feedback as easy as possible, and you
should be proactive in collecting feedback.
There are, however, a couple of important questions to ask when deciding on which fea-
tures to include in the next few releases:
Which features will deliver the most business and user value vs. development time?
How should we prioritize the features (e.g. rank the features requested by beta testers high-
er than the ones from the original requirements list)?
Should we release new versions with fewer features often or release new versions less often
but with more features?
22
Ongoing Support, Development, and Maintenance
Ongoing support and maintenance of the infrastructure and environment is a critical part
of the software’s long-term success, as it will allow you to move forward with the product
without having to worry about the technical upkeep.
Once the MVP is launched, it’s important that the software’s infrastructure is monitored to
ensure optimal performance and resolve issues before they affect the application or plat-
form, as performance issues can leave a long-lasting, bad impression on the initial users.
Therefore, having a dedicated system-administrator team - ideally a team that can work in
unison with the developers - monitoring the infrastructure can prevent many of the annoy-
ing minor issues that occur after launching an application or platform.
After launching an MVP, it may be necessary to polish off a few of the features or resolve
some issues related to the software’s functionality, so it is vital that the software-develop-
ment company building the application or platform be ready to provide some additional
development work, if required, during the early stages of beta-testing to ensure the soft-
ware functions the way it should.
By finding a company that provides full-service development, as well as skills and experi-
ence in planning, designing, developing, and maintaining SaaS applications and platforms
that attract paying users and investments, you can increase your chances of project suc-
cess.
23
We specialize in building custom analytics
and enterprise-grade SaaS platforms
for the advertising and marketing industries.