Metrics are an important part of the Agile software development approaches like Scrum. They are however, like velocity, more often focus on the performance of the delivery team. What about the customers? In this article, Fabio Gasparri discusses Key Performance Indicators (KPIs) that will matter for the clients.
Author: Fabio Gasparri, Senior Partner at Hexacta, https://www.hexacta.com/
Agile performance is difficult to measure. Even seasoned development teams struggle to set the right markers of performance and track them effectively. Find out how to face this challenge. We live in the era of digital and whether you are updating a legacy enterprise system or creating a customer-facing app, product development is crucial to business success. It is true virtually everywhere you go, from e-commerce to healthcare to utilities to government and everything in between.
But while it is established that digital products are essential for doing business in the 21st century, what is not established is how you measure progress when you are working on developing these products together with an outsourcing company.
The software development process has undergone a dramatic overhaul during the last few decades, with Agile methodologies swiftly rising in popularity especially in the last decade. In case you are unfamiliar with Agile, here is a quick definition: an iterative process of development that focuses on continuous short cycles of stakeholder feedback followed by a collaborative team response to that feedback. The product is never really “finished” but is rather considered to be in a continual state of improvement.
So how do you, as a client, measure progress on that? Before you read the answer, first realize that you have just touched upon one of the most basic challenges that software development teams face.
Agile KPI are not easy to set and track
Agile performance is notoriously difficult to measure. Even seasoned development teams struggle to set the right markers of performance and then track them effectively. Even when they get it right, every new product is a fresh start as far as determining what metrics to track. That is because new stakeholders have new goals, new business requirements to meet, and therefore might need to see different performance data presented in different ways during development meetings. Every job is a custom job, even when it comes to the performance and progress metrics that the team communicates to the client.
Key Performance Indicators (KPIs) range from the intimidating sounding Sprint Burndown Chart to the easier-to-digest types like Cycle Time or Lead Time. But clients, especially those who are commissioning their first product or who are new to Agile, might say it is all Greek to them. That is a shame since one of the most important goals of tracking KPIs is so you can report on progress and performance to the client.
Make sure that the software company that you are working with, shows up to the table with KPIs (like Cumulative Flow or Estimation Consistency) that you can clearly understand. The software partner should explain what all KPIs mean or why they are important. This is the best way for companies to know that the outsourcing software service that was hired connects and understands the business and offers value for their clients.
The role of the Product Manager is to lead the customer through a process
Imagine this: if the Agile approach is still a little new to some software development teams and they are still wrapping their heads around what KPIs to use, what do you think it is like for the client?
The average business client/stakeholder is going to need a lot of help here! The job of the Product Manager (PM) is to help the client understand the Agile process, and then lead them through every stage, guiding them in what they need to do. The traditional Waterfall approach to software development meant the client ordered a product, gave as detailed a spec sheet as they could manage, and then waited for a “final” product. Then the fixes would begin!
Agile, on the other hand, is an attempt to avoid wasting resources by doing the work in increments. With each iteration, the product inches its way forward based on feedback that the clients give.
It is an intense process and the client has to be much more involved than they might have expected. Using KPIs helps draw them into the process, stay focused, and understand how much value they are getting along the way, without having to wait until the end of the product development life-cycle to have a look (and have a say).
So that brings us to the KPIs that matter the most to clients. It will always vary depending on the customer, the business goals, and the product being developed but in general, here is the basic core set of KPIs that often mean the most to customers in a software development project.
1. Process-related KPIs that customers will understand
The way you measure product development progress and performance gives insight into how well the team is setting goals, meeting expectations, resolving issues, and staying on track with their Sprints. Clients will be interested in all this only so far as they can link these metrics to their own business goals – in other words, they need to see value in the KPIs brought to the table, not arbitrary milestones. KPIs that will make sense to them include burndown charts (with clear explanations!) and velocity KPIs, which show how many stories, for example, are completed with each Sprint.
2. Product-related KPIs that make sense for clients
One of the core values of Agile is that features do not get developed unless they are what the client wants and needs. Bear in mind that the software team you are working with should not get obsessed with developing certain features simply because they are cool. The iterations are there to make sure the right features are developed for the right users at the right time. Iterate, feedback, iterate again and repeat. So with each iteration, there should be a KPI that allows the stakeholder to measure how well the product meets their goals and satisfies the final user.
KPIs like Release Frequency tells the customer how often the team is delivering an update – a deliverable, in other words. That is a key indicator of how much value they have received at any given moment. Another good one is how much of the product is covered by automated testing? That points to how sustainable the product is and how efficient the development process is. Those translate directly to business value for the client and are easily understandable within the framework of business goals and requirements.
In the final analysis, there is never a one-size-fits-all answer for which KPIs to use that will best suit the client’s needs. There are so many more that we have not mentioned here, such as whether defects are fixed as they are discovered or saved for a future release. Even technical-sounding KPIs like Code Quality can become relevant and interesting to customers if they are explained carefully and linked to business goals for the customer.
Keep in mind that metrics are key for measuring and reporting progress and performance, but the real difference has more to do with communication. Listening to feedback, growing trust, and building quality into the product through a well-honed product development process are equally important, too. Use everything at your disposal, including KPIs and great PM skills, to make sure both parties are well-informed about the product development progress.
About the Author
Fabio Gasparri is a senior IT executive with over 20 years of experience in the software industry. Currently, Fabio is one of the managing partners at Hexacta and responsible for the Technology area. He is also in charge of all the process and quality improvement efforts in the company. This article was originally published on https://www.hexacta.com/2020/02/24/kpi-in-agile-software-development/ and is reproduced with permission from Hexacta.