Probabilistic Coding Velocity Model for Developer Productivity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current static analysis of software source code lacks a principled method to measure and rank developer productivity, particularly in scenarios with sparse and noisy data, failing to account for the variability in coding activities and the impact of non-coding tasks on codebases.

Innovation Solution

The system computes a coding velocity model that represents the likelihood of a developer's coding activity over time, considering both individual and collective behaviors, using coding-velocity samples and prior data to provide a probabilistic distribution of productivity, enabling accurate ranking and estimation of developer contributions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional static analysis methods are used to measure developer productivity, then the measurement process is simple, but the measurement precision is low and cannot handle sparse and noisy data

Engineering Contradiction:
Improveproductivity measurement precisionVSAvoidanalysis system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces a probabilistic coding-velocity model as an intermediary between raw version control data and productivity measurements. This model acts as a mediator that handles sparse and noisy data through probability distributions, transforming uncertain input data into reliable productivity estimates without requiring complex post-processing or validation systems

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent transforms productivity measurement from deterministic counts to probabilistic distributions. By changing the parameter representation from fixed values to probability distributions, the system can naturally handle uncertainty and sparsity in the data, improving measurement precision while maintaining manageable complexity through statistical methods

Inventive Principle:
Principle #35Parameter changes

2Reliability

If coding activity is measured using simple metrics like lines of code, then the measurement is easy to compute, but the reliability is low due to variability in coding activities and non-coding tasks

Engineering Contradiction:
Improveproductivity measurement reliabilityVSAvoidmeasurement system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The probabilistic coding-velocity model serves as an intermediary layer between raw commit data and productivity assessment. It reliably handles variability by modeling coding velocity as a probability distribution rather than a fixed value, accounting for non-coding tasks through the statistical nature of the model, and providing reliable estimates even when individual metrics are noisy

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system uses version control system data as feedback to continuously refine productivity measurements. By analyzing commit histories, timestamps, and code changes as feedback signals, the probabilistic model adjusts its estimates to reflect actual developer productivity patterns, improving reliability over time while maintaining a relatively simple measurement framework

Inventive Principle:
Principle #23Feedback

3Measurement precision

If developer productivity is ranked using deterministic methods, then the ranking process is straightforward, but it fails to account for uncertainty and variability in coding activities

Engineering Contradiction:
Improveproductivity ranking precisionVSAvoidcomputational efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent changes the ranking parameter from deterministic values to probabilistic distributions. By representing coding velocity as probability distributions rather than fixed numbers, the system achieves more precise rankings that account for uncertainty and variability. The probabilistic nature allows for more nuanced comparisons between developers while the computational methods remain efficient through standard statistical techniques

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10310853B2Coding velocity
Publication Date: 2019.06.04 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10310853B2 patent drawing
  • US10310853B2 patent drawing
  • US10310853B2 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for computing coding velocity. One of the methods includes receiving a definition of one or more individual source code developers belonging to a target developer entity. Coding-velocity samples for each individual source code developer belonging to the target developer entity are generated, wherein each coding-velocity sample represents a measure of coding activity by the individual source code developer over a respective time duration. The coding-velocity samples are aggregated according to the definition of the target developer entity. A coding-velocity model for the target developer entity is generated from the aggregated coding-velocity samples of the target developer entity. A value of a particular coding-velocity attribute for the target developer entity is computed using the coding-velocity model.