Today's Agile teams contend with challenges that few development visionaries could have imagined when the foundations for Agile were first put in place. In this article, we will examine Key Performance Indicators (KPIs) that Agile teams can use to achieve transparency into key development processes, and fulfill the customer requirements of our maturing world.
1.0 - Coming of Age
Agile methods have truly come of age. The years since Jeff Sutherland's pioneering work on Scrum in 1993[i], and Kent Beck's creation of XP in 1996, have proven Agile's enduring qualities.
The world into which Agile has matured poses a new set of challenges to which Agile must now rise. We've moved from the physical bullpen to the virtual bullpen, with Agile teams contending with time zones, language barriers, and cultural distinctions. We've moved from coding guidelines to strict regulatory compliance. In fact, the development governance requirements for some industries is so strict that heavier-weight methodologies, with their emphasis on documentation, contracts and plans, begin to emerge as more attractive than their lighter-weight counterparts.
In a maturing environment, being better is not enough. We have to renew and reinvigorate our commitment to our customers, whether the external customer who buys our product, or the internal business unit counterpart who we serve. We have to embrace that same commitment to our management, the folks who fight for the budget and resources we need to accomplish our tasks.
A key component to this commitment is understanding new requirements in three areas: traceability, auditability, and compliance. It's not good enough to tout the benefits of Agile, we have to prove those benefits. And there's no better way than actively partnering with our customers and management alike, in a way that is meaningful to them.
2.0 - Process and KPIs
Software projects are usually evaluated in terms of either process or outcome. Agilists put special focus on process so that a successful outcome may be achieved, and strike a good balance between team and customer. But we also recognize that a process perspective is not, by itself, enough. To make a process really perform, we have to understand it, characterize it, benchmark it, and optimize it. KPIs are the power tools for accomplishing this; by using KPIs, we're able to enhance processes to superior outcomes.
Process distills to three basic elements: incoming materials, outgoing product, and the steps by which labor transforms one into the other. KPIs are there for us at every step of the way. They describe the quality of incoming and outgoing materials, the stability of the transformational steps, and the overall capability of the process to perform at expected levels.
We can learn from the parallels between Agile's coming of age and manufacturing. Industrial engineers began the formal study of process and KPIs in the 1950s. Over time, competition and tightening margins drove efficiency, often coupled with regulatory requirements around quality and safety. This resulted in manufacturers squeezing greater performance out of their processes, while at the same time being able to retain and audit what was done. Quality philosophy became increasingly refined, with tools to match. Inspection gave rise to statistical process control, which in turn empowered today's ultra-high-efficiency lean manufacturing environments. Because manufacturers invest in processes, applying KPIs to advances in assembly and materials technologies, the rest of us get to enjoy the high quality, high yield, short run, low cost consumer products they produce.
We can apply manufacturing's three key lessons to development iterations. First, if you are engaged in a process - any process - there are KPIs to tell you about the quality of the work