The Interplay Between Flow Metrics and Knowledge-Centric Metrics

In Software Development

Takeaways

  • Flow Metrics and Knowledge-Centric Metrics provide a comprehensive way to measure software development processes, capturing everything from tangible logistics to intangible knowledge discovery aspects.
  • Flow Velocity correlates with KEDE Productivity, revealing a holistic picture of organizational efficiency. An increase in KEDE Productivity signifies a rise in Flow Velocity, assuming the work quality remains consistent.
  • Rework, as measured by both Flow Metrics and Knowledge-Centric Metrics, offers two complementary perspectives on software development, enabling a more holistic understanding of the development process.
  • The positive correlation between Flow State (Happiness) and Flow Time shows that when developers are in the state of 'flow', they can perform tasks more quickly, thereby reducing the Flow Time.
  • Harnessing both Flow and Knowledge-Centric Metrics can lead to more productive, efficient, and collaborative software development environments, enabling organizations to fully optimize their development processes.

Introduction

Software development analytics is a rapidly growing field that is playing an instrumental role in creating more efficient, reliable, and productive software engineering processes. By analyzing various metrics related to coding practices, project management, and team dynamics, this discipline provides actionable insights that can dramatically improve the way software development projects are managed and executed.

At the heart of these analytics are two comprehensive measurement frameworks: Flow Metrics and Knowledge-Centric Metrics. Flow Metrics provide a suite of parameters that quantify the efficiency and productivity of the software development process, looking at tangible logistics such as Flow Velocity (the productivity measure), Flow Time (the time from start to completion), Flow Efficiency (percentage of active work time), and Flow Load (the work in progress). An integral part of these metrics is the assessment of Rework, which is code rewritten or deleted after it was committed.

Conversely, Knowledge-Centric Metrics shift the focus onto the intangible, addressing the knowledge gap a software developer needs to bridge to successfully complete a task. Knowledge-Centric Metrics like Collaboration, Cognitive Load, Happiness (Flow State), Productivity, and Rework present a multidimensional view of a developer's experience and the overall efficiency of the development process.

This article aims to illuminate the intricate interplay between Flow Metrics and Knowledge-Centric Metrics in the context of software development. We will unpack the core definitions of each, then explore how these metrics relate to, influence, and complement each other. By understanding and harnessing these metrics, organizations can capture a full range of factors impacting their software development processes, from tangible logistics to intangible knowledge discovery aspects.

By the end of the article, readers will have a comprehensive understanding of these measurement frameworks and how they can be used to drive better software development practices. The insights provided will be valuable for software developers, project managers, and anyone interested in improving the developer experience and productivity of software development.

Understanding Flow Metrics

Flow Metrics are used to measure how value moves through the value stream of a software product from one end to the other end. The metrics are calculated on specific Flow Items that can be defined as units of work that are crucial to a software delivery organization.

Flow Items can be User Stories, Features, Defects, Technical Debts, Pull Requests, Incidents and even Risks

Any effort or transformation that a company undertakes in relation to software delivery can be assigned to one of Flow Item core categories.

  1. Flow Velocity: Flow velocity is a measure of the quantity of Flow items a team completes within a given time frame. It essentially helps gauge the speed at which a software development team is delivering value. A higher flow velocity indicates a more productive team, assuming the quality of work remains consistent.
  2. Flow Time: Flow time refers to the total time it takes for a Flow item to travel from the start to the end of a process. It includes both active work time and wait or idle time. The goal is to minimize flow time to ensure efficiency and rapid delivery.
  3. Flow Efficiency: Flow efficiency is the ratio of active work time to total flow time. It shows what percentage of the overall time is spent actively working on a Flow item. This reveals how efficiently time is being used in the development process. A higher percentage signifies a more efficient process, with less time wasted on waiting or addressing bottlenecks.
  4. Flow Load: Flow load measures the amount of flow items currently in progress within a process. A high Flow Load can be an indicator of potential overloading of the team. This can lead to inefficiencies and delays as developers juggle multiple tasks. Reducing flow load can help ensure smoother operations, higher Flow Velocity and shorter Flow times.
  5. Rework: Rework in Flow metrics refers to the code that is rewritten or deleted after it was committed. While a certain level of rework is anticipated in software development, unexpected spikes could indicate a developer facing difficulties with a project or dealing with ambiguous project requirements.

