Service Level Agreements (SLAs) are often not given sufficient attention when creating contracts for software development outsourcing. This is a mistake.
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.
An SLA 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 SLA consists of multiple service commitments – and sometimes each service commitment is also called an SLA.
Critical Components of a Service Level Agreement
The service commitments outlined in an SLA should cover all these essential elements in clear and specific detail:
- Service – the service or action the outsourcing partner provides. For example, your internet provider gives you internet access.
- Measurement – this is a metric that quantifies the service commitment. Using the internet provider example, the measurement could be 99.999% availability (also known as “five nines of uptime”).
- Interval – the measurement (metric) that must be captured at defined intervals. For example:
- “Every time the helpdesk is called..”
- “... every month”
- “... average of all tickets every month”.
- Obligations – some SLAs have obligations that the client and the partner must fulfill in order for the SLA to be enforceable. Also, it’s a common obligation for the client to declare an SLA violation, in order to exercise their right to receive a penalty payment from the partner.
- Penalty – this is the penalty for failure to comply with the SLA component’s obligations (an SLA violation). In subscription-based agreements, the penalty a partner incurs will usually be to credit back a percentage of the monthly subscription. In software development outsourcing, an SLA penalty is often the loss of a “bonus payment” (or percentage) held in reserve by the client for a successfully completed project with all SLAs met.
Key Benefits of an SLA
Here’s why you need to have SLAs as part of your contract(s) with a software outsourcing partner.
- Clarify expectations – SLAs help to define and align clear expectations for performance from the relationship in measurable terms. They keep the outsourcing partner accountable for delivering on their promises, so there are no surprises.
- Focus on customer service – The SLA helps the partner to remain focused on client requirements and needs. It outlines the specific scope and timing of what is to be provided to the client, as well as how and when issues will be resolved.
- Establish measurable standards – The SLA sets clear standards of performance for the partner, with key metrics varying based on the project and its goals. The SLA also should define the frequency and types of reports to be provided.
- Outline remedies for non-performance – SLA penalties should incentivize the partner to fulfill commitments made to the client, and offer remedies if they fall short. In addition, the SLA should delineate a dispute resolution process to help with mediation of performance issues.
What Type of SLA Should I Use?
Accelerance can help you develop SLAs that are best suited for your situation. Some of the most common variations we see used are:
If your software runs in a cloud environment, or if you have a telco circuit or an 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, 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.
Again, if you are using cloud infrastructure, 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.
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:
- Time to respond to newly posted issues or bugs found during testing
- Time to estimate work-effort on proposed changes in scope
- Weekly deadline to post team progress, with an expectation of 100% compliance.
Partners who provide some sort of support desk or helpdesk will often send users a “How did we do?” follow-up survey. You can require an SLA for scores that measure customer satisfaction (for example, “95% positive feedback each month”).
SLA for Reporting Performance Metrics in Agile
In an Agile development project, you may want an SLA commitment from the software outsourcing partner to periodically provide a report of software development metrics. 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:
- The partner is held accountable for continuous measurement and reporting. The reporting rhythm is your SLA.
- The metrics the partner reports on, per the SLA, become baseline measurements for continuous improvement.
How do you know if you’ve got the right outsourcing partner to enter into an agreement?
Get inside tips from Accelerance’s 2021 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 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!
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 how many production issues are reported and closed within a specific timeframe. Observe and take action on trends, rather than establishing a hard-and-fast number – there is no “right answer”.
Benchmarking Your SLA
How do you know what standards of performance to hold your software development to? 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.
Detailed SLAs are 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:
- Clear definition of the metrics that will be measured and compared
- The right to conduct a benchmarking analysis periodically (every 1-2 years)
- Your ability to engage the benchmarking professional or firm of your choice
- Escape clauses in case you want to switch your benchmarking provider for any reason
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 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 around the world so you can outsource with confidence.
Want to know who to trust for outsourcing SLAs that work for you? Talk to us.