Focus on Delivering our Commitments
Focusing on our commitments allows us to build strong relationships with our customers. If we are able to accurately predict the value we can deliver, and then deliver in line with that prediction, we will be trusted by the customer in the future. The customer is then more likely to accept our future predictions, even if they are not the predictions they want to hear. They would rather that we deliver value reliably than commit to something we can’t deliver.
In a Nutshell
Delivering on our commitments requires two things - making commitments we can meet and then doing what we committed ourselves to do..
-
Making commitments we can keep starts with understanding the constraints we are under. For example, if we have made a commitment to deliver something within a specific timeframe, we may well be compromising its quality in order to hit that timeframe.
Teams unwittingly put constraints on themselves by asking themselves the wrong questions in the wrong order. What do you think happens when we ask the following questions in the order they are asked: ‘What do you want me to build?’ Followed by, ‘how much time do I have?’ And then, ‘what’s the budget?’
The result is likely to be a triple whammy of constraints that we will put upon ourselves. Trying to fulfil a commitment on one of these aspects will negate our abilities to fulfil our commitments on the others.
Instead we should be asking ourselves: ‘What time have we got?’ (eg 1 sprint) followed by ‘what can be built in that time that is of greatest value to the customer?’. Once we now this, we are in a better position to think about potential costs.
-
Keeping our commitments is about understanding the value we have said we will deliver and making sure we deliver it.
To understand value, we break everything down into User Stories. These are the smallest units of value a customer requires of us.
Once we understand what value we are trying to deliver we can think about the ‘minimum viability’ required to deliver it. Minimum viability is a measure of how little effort and complexity we are have to generate in order to achieve our unit of value.
Once this is understood we are ready to consider ‘time’. If, for example, we are working to a 2 week sprint, we consider what highest value stories the team can deliver within that timescale. To do this we consider the team’s previous velocity of work versus the size and complexity of the story being delivered.
The more we are able to understand the value we are delivering and the more we understand about the amount of effort and time that will be needed to deliver it, the more likely we are to achieve what we set out to achieve.
Conversely, the less we understand about the value we want to deliver and the less we understand about the effort required to deliver it, the less likely we are to deliver on any commitments we have made.
When we deliver on our commitments as a team we get a sense of satisfaction and reward. Conversely, when we don’t deliver, we feel guilt for what has just happened and we blame each other and the customer as a way of shifting that guilt. As a result, we feel less confident in our ability to deliver next time (we don’t trust ourselves) and we are more wary of people pointing the finger of blame (we don’t trust others). Even more importantly, when we don't meet our commitments our stakeholders and our customers lose trust in us.
Practices
We review the flow of work through our system, paying attention to the overall rate of flow and to bottlenecks as work flows through our process. Where bottlenecks are identified we seek to understand the root causes of each bottleneck. With this understanding we relieve the constraints by experimenting with changes to our process. Where we see examples of accelerated flow, we look for practices facilitating this acceleration. We experiment to find ways to incorporate these practices into our process.
Teams use service measures to understand whether the service they are providing to the customers meets the levels of service they have committed to. With sufficient history of data, we can begin to look at trends to see how quality of service is changing over time. The levels of service and trend information help the team to focus their attention on the improvements they need to make. We prioritise changes that will have the biggest impact on our Quality of Service.
The team uses measures of delivery in order to understand its current rate of delivery. After data has been gathered for some time, trend analysis may reveal how rate of delivery is changing over time. The rate of delivery and its trend help the team to understand whether and where they need to focus their attention in order to meet their own and stakeholders expectations.
The capacity of the teams delivering a product constrains the rate at which new features can be added and feature improvements delivered. Sustaining capacity relative to demand over time is important because of the high cost of trying to change quickly. The rate of change of capacity is limited by the requirement for teams to adjust to changing membership and for new team members to acquire the ability to deliver.
Practices to come:
Define Qualitative Assessments
Identify Measurement Needs