The simple cumulative flow diagram (CFD) used in Metrics: Cumulative Flow Diagrams – Basics and in more complex versions provide a basis for interpreting the flow of work through a process. A CFD can help everyone from team members to program managers to gain insight into issues, cycle time and likely completion dates. Learning to read a CFD will provide a powerful tool to spot issues that a team, teams or program may be facing. But to get the most value a practitioner needs to decide on granularity, a unit of measure, and time frame needed to make decisions.
Granularity / Complexity. As we have seen, organizations use CFDs to reflect any consistent process. In order to reflect the complexity of software development or maintenance requires identifying the flow of work. Often organizations begin with a process map when constructing a CFD or kanban board. In order to develop a CFD, it is rarely necessary to include the all of the tasks, activities and parameters, rather identify the major state changes. A few examples of state changes for a piece of work could include story definition, design, coding and unit testing and integration testing (just of few of the typical state changes between an idea and functional code). In terms of granularity, a CFD is typically more a reflection of a value chain map than a process map. The decision of the level of granularity and complexity is always a balance between the cost and effort needed to collect, analyze and display the data. Most importantly, granularity is driven by the data needed to inform key the decisions. More complexity generates a higher cost of data collection and a larger the potential impact on the process being measured.
Unit of Measure: Value, Stories or Points. All CFD’s have two axes: time frame and units of measure. Time is the X-axis is some unit of time (see below) and the Y-axis is a measure of what the team is delivering. The most common CFD uses stories to measure the flow of work through the process. The common problem with using stories is that the varying levels of granularity can mean that one story is far larger than another. Story points and function points are techniques used to consistently size stories. Value is another [WHAT?] used to develop a consistent understanding of the amount work flowing through the process. In scenarios that require combining the performance of multiple teams, a consistent sizing mechanism makes reporting easier for groups with different perspectives to understand.
Timeframe or Reporting Period. In most Agile and lean efforts, the data needed to develop and maintain cumulative flow diagrams is available on a continuous basis. I recommend having the CFD available to review both at daily stand-ups as well as for higher-level status meetings. At a team level, I typically show a chart that reflects the planning period (sprint length for Scrum or Scrumban) and a chart that reflects the process for release. At a program level (multiple teams or program increment in SAFe), I generate both a planning period and release CFD that reflects all teams.
The decisions on granularity, a unit of measure and timeframe for reporting shape the kind of decisions a team or manager can make using a CFD. A simple CFD will not be able to pinpoint problems in specific process steps, but will require relatively little effort to create and maintain. Similarly, decisions about the unit of measure and timeframe change frame what can and can’t be done with a CFD.