Adopting serverless into an organisation brings with it several benefits and challenges. These benefits and challenges hold different weights for different types of organisations. A large enterprise’s primary driver for embracing serverless will probably be different from a bootstrapped SaaS startup’s. Similarly, the main challenges to adoption in both companies will be different.
In this article, I’ll focus specifically on the value proposition of adopting serverless to software development agencies.
The main revenue stream of development agencies comes from building custom applications for their clients. The agency itself doesn’t own the final application nor (in most cases) can they profit from its use. Instead, they usually get paid in one of 2 ways:
- Fixed scope project — client is given a price to deliver a pre-defined set of user stories or features.
- Fixed time project — client is given a price for a fixed period of time with access to a fixed set of agency staff. The agency will attempt to deliver as many features as they can within that timebox.
Unlike with more product-oriented companies, starting new projects is a frequent occurrence for your development agency. This phase is part of your critical profitability path so you need to do it well and efficiently. Here are several areas where serverless architectures surpass traditional ones at this phase:
- Much easier to automate resource provisioning (using Infrastructure as Code frameworks).
- No real up-front billing costs to provisioning resources for development and test environments.
- No up-front capacity planning required.
- A full Continuous Deployment pipeline is easier to set up for a serverless architecture, whereas in traditional server-based apps there was often only time to set up Continuous Integration (if at all) on a transient client project.
As your agency delivers more serverless projects for your clients, you will get faster over time as learnings accumulate. Re-usable infrastructure, architectural patterns and code components will emerge that you can roll forward into their next project.
Most support agreements between agencies and client organisations operate on a fixed recurring fee, with potentially extra charges for non-standard activities. While you always want to do the best by your client, it’s in your financial interest to minimise the amount of time your team spends on supporting the client’s app. Time spent patching servers, fixing network issues, handling load-related crashes and the raft of other operational concerns that serverless takes away is time that your developers can now spend on more profitable (and enjoyable) activities.
In addition to the savings in terms of staff time spent, the ongoing billing cost (typically passed on to the client) will also be much less. If your client is a small startup with a tiny initial userbase, they will pay next-to-nothing for their cloud bill. The barrier to entry is much lower for small startups getting started.
At the other end of the spectrum, one of your client applications may go viral with a spiralling userbase. In the past, this is where you would need to hire an expensive expert to come in and tune or re-architect your app to cope with the demand. But while you still need to give good consideration to designing a scalable architecture at the outset, using serverless components that automatically scale themselves without you needing to explicitly do anything removes a large burden from your support team.
The architectural differences between a low-usage and high-usage serverless application are much fewer than those of equivalent server-based applications.
This one is a less tangible benefit than the time and billing savings that I’ve mentioned above, but it can bring a high impact.
Developers are creative thinkers and problem solvers but this creative power is a finite resource. They could burn it up spending a large portion of their day debugging a tricky infrastructure issue and then when it comes to building out their user stories they’re lost for inspiration. They get the work done, but it’s not always their best work.
But if these distractions are taken away, the developer is freed up to fully focus on delivering the best solution for the client. This is when the magic can happen.
In this article, I’ve covered the primary value drivers for development agencies adopting serverless. In my next article, I’ll cover the primary challenges that they are likely to encounter along the way.
Do you work in (or own) a software development agency? Are you already using serverless in your organisation? Or considering adopting it? If so, I’d love to know what are the 2 or 3 most important benefits that you want it to bring to your organisation. Just hit reply and let me know!
Other articles you might enjoy:
Free Email Course
How to transition your team to a serverless-first mindset
In this 5-day email course, you’ll learn:
- Lesson 1: Why serverless is inevitable
- Lesson 2: How to identify a candidate project for your first serverless application
- Lesson 3: How to compose the building blocks that AWS provides
- Lesson 4: Common mistakes to avoid when building your first serverless application
- Lesson 5: How to break ground on your first serverless project