Flow metrics present an invaluable framework for assessing the efficiency, productivity, and overall health of a software development process. They lend an objective, quantifiable perspective, akin to a 'logistics' viewpoint on software development. This perspective allows us to visualize software development as a process of moving tangible entities such as features, defects, debts, and risks from the stage of input through output and finally to the outcome for users.

Flow Velocity and Flow Time are critical for estimating future performance based on past data and understanding how changes in the team or process affect the output. Flow Efficiency, on the other hand, helps identify inefficiencies in the process, enabling proactive measures to reduce idle times and enhance productivity.

Flow Load gives insight into work management, ensuring the team is not overburdened and projects are not stalled due to excessive WIP. And Rework, often overlooked, is a powerful indicator of both code quality and the clarity of project requirements. By monitoring rework, teams can identify and address issues early on, preventing costly fixes in later stages.

Flow metrics offer a comprehensive and pragmatic view of the team's performance. They are instrumental in identifying potential bottlenecks or issues, akin to locating gridlocks in a physical supply chain. This empowers teams to make informed decisions about resource allocation, process changes, and project timelines, similar to optimizing logistical operations for efficiency and productivity. This logistical perspective on software development, provided by Flow metrics, brings the process to life in a concrete, actionable manner.

Deciphering Knowledge-Centric Metrics

KEDE, an acronym for Knowledge Discovery Efficiency, quantifies the knowledge a software developer lacked prior to starting a task. It essentially measures the knowledge they needed to acquire to successfully complete the task. This "knowledge gap" is critical as it directly influences the developer's experience, impacting their happiness and productivity.

KEDE is calculated by dividing existing knowledge by the sum of existing knowledge and the missing knowledge that needs to be discovered. The resulting figure is a direct measurement of how efficiently a developer utilizes their existing knowledge to complete tasks.

KEDE is a tool that applies to a variety of contexts and can be used for several Knowledge-Centric Metrics. These include metrics like Collaboration or Short Feedback loops, Cognitive Load, Happiness (Flow State), Productivity, and Rework (Information Loss Rate). All these metrics, although diverse, can be quantified and evaluated using KEDE.

Knowledge-Centric Metrics derivedfrom KEDE can provide deeper insights into various aspects of software development:

  1. Cognitive Load: This metric quantifies the total mental effort required for a task, providing an insight into the complexity faced by a software developer when looking at a work item before starting the work. This involves considering the number of work items and their interrelations and how many options a software developer sees when looking at a work item, that need to be considered and kept in mind in order to complete the task. The lower the cognitive load, the easier the task is perceived.
  2. Collaboration: This measures the extent to which knowledge and information are shared and co-created within the team. It is calculated by examining the efficiency of information acquisition (KEDE) relative to the number of active developers. A higher value indicates a healthy exchange of ideas, mutual problem-solving, and knowledge transfer among team members. This fosters an environment conducive to effective discovery and utilization of knowledge, which in turn can drive innovation and productivity.
  3. Flow State (Happiness): A state of "flow" is an indicator of optimal experience and enjoynment at work. This state is achieved when there is a balance between individual capability and work complexity, with a slight inclination towards challenges. This is calculated using KEDE by gauging the knowledge discovered after successful work completion.
  4. Productivity:(value per bit of information discovered) In economic terms, productivity is the ratio of outcome to input. In the context of software development, knowledge serves as a primary input to yield outcomes. Productivity is the ratio between value delivered and the knowledge developers need to discover to deliver that value. High productivity is signified when less knowledge needs to be discovered for the outcome to be produced.
  5. Rework (Information Loss Rate): This refers to the replacement of existing knowledge with new information due to avoidable mistakes or poor knowledge-acquisition practices. The measure of this inefficiency is captured by the 'information loss rate', which is the ratio of lost information to the total perceived information. An increased 'information loss rate' signals a higher rate of errors and, by extension, more time and effort wasted on reworking tasks.

When KEDE increases, it signifies an improvement in these metrics.

