Impact is a way to measure the amplitude of code changes that are happening in a more complex manner than measuring raw lines of code.
Impact attempts to answer the question: "Roughly how much cognitive load did the engineer carry when implementing these changes?"
Impact is a measure of work size that takes this into account. Impact takes the following into account:
- What percentage of the work is edits to old code
- The surface area of the change (think 'number of edit locations')
- The number of files affected
- The severity of changes when old code is modified
- How this change compares to others from the project history
One engineer makes a contribution of 100 new lines of code to a single file.
Compare that to another engineer's contribution, which touches three files, at multiple insertion points, where they add 18 lines of code while removing 28 lines of code.
The significance of each contribution can't be boiled down to just the amount of code being checked in. Even without knowing specifics, it's likely that the first set of changes were more difficult to implement, given that they involved several spot-edits to old code.
On the right, we have someone adding 100 lines of new code to a single file. On the left is an example that represents only 18 lines of new code written, but there's something more going on here:
- this change required modifying previous work
- the edits took place in 4 different locations
- 3 different files were affected
Even without knowing the gravity of changes or comparing to previous changes, it's safe to say that the first contribution was more 'impactful,' and therefore carries a higher impact.
Although change set #2 includes more lines of code, the increased complexity of the work happening in change set #1 can make that changeset at least as much work, and possibly more — even in the condensed representation above, it's obvious that there's more than just lines of code in play.
We display the Impact as an average Impact of the active days. We display the engineers' Impact as a multiple of the average Impact.
The average will be displayed as 1x, and everything higher or below will display with multiples:
- 1.6x = 60% higher than the average
- 0.4x = 60% lower than the average
And if you do a mouse over the multiple (ex 1.2x), you will see the raw number of the Impact.
The proprietary algorithm behind the Impact comprises multiple data points that we improve on a monthly basis to provide a metric that translates engineers’ output into both business value and cognitive load.