Every software-as-a-service (SaaS) company starts with a cloud service and a target market. If you’re successful, you eventually look to take your offering to new customers, new verticals, new geographies.
Scaling your SaaS offering has obvious implications for your business. But as head of my company’s engineering team, I focus on the platform itself—and on making sure it does what it needs to, no matter who is using it. If you’re a SaaS company on a growth curve, you can never, ever lose sight of that imperative.
That means whether you’re scaling up to attract enterprise customers, scaling down to reach midsize and small businesses, or scaling out by adding new vertical capabilities or languages, you can’t afford to jeopardize the characteristics that made your solution attractive to customers in the first place.
I came to this conclusion from personal experience, having been responsible for applications and infrastructure at fast-growing cloud companies for years.
Adaptive Insights is on its own exciting growth trajectory. Our Business Planning Cloud serves more than 3,800 customers and continues to attract enterprise organizations looking for company-wide planning. And while we look to build solutions that allow everybody in the business to plan and model virtually anything, we’ll need to accommodate greater volumes of customers and an always-changing array of user requirements.
It’s about more than growing infrastructure
Until a few years ago, growing a SaaS business meant expanding your data centers and upgrading networks. Cloud infrastructure providers like Amazon Web Services and Microsoft Azure changed all that. They’ve made it much easier to provision and deprovision resources on demand, giving your platform the elasticity it needs to meet escalating or spiky workloads as they arise.
Having this at the infrastructure layer is great, but being able to deploy these resources to improve the customer experience—in other words, to scale horizontally at all layers—is the tricky part. Often engineering teams will build out services and believe they have achieved scalability, only to realize that the database remains a bottleneck. Then they scale the database and realize search and analytics can’t keep up. Finding these bottlenecks can be slow and time-consuming—yet fixing them is essential to improving the customer experience.
To make sure customers get what they need from your SaaS platform as it scales, start by designing the right architecture. Here are some tips:
Never sacrifice response times
As your application footprint grows, you will have more concurrent users who will want to solve more varied use cases. (In Adaptive Insights, for instance, sales planning customers have different analytical needs than financial planning customers, but the same platform must serve them both.) All this puts more pressure on your platform. Once you add companies of all sizes to the mix, scaling applications to deliver fast response times, even with large numbers of users, is an enormous challenge. But it’s one you have to meet, because for a SaaS application, there’s no more important metric than end user response time.
To successfully deliver SaaS at scale, the answer is an optimized combination of in-memory data engines, distributed cache strategies, and data sharding. Similarly, when working with a small data set, some asynchronous interactions like imports and exports can be relatively fast, so they don’t pose a threat to the user experience. But when you scale to accommodate extremely large data sets, making these interactions subsecond is all but impossible. That means you have to design the workflow so these interactions can take place without locking up the overall user experience, like the old, dreaded spinning wheel on the Apple Mac that signaled it was time to go grab another cup of coffee—or two. When you scale, it’s critical to build the right experience for each class of interactions.
Build for different users
When your solution is focused on a narrow, homogenous group of power users, design is relatively easy. But when you welcome casual users to the application, your basic design point needs to evolve. Think consumer-grade user interfaces and support for different devices, both desktop and mobile.
To scale up, design for complexity
Large enterprises are prepared to customize the solution to their needs. So for companies like Adaptive Insights, which started out targeting small and midsize companies, supporting large enterprise customers means adding more knobs and levers for fine-tuning. That doesn’t mean monthslong deployments where initial value to the customer is elusive; in fact, enterprise customers will likely benefit from the same rapid deployment design goals that are critical for success in the midsize market. But most SaaS vendors will probably find that scaling up is actually easier than scaling down, because designing for complexity is a lot easier than the alternative. (See next point.)
To scale down, design for simplicity
I’ve seen firsthand how difficult it is for companies that started at the high end of the market to move down. Small to midsize customers lack the large IT departments and expertise that enterprises have. They need cloud solutions that can be owned and deployed by business users, without any help from IT. To create a true self-service solution, first identify the capabilities and features that 80% of customers in that target market want, and then make it dead simple to access and use them. It’s not just a matter of building some defaults and packs to make configuring a midsize or small implementation easier.
It involves weighing considerations like data integration, user provisioning, data security setup, provisioning applications, resource allocations, language, and concepts around customizing the application (scripting versus metadata). It requires building all that into your platform, while ensuring that it’s still easy to deploy, maintain, and use.
Integration is everything
As Bhaskar Himatsingka, our chief product officer, recently argued, customers don’t want a collection of point solutions that can’t work together. So it’s up to SaaS providers to ensure their platform works with ERP, HR, and other solutions that their customers already have in place.
Think it through—and obsess about customers
Scaling a SaaS solution is a balancing act. Failing to consider its many implications can leave you risking an underwhelming customer experience. Understand that in the end, it’s all about those customers—what they need and what they expect.
Just think it through, and no matter how far you go, never lose sight of the strengths that made you successful with customers in the first place.