Service Level Agreements (SLAs) are often not given sufficient attention when creating contracts for software development outsourcing. This is a mistake. A service level agreement (SLA) in software development outsourcing is a crucial document that outlines the terms, expectations, and deliverables between a client and an outsourcing provider. These agreements establish the quality standards, response time, performance metrics, and other SLA metrics that the provider must meet to ensure the satisfaction of the client.
SLAs typically define parameters such as project timelines, software functionality, maintenance schedules, and support services. By clearly delineating these terms, a good service level agreement helps mitigate risks, manage expectations, and foster accountability between both parties involved in the outsourcing relationship. They serve as a foundation for effective communication, collaboration, and ultimately, the successful delivery of software development projects.
That’s because SLA terms are a critical part of any contract with a service provider such as an outsourcing company for software development or support.
A service level agreement may be only a few sentences or many pages. Sometimes there is a reference to “SLAs of an agreement," which can be confusing. A contract’s service level agreement consists of multiple service commitments – and sometimes each service commitment is also called an SLA.
The service commitments outlined in an SLA should cover all these essential elements in clear and specific detail:
Here’s why you need to have SLAs as part of your contract(s) with a software outsourcing partner.
Accelerance can help you develop SLAs that are best suited for your situation. Some of the most common variations we see used are:
System availability
If your software runs in a cloud environment, or if you have a telco or internet circuit to your office, you probably have an SLA for uptime in your subscription agreement (example: 99.999% availability measured monthly). Similarly, if your outsourcing agreement includes other IaaS, PaaS, or SaaS components, take a page from the telco playbook and have an SLA around availability (percentage uptime, measured over a month).
*Here’s a pro tip: you may care more about availability during your standard business hours. If end-users don’t require more, try to use an SLA metric focused on business-hour availability, not 24/7.
System response
Again, if you are using cloud infrastructure or platforms of software your partner provides, try to have an SLA for the speed of the system. If your software development outsourcing partner is delivering a turn-key solution or major component, an SLA of system response for the software they produce may be a good idea.
How do you measure response time? Many companies create an SLA for response time based on one – or a few key–user functions. Another method is to quantify the expected response time of a complex, predetermined SQL query as the “service” to be measured.
Partner responsiveness
If you have a helpdesk service, your contract probably includes SLAs for response time (how long before a live agent responds to your ticket) and possibly mean time to resolution (typical time all tickets are resolved in a month). Similarly, think about SLAs that create expectations of responsiveness from your partner. Examples might be:
Customer satisfaction
Partners who provide a support desk or helpdesk often send users a “How did we do?” follow-up survey. You can require an SLA for customer satisfaction scores (for example, “95% positive feedback each month”).
In an Agile development project, you may want an SLA commitment from your software outsourcing partner to provide a report of software development metrics periodically. The SLA could read something like this: “Vendor will provide a monthly report on the following development metrics…” Using an SLA in this way accomplishes two objectives:
How do you know if you’ve got the right outsourcing partner to enter into an agreement?
Get inside tips from Accelerance’s 2023 Due Diligence Guide.
What metrics would you expect in a periodic report? Companies using agile development methods are able to utilize new techniques for estimating complexity and level of effort. Here are some metrics we recommend in any service-level agreement:
Lead time
In manufacturing, the “lead time” is the length of time between receipt of an order to the point of delivery of the product to the customers. In software development, you need to measure the time elapsed from concept to delivery. From project-to-project, or even epic-to-epic, you want to see an increase in the speed to deliver completed software.
Sprint time (duration)
Teams using Agile will have sprints measured in a few days, instead of months, for work timed in “phases” or “activities”, using traditional development methods. Track the duration of your sprints – and evaluate trends over time. You may be surprised by what you learn!
Sprint volume
How many sprints are needed to complete a story? How many sprints are needed for a version? For each of these metrics, look for consistent volume (such as number of sprints produced) over time. Variations in volume could mean you have a “lumpy” plan for a new feature rollout: too many in one version, too few in another. A decline in the number of sprints produced might indicate that a recent developer change or reassignment caused a dip in team productivity.
Issues and open/close rates
Measure the number of production issues reported and closed within a specific timeframe. Observe and act on trends rather than establish a hard-and-fast number—there is no “right answer."
How do you know what performance standards to use for your software development? SLAs should contain a benchmarking provision for regular reviews of the competitiveness of your contract’s cost and performance standards, measured against market rates and service levels. The provision should also specify remediation measures for any issues that arise.
Having a detailed service level agreement is proven to lead to greater satisfaction with outsourcing costs and service satisfaction. For optimal insights and outcomes, establish a baseline benchmark before the contract starts – this will yield better insights and outcomes for future analysis.
Accelerance advisors recommend engaging a professional consultant to assess your outsourcing benchmarks at least every two years. Unfortunately, the importance of regular benchmarking is often underrated (see our best-practice perspective on benchmarking your outsourcing agreements here).
So, what should the ultimate benchmarking provision include? We recommend:
With a deep knowledge of software outsourcing rates and services around the globe, Accelerance can provide performance standards to assist in benchmarking. We also have experts to guide the development of the precise SLA for your business needs and outcomes.
The ultimate goal of your SLA should be to help you achieve “performance outsourcing.” Our Software Outsourcing Advisory Services helps you optimize performance throughout the software outsourcing lifecycle. We connect you with an ideal software development outsourcing partner, help you establish meaningful SLAs and benchmarking practices, and work alongside you every step of the way.
We’ve investigated 8,000 software companies worldwide so you can confidently outsource.
Want to know who to trust for outsourcing SLAs that work for you? Talk to us.