In my last couple of posts I have been talking about Measuring and Managing Flow in your Kanban system. With some simple tracking, you will pretty rapidly have an understanding of Classes of Service and how to produce reliable estimates using Kanban. One of the big wins in Kanban is to take this understanding and have the team collaborate with the external stakeholders and business owners to agree on the performance goals. The performance goals are built on the assumption of a long term relationship between the team and the external stakeholders as well as team commitment to system level performance.
The performance goals are articulated as Service Level Agreements (SLAs). These SLA’s define cycle time targets and WIP limits. For example, a cycle time target might be something like – we will deliver small sized Standard items in 11 days 80% of the time; the WIP limits for Standard items is 2 in design, 4 in development, and 4 in acceptance. You can establish distinct SLA’s for each class of service and even for different sizes of work.
Four Keys to Negotiating SLAs
It is not sufficient for management to establish SLAs and then communicate them to the team and the stakeholders. The SLAs need to be negotiated in a collaborative way. This builds understanding and interest in the system on the part of all stakeholders. This understanding and interest, paired with the team successfully meeting the performance goals, results in establishing / increasing trust in the team. There are four keys to negotiating SLAs.
1. Include both upstream and downstream stakeholders in the discussion to form the agreement. Their understanding of the system and their participation in the negotiation helps ensure the stakeholders will be willing to uphold their end of the bargain in prioritization and WIP limits. It also enables collaborative behavior later, when the system is put under stress.
2. Involve the team in defining the the classes of service and negotiating the SLAs. This will increase their commitment, which is a key to meeting the SLA’s. Additionally, their participation in defining the SLA’s, the supporting policies, and their decision making in applying the policies results in increased engagement on the part of the team members.
3. Make promises the team can keep. Use data gathered from the historical performance of the team. Understand the distribution of outcomes and apply standard deviations to make statistically appropriate commitments. Don’t get pushed into hopeful SLAs. Support the negotiations with data and be sure you don’t allow the team to over-commit.
4. Balance demand to your capacity. As you set WIP limits, focus on maintaining the lowest possible limits. Also it is healthy to have a mix of classes of service active. This helps to optimize value and distribute risk. Don’t over-commit the amount of work that will be in progress at any one time. It isn’t about starting work – it is about finishing it. Remember, the lower the WIP the shorter the cycle time.
Cost of Delay
Everything is not of equal priority. It isn’t necessary or helpful to expect perfect estimates on stochastic work (work types with a lot of variability) like software development. Human nature will cause the system to underperform if all types of work require a high level of precision in time commitment. Read the section on Decoupling Planning and Scheduling in Kanban and When Will This be Done? to understand this phenomenon. Use the concept of the Cost of Delay to establish effective SLAs on various classes of service. Cost of Delay is the cost that will be incurred when a work item is delivered later than promised. Understand the Cost of Delay of each Class of Service and set the SLA appropriately.
For example, a compliance requirement that has to be delivered on a specific date or the company will incur a large fine has a high cost of delay. You need to use your the Mean + 3 Standard Deviations for that work item type when you set the SLA. If you understand the probability of a series of tasks that need to be delivered by a certain date, each individual task won’t have as high of a cost of delay. You should probably set an SLA that says the work item type will be delivered in (Mean + 1 Standard Deviation) days about 80% of the time. If you have work that needs to be completed – but new value isn’t released when the work is completed – that item has a low cost of delay. Don’t set a time based SLA – but limit the WIP capacity of this work. Use the concept of Cost of Delay to set the most flexible SLA possible. This will improve the flexibility in your Kanban system and increase the ability to deliver value.
Managing Policy to Achieve the SLA
Once your SLA has been established, the Class of Service policies need to be shaped to ensure the SLA is met. This includes the impact this class of service has on WIP limits, the prioritization and swarming agreement for the class of service, and estimation requirements for the class of service.
As you are performing the work determine early if the SLA is in jeopardy. The team should work hard to arrange their focus to meet the SLA. This will mean making decisions that give them the best chance to succeed without jeopardizing the SLA for other work items. When an SLA is in jeopardy, the team should communicate this to business stakeholders early. If the SLA is critical the business stakeholder may decide to elevate the Class of Service.
Continue to measure your performance against the SLA. During your operations reviews – look for opportunities to improve performance against the SLA. Over time, you may look for ways to reduce cycle time to increase the performance of the system.
Benefits of Negotiating and Managing SLAs
Using metrics, classes of service, and service level agreements your team can learn to make promises they can keep. Making and keeping promises increases trust in the system and reduces pressure from the stakeholders to demand artificially inflated SLAs. Negotiating the SLAs effectively increases the commitment and level of engagement of the team. It also engages the stakeholders in the success of the system. Using cost of delay in the negotiations helps set appropriate SLAs that optimize value while maintaining flexibility in the system. Thoughtfully defining your policies gives the team the best chance to successfully deliver on the SLAs. Establishing and communicating the policies create a set of simple rules the team can follow to deal effectively with the high level of variability in the work moving through the system. Using Kanban, capturing a few simple metrics, and negotiating some simple rules around cycle time and WIP commitments can dramatically improve the reliability and trust experienced by the stakeholders while improving the commitment and engagement of team members.