Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cptanalatriste/techdebt-game-model

A game-theoretic model of technical debt.
https://github.com/cptanalatriste/techdebt-game-model

game-theory simulation technical-debt

Last synced: about 1 month ago
JSON representation

A game-theoretic model of technical debt.

Awesome Lists containing this project

README

        

# Equilibrium Analysis for Technical Debt

*For an in-depht discussion of our empirical game-theoretic model, you can read our paper in the Journal of Systems and Software: https://www.sciencedirect.com/science/article/pii/S0164121219301980*

This model can generate the payoff values for a payoff matrix representing technical debt. After triggering the script `payoffbuilder.py`, the payoff information per strategy profile will be stored in the file `payoff_table_builder.log`.
This values can be later ported to a game solver like [Gambit](http://www.gambit-project.org/) to obtain its Nash Equilibrium.

Some relevant parameters of `payoffbuilder.py` are:

* `simulation_episodes` at line 44 controls the number of simulation iterations to execute.
The payoff values generated by the script is the average number of fixes per developer over these
iterations.
* `sloppy_rework_factor` at line 48 controls the increased probability that a kludge commit will later generate rework, like a bug or a change request due to code review.

The payoff values are generated via simulation. Simulation-specific parameters are exposed via the script `trainingdriver.py`.
Some of them are:

* `SCENARIO_TIME_UNITS` at line 13 is the time units simulated during an iteration.
* `SCENARIO_AVG_RESOLUTION_TIME` at line 14 is the average resolution time of a programming task.
* `SCENARIO_PROB_REWORK` at line 15 is the base probability of rework for the project.