Knowledge-Centric Metric KEDE Correlation Desired Trend Impact on Organization when KEDE increases How to improve?
Collaboration Positive Correlation Upward Trend Improvement in teamwork and communication Shorten the Feedback Loops
Cognitive Load Negative Correlation Downward Trend Reduction in mental strain for developers Capability Should Match Work Complexity
Happiness (Flow State) Positive Correlation Upward Trend Increase in job satisfaction and engagement Address the Causes of unhappiness
Productivity Positive Correlation Upward Trend Enhancement in work output and efficiency Unleash the untapped human potential
Rework (Information Loss Rate) Negative Correlation Downward Trend Reduced delivery time and resources waste Reduce rework

The column "Knowledge-Centric Metrics" lists the different aspects that can be evaluated using KEDE. The column "KEDE Correlation" denotes the relationship between the Knowledge-Centric Metric and KEDE (whether it's a positive or negative correlation). The column "Desired Trend" signifies the preferable direction for each metric (upward or downward). Finally, the "Impact on Organization when KEDE increases" column offers a brief description of how the increase in KEDE would affect each Knowledge-Centric Metric in the context of an organization.

KEDE provides a way to measure an organization's capability. If a company focuses on KEDE alone, a rise in the KEDE score correlates with improved collaboration, reduced cognitive load, increased happiness, enhanced productivity, and decreased waste.

Knowledge-Centric Metrics take a unique, knowledge-centric approach to software development. By measuring the information gap and the discovery process, Knowledge-Centric Metrics provide insights into the invisible intellectual work that goes into software development, complementing the more tangible 'logistics' perspective of Flow metrics.

They are instrumental in highlighting areas for potential improvement, enhancing team collaboration, reducing cognitive load, and fostering a conducive environment for developers to achieve a state of flow. The productivity measure offered by KEDE gives a sound basis for assessing the efficiency of knowledge utilization in the process. Similarly, the rework metric provides an understanding of knowledge waste, enabling measures to reduce it.

In a nutshell, Knowledge-Centric Metrics offer an avenue to measure and improve an organization's intellectual capability, providing critical levers to enhance collaboration, increase happiness, boost productivity, and decrease waste. This, in turn, leads to better software development practices and superior outcomes.

Alignment of Knowledge-Centric Metrics with Flow Metrics

Flow metrics and Knowledge-Centric Metrics, while representing different facets of the software development process, align well to form a holistic measurement of engineering efficiency. This efficiency is essentially the quality and quantity of work done with the given resources and constraints.

For example, Flow Velocity, a Flow metric, gives us the rate of work completed within a given time frame. Meanwhile, KEDE Productivity, a Knowledge-Centric Metric, represents the efficiency of knowledge utilization to produce outcomes. Both these metrics, when used together, give a comprehensive view of team efficiency: Flow Velocity showcases the tangible outcomes, and KEDE Productivity reflects the intellectual work that underpins these outcomes. A higher KEDE Productivity means less knowledge needs to be discovered for the outcome to be produced, which may result in a higher Flow Velocity.

Similarly, the Rework rate in Flow Metrics, which highlights code rewritten or deleted, can be compared with Rework in Knowledge-Centric Metrics. A decrease in KEDE's Rework score might signal an inefficient knowledge acquisition process, which, when improved, could subsequently reduce the Rework rate in Flow metrics.

While Flow Metrics provide valuable insights into the logistical aspect of the software development process, Knowledge-Centric Metrics complement them by focusing on the intellectual aspect. They fill in a crucial gap, shedding light on the knowledge required and the knowledge acquisition process, which are essential for efficient software development but often remain hidden when looking solely at tangible outcomes.

For instance, a high Flow Load might suggest that the team is overloaded with tasks. Still, it doesn't tell us about the complexity of these tasks, which Knowledge-Centric Metrics can quantify through Cognitive Load. A high cognitive load might suggest that tasks are overly complex and need to be simplified or better divided among team members.

Moreover, Knowledge-Centric Metrics' emphasis on collaboration, happiness (flow state), and rework (information loss rate) provides additional dimensions to improve team efficiency and well-being, supplementing the process-focused Flow metrics. Thus, Knowledge-Centric Metrics play a vital role in complementing Flow metrics, providing a more rounded and comprehensive view of the software development process.

Correlation Between Flow Efficiency and KEDE

Flow Efficiency and KEDE are distinct metrics that measure efficiency from two different perspectives, but they can complement each other effectively in capturing the overall efficiency of a software development process.

In essence, while Flow Efficiency measures how efficiently the work time is utilized in the process, KEDE tracks how efficiently existing knowledge is applied to solve problems and complete tasks.

Interestingly, the idle time considered in Flow Efficiency could be due to two main factors:

  1. waiting for a dependency,
  2. waiting for missing information to arrive or knowledge to be discovered.

KEDE directly addresses the second point by quantifying how much time developers spend acquiring new knowledge, a period which may appear as 'idle time' to those observing only the flow of physical items, such as features. In this sense, an increase in KEDE - indicating a reduction in the knowledge gap or faster knowledge acquisition - could translate into an increase in Flow Efficiency.

Therefore, the correlation between KEDE and Flow Efficiency becomes apparent when considering the knowledge acquisition process. Together, these metrics can provide a more holistic view of efficiency in software development, encompassing both time utilization and knowledge utilization.

Correlation Between Cognitive Load and Flow Load

Cognitive Load and Flow Load are two metrics that, while seemingly different, are intrinsically linked in the software development process.

The correlation between these two metrics lies in how they each reflect different aspects of software development process. Cognitive Load provides a perspective on the individual mental effort required, while Flow Load gives a sense of the volume and pacing of tasks within the team.

Essentially, Cognitive Load quantifies the impact of Flow Load on the work experience of software developers. A high Flow Load, while indicating a high volume of work, could potentially translate into a high Cognitive Load, implying that the tasks are complex or numerous, thereby increasing the mental effort required by developers.

In this way, Cognitive Load and Flow Load complement each other by providing a comprehensive perspective linking the intangible individual work experience and the tangible flow of work items, thereby enabling a better understanding and management of software development processes.

Correlation Between Productivity and Flow Velocity

The intersection of Productivity and Flow Velocity provides a nuanced understanding of a software development org's performance.

Productivity and Flow Velocity share the same numerator in terms of value (outcomes), but they have different denominators - 'time' for Flow Velocity and 'knowledge to be discovered (missing information)' for Productivity. This creates an interesting correlation as it implies that value delivered can be seen from two distinct yet interrelated angles - the time taken and the knowledge discovered.

Together, these metrics provide a comprehensive picture of a software development organization's efficiency. While Flow Velocity gives a tangible measure of the speed at which value is produced, Productivity shows how that speed is influenced by the talent within the organization. If the talent is strong, less knowledge needs to be discovered, or if the project is innovative, a talented team can discover missing information more quickly, both leading to higher productivity.

In this light, Productivity and Flow Velocity aren't just isolated metrics but complementary angles through which we can understand the overall efficiency and effectiveness of a software development process.

Rework from both Flow Metrics and Knowledge-Centric Metrics Perspectives

In essence, rework metrics from both KEDE and Flow Metrics provide complementary viewpoints on the same aspect of the software development process. By measuring rework through these two different lenses, we can gain a more comprehensive understanding of the impact of rework on the development process and project outcomes. For instance, a high rework rate in Flow Metrics, coupled with a high information loss rate in Knowledge-Centric Metrics, would underline significant issues with knowledge management and project requirements. This holistic perspective, in turn, allows for more effective problem identification and resolution strategies.

Correlation between Flow State (Happiness) and Flow Time

One of the most important aspects of any work environment is the psychological state of its participants. This is no different in software development, where the psychological state of developers often directly impacts their work quality and efficiency. In this context, let's explore how KEDE's Flow State (a measure of happiness) and Flow Metrics' Flow Time are interconnected.

Interestingly, KEDE measurements propose a somewhat counterintuitive relationship between efficiency and developer happiness. The most efficient developers, those who require less discovery of new knowledge, may also be the ones who are most prone to boredom. This suggests that achieving an optimal flow state isn't just about efficiency but also about maintaining a level of challenge and engagement in the tasks undertaken.

The correlation between Flow State and Flow Time is essentially one of happiness versus efficiency. When developers are in a state of flow, they are fully engaged, feel more productive, and tend to deliver higher-quality work. This enhanced productivity and quality, in turn, contribute to a reduction in Flow Time. Similarly, a shorter Flow Time (indicating an efficient and smooth process) can boost the developers' sense of achievement and satisfaction, contributing to a positive Flow State.

Thus, Flow State from KEDE and Flow Time from Flow Metrics, while providing distinct measurements, are fundamentally intertwined. They offer complementary insights into the software development process. By monitoring these metrics simultaneously, it's possible to create an environment that promotes not only the well-being of the developers (Flow State) but also the overall success and efficiency of the software development process (Flow Time).

Correlation between All Flow Metrics and KEDE Measure of Collaboration

Software development is an innately collaborative process. A well-coordinated team that communicates effectively can drastically improve the efficiency and quality of a software project. This highlights the importance of understanding how the collaboration within a team, as measured by Knowledge-Centric Metrics, is related to the Flow Metrics – Flow Velocity, Flow Time, Flow Efficiency, Flow Load, and Rework.

Collaboration, as measured by KEDE, has strong correlations with all Flow Metrics:

  1. Flow Velocity: High collaboration can enhance Flow Velocity by enabling faster decision-making and better coordination among team members. This can potentially lead to quicker completion of Flow items.
  2. Flow Time: Effective collaboration can reduce Flow Time. When team members work together efficiently, sharing knowledge, and addressing issues collectively, Flow items are likely to move from start to completion more quickly.
  3. Flow Efficiency: Collaboration can improve Flow Efficiency. As team members share knowledge and work together to solve problems, there will be less idle time, which contributes to better Flow Efficiency.
  4. Flow Load: Effective Collaboration can also positively impact Flow Load. Teams that collaborate well can handle more Flow items without feeling overwhelmed, which may result in a balanced Flow Load.
  5. Rework Collaboration reduces the likelihood of Rework. As team members share knowledge and learn from each other, they are likely to make fewer errors, resulting in less need for rework.

In this way, teams that collaborate effectively are likely to have higher Flow Velocity, lower Flow Time, better Flow Efficiency, balanced Flow Load, and less Rework. Therefore, fostering a collaborative environment can significantly enhance the overall productivity and efficiency of a software development team.

In conclusion, Collaboration as measured by KEDE and Flow Metrics truly complement each other, providing a comprehensive perspective that bridges the intangible individual work experience with the tangible flow of work items. This integrated approach, which captures both the human and process elements of software development, paves the way for a nuanced understanding of how teams operate and how they can be best managed. By shedding light on how these elements interact, these metrics enable the development of more effective strategies for managing and improving software development processes. They underscore the fact that fostering collaboration is not just about improving team dynamics, but also about enhancing the logistical aspects of work delivery – a critical consideration for any organization seeking to optimize its software development efforts.

Conclusion

Throughout this article, we delved into the relationship between Flow and Knowledge-Centric Metrics. Flow metrics, with their focus on the tangible logistics of software development, provide an essential framework for understanding how work progresses from input through output to deliver outcomes to users. On the other hand, Knowledge-Centric Metrics bring to light the knowledge discovery aspect of the development process, measuring the intangible yet crucial elements such as cognitive load, collaboration, productivity, and happiness.

By bridging these two perspectives, we've seen how these metrics provide complementary insights into the software development process. The correlations between metrics like Flow Velocity and KEDE's productivity metric, Cognitive Load and Flow Load, and the interplay of Rework from both metrics have painted a more comprehensive picture of what's happening under the hood in software development.

As we look toward the future of software development analytics, the integration of Flow and Knowledge-Centric Metrics presents a promising approach. By harnessing both these metrics, organizations can capture the full range of factors impacting their software development processes, from tangible logistics to intangible knowledge discovery aspects. As machine learning and artificial intelligence continue to evolve, we anticipate even more sophisticated analyses that combine these metrics in new and insightful ways.

In conclusion, both Flow and Knowledge-Centric Metrics serve as critical tools in our quest to understand, analyze, and improve software development processes. While they each have their strengths, their true power lies in their combination. As we move forward in the ever-evolving landscape of software development, let's harness these metrics to shed light on the complex dynamics at play, thereby driving improvements in productivity, collaboration, and overall happiness.

We encourage software developers and teams to explore these metrics, understand their interrelations, and apply these insights in their everyday work. Let's continue to push the boundaries of software development analytics and strive for continuous improvement in our pursuit of excellence in software development.

Appendix

Mapping

The column "Metric" lists different flow (tangible) metrics. The column "Description" denotes the description of each flow (tangible) metric. The column "Mapping to Flow Metrics" signifies the mapping of each flow (tangible) metric to one of the general Flow Metrics. The column "Desired Trend" signifies the preferable direction for each metric (upward or downward). The column "Knowledge-Centric Metric" lists the different aspects that can be evaluated using KEDE. Finally, the column "KEDE Correlation" denotes the relationship between the metric and Knowledge-Centric Metric (whether it's a positive or negative correlation).

Metric Description Mapping to Flow Metrics Desired Trend Knowledge-Centric Metric KEDE Correlation
Flow Metrics[9]
Flow Velocity Measures how productive a process actually is. The quantity of Flow items completed within a given time frame Upward Trend Productivity Positive Correlation
Flow Time Captures the time that a flow item takes from start to completion, which includes both active times and wait times. The time that a flow item takes from start to completion Downward Trend Flow State (Happiness) Negative Correlation
Flow Efficiency Identifies whether the waste is increasing or decreasing within the delivery value stream. The percentage of Flow time that Flow item is being worked on vs. the total amount of Flow time it spends in the value stream. Upward Trend KEDE Positive Correlation
Flow Load Work in Progress The number of Flow items that are part of the value stream Downward Trend Cognitive Load Positive Correlation
Flow Distribution Helps decision-makers prioritize the flow items that matter most. the proportion of the four flow items features, debt, risk, and defects in a specific value stream
DORA Metrics[10]
Deployment Frequency Refers to the frequency of successful software releases to production. Flow Velocity, where Flow Items are 'successful software releases' Upward Trend Productivity Positive Correlation
Lead Time for Changes Captures the time between a code change commit and its deployable state. Flow Time, where Flow Items are 'code changes' Downward Trend Flow State (Happiness) Negative Correlation
Mean Time to Recovery Measures the time between an interruption due to deployment or system failure and full recovery. Flow Time, where Flow Items are 'interruptions' Downward Trend Flow State (Happiness) Negative Correlation
Change Failure Rate Indicates how often changes or hotfixes lead to failures after the code has been deployed. Flow Velocity, where Flow Items are 'changes or hotfixes that lead to failures' Downward Trend KEDE Negative Correlation
Coding Metrics[11]
Rework Rework is code that's rewritten or deleted within some time of being created.. Flow Velocity, where Flow Items are 'code that's rewritten or deleted' Downward Trend Information Loss Rate Positive Correlation
Legacy refactor measures the updates and edits to code older than a certain time. Flow Velocity, where Flow Items are 'updates and edits to code' Downward Trend Information Loss Rate Positive Correlation
New work the amount of new code a team or individual writes for new products and features. Flow Velocity, where Flow Items are 'amount of new code'
Commit complexity Commit complexity measures how likely it is that a particular commit will cause problems. This metric calculation includes how large the commit is, the number of files it touches, and how concentrated the edits are. Commit complexity essentially looks at the riskiness associated with a commit.
Collaborative Metrics[11]
Responsiveness Responsiveness is a measure of how long it takes a submitter to respond to a comment on their pull request with another comment or code revision. This metric gives teams insight into whether team members are responding to code review feedback in a timely manner. Flow Time, where Flow Items are 'a submitter to respond to a comment on their pull request' Downward Trend Collaboration Positive Correlation
Unreviewed PRs Unreviewed PRs is the percentage of pull requests without comments or approvals. This metric shows you how many pull requests are merged without being reviewed. Flow Velocity, where Flow Items are 'pull requests without comments or approvals' Downward Trend Collaboration Positive Correlation
PR iteration time This s the average time in hours between the first and final comment on a pull request. This metric gives you insight into how long it takes to implement changes requested on PRs. Flow Time, where Flow Items are 'changes requested on PRs' Downward Trend Collaboration Positive Correlation
Iterated PRs Iterated PRs is the percentage of pull requests with at least one follow-on commit. This simple metric allows you to see how many pull requests require additional work before being merged. Flow Velocity, where Flow Items are 'pull requests that require additional work before being merged' Downward Trend Collaboration Positive Correlation
Reaction time Reaction time is the time it takes for a reviewer to review a pull request and respond to a comment. This metric helps answer the question: Are reviewers responding to pull requests in a timely manner? Flow Time, where Flow Items are 'responses to pull requests' Downward Trend Collaboration Positive Correlation
Thoroughly reviewed PRs This is the percentage of merged pull requests with at least one regular or robust comment. This metric aims to ensure pull requests are being thoroughly reviewed. Flow Velocity, where Flow Items are 'Thoroughly reviewed pull requests' Upward Trend Collaboration Positive Correlation
Time to merge This is the average time in hours from when pull requests are created to when they're merged. This metric tells you how long pull requests are in review. Long-running pull requests can be costly to your business and result in delayed releases. Flow Time, where Flow Items are 'merged pull requests' Downward Trend Collaboration Positive Correlation
Time to first comment This is the average time in hours from when pull requests are created to when they receive their first comment. Flow Time, where Flow Items are 'first comment' Downward Trend Collaboration Positive Correlation
Follow-on commits Follow-on commits measure the number of code revisions added to a pull request after it is opened for review. Tracking this metric gives you insight into the quality of your code review process. If you see a spike in follow-on commits, that’s an indication you may need better planning and testing. Downward Trend Collaboration Positive Correlation
Sharing index Sharing index measures how information is being shared across a team by looking at who's reviewing whose pull requests. Tracking the sharing index can help you understand the number of people regularly participating in code reviews. This metric is a great way to gauge how well senior members are sharing knowledge with more junior developers and identifying situations where knowledge silos are happening. Upward Trend Collaboration Positive Correlation
Neural code synthesis system Metrics[12]
Acceptance rate The ratio of shown code suggestions being accepted. Acceptance rate (accepted_per_shown) most positively predicts users' perception of productivity, although, given the confounding and human factors, there is still notable unexplained variance. Upward Trend KEDE Positive Correlation

Works Cited

1. Shannon, C. E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal. 1948;27(3):379-423. doi:10.1002/j.1538-7305.1948.tb01338.x

2. Drucker , Peter F, “Knowledge-Worker Productivity: The Biggest Challenge,California Management Review, vol. 41, no. 2, pp. 79–94, Jan. 1999, doi: 10.2307/41165987.x

3. Kahneman D. (1973). Attention and Effort. Englewood Cliffs, NJ: Prentice-Hall

4. Kahneman, D. (2011). Thinking, fast and slow. Farrar, Straus and Giroux.

5. Bakardzhiev, D., & Vitanov, N. K. (2022). KEDE (KnowledgE Discovery Efficiency): a Measure for Quantification of the Productivity of Knowledge Workers. BGSIAM'22, p.5. Online: https://scholar.google.com/scholar?oi=bibs&hl=en&cluster=1495338308600869852

6. Bakardzhiev, D. V. (2022). U.S. Patent No. 11,372,640. Washington, DC: U.S. Patent and Trademark Office. Online: https://scholar.google.com/scholar?oi=bibs&hl=en&cluster=3749910716519444769

7. Anderson, D. J., & Carmichael, A. (2016). Essential Kanban Condensed. Lean-Kanban University.

8. Steyaert, P. (2018). Essential Upstream Kanban (Illustrated edition). Lean-Kanban University.

9. Flow Framework

10. DevOps Research and Assessment

11. 17 software engineering metrics + how to track them

12. Albert Ziegler, Eirini Kalliamvakou, X. Alice Li, Andrew Rice, Devon Rifkin, Shawn Simister, Ganesh Sittampalam, and Edward Aftandilian. 2022. Productivity assessment of neural code completion. In Proceedings of the 6th ACM SIGPLAN International Symposium on Machine Programming (MAPS 2022). Association for Computing Machinery, New York, NY, USA, 21–29. https://doi.org/10.1145/3520312.3534864

Getting started