How do you assess your company's SaaS engineering and operations capabilities? Does it give you competitive advantage or hold you back? If you ask C-level folks at your company and even the CTO/SVP of Engineering this question, they will likely share a "gut feel" and struggle to give you a data-driven answer.
The truth is, your SaaS engineering and operations capability could be one of, if not the most critical business differentiator and can absolutely determine your company's success or failure. By studying the key characteristics of some of the best SaaS companies in the world, you can identify what your own world class SaaS engineering should look like.
In the early days of SaaS, things were relatively simple. Companies most likely had a single or a few applications-two or three releases a year were the norm. Fast forward to the business and technical needs of today and the level of complexity has increased manifold while speed and the ability to iterate have become critical. Importantly, SaaS companies have evolved from building applications to building platforms. This means you need to support not just your internal engineers, but also make the platform easy to use for folks you know very little about-outside engineers. The end users of SaaS solutions have increased exponentially creating much higher scale requirements. And availability requirements will only continue to get higher as outages today make headline news.
Most companies' practices are still stuck with the mindset/tools/process created in the early days of SaaS and have not evolved to support the more complex business needs of today. The best companies are able to build great products, perform at scale and are able to release quickly with high quality, but there are very few companies in the world that do it well. Think of the companies you would put into this category. It's not a coincidence that those who come to mind are market leaders-and, by the way, hugely successful.
Now, let's take a look at what those world class SaaS organizations are doing right.
- Culture - Technical teams have a strong culture and set of values they live by. There is a sense of pride in the engineering teams and they have a voice. They influence the product direction and strategy and are not "order takers". Engineering works very tightly with product management on roadmaps and product plans. Business strategy is influenced by technology and vice versa.
- Products -Products are design driven, highly intuitive and easy to use. There is infrastructure in place, the rigor to test ideas with customers, and the ability to iterate rapidly.
- Talent - There is a lot of emphasis on attracting the best technical talent and providing the best environment for them possible.
- Architecture and design - There is a strong architecture discipline, which solves for not just longer-term requirements but also simplicity. They use services-oriented architecture to enable reuse both internally and externally, dramatically lowering development and management costs.
- Third party developer support - Third party developers can start using APIs and the platform in minutes without requiring hand holding. API usage is tracked and there are tools in place to prevent over usage or other bad behavior.
- Scalability - Solutions are designed to scale up (for efficiency) and scale horizontally to handle increasing scalability requirements. There are tools and mature processes in place to figure out when additional capacity is required.
- Availability and Resiliency - The engineering teams own product performance in production and are measured based on that. Deployments are zero downtime and the platform is designed to withstand infrastructure and dependency instability. There isn't a reliance on the infrastructure and dependencies being up 100%. Remember, anything that can go wrong will go wrong; it is just a matter of time.
- Performance and security - Performance and security are viewed as core features of the product and not as an afterthought. They are designed into the product as opposed to tested out towards the end of the release cycle.
- Teams - Teams are organized to be independent and deliver e2e capabilities. The have UI and backend resources as needed. Teams are self-directed and stay together as long as possible.
- Internal Platform/Shared services - There is a lot of deliberation around what services are centralized. There is recognition that having a large internal platform will become a bottleneck.
- Development infrastructure - There's a continuous integration and deployment system in place and builds take < 10 minutes. This is a key enabler for higher quality and productivity.
- Automation - Teams understand that reliance on manual steps is not sustainable or reliable. Automation is King and everything from testing, deployment (rollback, etc.) is automated.
- Key Performance Indicators - Teams are data-driven and track business, technical and operational metrics and use it for continuous improvements. Teams are intimately familiar with their metrics (such as availability) and the metrics are visible to all.
- Release process - Teams release independently and releases are rapidly enabled by high levels of automated testing. There is an ability to roll out changes to smaller groups of customers to minimize risk (as opposed to "big bang" releases), scale up and do an instantaneous rollback if you uncover an issue.
- Technology debt - Preventing technology debt (hard to manage, outdated code) is a key priority and teams invest time to continually refactor code and prevent a large defect backlog.
- Quality/Testing - The team owns product quality, not just the quality analysts or QA engineers. Regressions are entirely automated and manual testing is only used for usability testing. Getting it done "right" is valued higher than hitting a date.
"Wow, that's a lot!!" you might say. It's not easy to get to world class SaaS. If it were, everyone would be doing it. Getting to World Class SaaS won't happen overnight. It requires strong leadership, judgment, commitment, focus and a lot of hard work. It requires support from the C-level team and a tight partnership between product management, engineering and the operations teams. An organization that can master these will build better products faster and with higher quality. An organization that can master these will be fabulously successful and ... a blast of a workplace.
As SVP of Engineering and Operations, Sunil Rajasekar oversees core development and delivery of Lithium's enterprise social customer platform.
For more on SaaS, see ZDNet's Special Features page and the free ebook, Executive Guide to Best Practices in SaaS and the Cloud.