Coding Impact Score
Last updated
Last updated
Oobeya measures the Coding Impact Score by evaluating the magnitude of code changes, which helps answer significant questions:
Approximately how much cognitive load did the developer experience when implementing these changes?
What is the overall impact of these changes on the codebase?
The Coding Impact Score is calculated based on the following factors:
Files Touched: How many files were affected by the changes? How many new files were added or deleted from the code base in this Git commit?
Complexity/Scope of Changes: How many insertion points (Git hunks) were changed in each file? How many different classes were modified, added, or deleted?
Work Type of Code Changes: What was the work type of each code line change? How many code lines were newly added, edited, or deleted? To learn more about work types, please click here.
Coding Impact Score of A Commit = (Files added x 10) + (Files modified x 6) + (Files deleted x 6) + (Git hunks x 4) + (New code lines x 0.14) + (Edited code lines x 0.28) + (Deleted code lines x 0.28)
Change Level | Change Type | Coefficient |
---|---|---|
In Oobeya, you can configure the appropriate coefficients in the administration settings.
Tracking the Coding Impact Score allows Oobeya to identify the approximate cognitive effort of developers during development cycles. This is crucial for recognizing:
Team Health and Individual Health Symptoms: The risk of developers with high cognitive load burning out or becoming overloaded.
Working Practice / Collaboration Symptoms: The knowledge silos that have formed within the team.
Explore the Impact Ratio metric to get deeper insights into your team:
Oobeya uses the Coding Impact Score metric to identify the 'Recurring High Cognitive Load' symptom.
While a higher Coding Impact Score isn't inherently positive or negative, it does shed light on the cognitive load your team members are experiencing. Here's how you can use it effectively:
Balance Workload Within The Team:
Monitor high Coding Impact Scores over time to identify developers who might be at risk of overload and burnout.
Redistribute tasks to balance the workload, ensuring sustainable productivity.
Recognize Contributions:
Use the Coding Impact Score to acknowledge and understand the complexity of the contributions made by each developer in a given period.
Highlight and reward significant efforts appropriately.
Improve Processes:
Analyze patterns in Impact Scores to identify areas where process improvements can fix the unbalanced workload among the team members.
Implement changes to streamline workflows, empower collaboration, and enhance efficiency.
To better understand the Coding Impact Score, consider the following example:
Commit #1: An engineer added 100 new lines of code to a single file.
Commit #2: Another engineer touched 6 files at multiple modules, adding 40 lines, modifying 20 lines, and deleting 20 lines of code.
This shows the total lines of code changed are the same (100 lines) for both commit activities.
Despite containing the same lines of code change, Commit #2 is likely more difficult to implement due to:
Modifying previous work (modifying 20 lines + deleting 20 lines at 6 different files)
Edits in multiple different locations (Git hunks/insertion points in code)
Six different files were affected. The engineer should understand all modules affected, and test them and their dependencies.
Impact Scores for the example are calculated as
Commit #1: 24x
Commit #2: 92.8x
The Result:
They both had one commit and 100 lines of code changed, but the second engineer exerted approximately four times (3.86x) more cognitive effort on her task compared to the first engineer.
The Impact Score is a powerful tool in Oobeya's suite, providing valuable insights into the cognitive load on your engineering team. By using it to balance workloads, recognize contributions, improve processes, and enhance collaboration, you can support the well-being and productivity of your team, ensuring sustainable, efficient, and productive development cycles.
File
Adding a new file
10
File
Editing an existing file
6
File
Deleting an existing file
6
Block
Working on a Git hunk (a separate code block)
4
Line
Adding a new line
0.14
Line
Editing an existing line
0.28
Line
Deleting an existing line
0.28