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 to obtain its Nash Equilibrium.
Some relevant parameters of payoffbuilder.py are:
simulation_episodesat 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_factorat 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_UNITSat line 13 is the time units simulated during an iteration.SCENARIO_AVG_RESOLUTION_TIMEat line 14 is the average resolution time of a programming task.SCENARIO_PROB_REWORKat line 15 is the base probability of rework for the project.