Performance can be improved if each team focuses on their own capabilities.
Improvement should be continuous, never-ending process. What is today considered high performance next year will become a baseline or even low performance.
In order to improve performance, the first thing we need to do is to measure the current performance. This mean we need to know how and what to measure in the first place.
Often what is being measured are vanity metrics. Outputs that are easy to measure but give false results and incentivizes negative behaviors across teams.
Vanity metrics are for usually individual or local outputs:
– lines of code produces by developer. It incentivizes devs to write redundant code.
– velocity – amount of story points completed each sprint. It causes inflation of estimates and negatively impacts cross-team collaboration as each team is focused on their own velocity, often at the expense of other team
– utilization – a proxy for productivity. It can only be increased until certain level where no more spare resources are left. Additionally as utilization goes up as do lead times. “Queue theory in math tells us that as utilization approaches 100% lead times approach infinity”
What we should measure are global outcomes. Busy work that does not actual help achieving organization goals should never be rewarded.
Study shows that high performers in comparison to low performers have:
– 46 times more frequent code deployments
– 440 times faster deployment lead time
– 170 times faster mean time to recover from downtime
– 5 times lower change failure rate