Difference between revisions of "Derivation of developer productivity parameters"

From knowledgebase
Jump to navigation Jump to search
(Replaced content with "Derivation of developer productivity parameters Category:math")
Tag: Replaced
 
Line 1: Line 1:
−
Derivation of developer productivity parameters
+
At <math>t = 0</math> <math>P_0</math> is defined to be developer productivity without legacy obligations
 +
(1) <math>P(0) = P_0</math>
 +
 
 +
At time <math>t</math> the developer productivity is given by the following equation. <math>r</math> denotes the rate in which productivity declines over time (see [[Derivation of developer productivity decline function|Derivation of developer productivity decline function]])
 +
(2) <math>P(t) = P_0 \cdot e^{-r t} dt</math>
 +
 
 +
We know that after 1 year a developer has produced 10KLoc:
 +
(3a) <math>\int^1_0 P_0 \cdot e^{-r t} dt</math> = <math>{ProductionPerYear} = 10</math>
 +
 
 +
We know that over the full life time a developer can maximally maintain 50KLoc:
 +
(4a) <math>\int^\infty_0 P_0 \cdot e^{-r t} dt</math> = <math>{MaxMaintenance}  = 50</math>
 +
 
 +
Using the [[Substitution rule|Substitution rule]] we can see that:
 +
(5a) <math>u = -rt</math>
 +
(5b) <math>t = 0 => u = 0</math>
 +
(5c) <math>t = \infty => u = - r \cdot \infty</math>
 +
(5d) <math>t = 1 => u = - r</math>
 +
(5e) <math>du = -rdt => dt = </math> <math>-\frac{1}{r}</math><math>du</math>
 +
 
 +
So that:
 +
(3b) <math>-P_0 \frac {1}{r} \int^{-r}_0 e^u du</math> = <math>{ProductionPerYear}</math>
 +
(3c) <math>-P_0 \frac {1}{r} (e^{-r} - e^0)</math> = <math>{ProductionPerYear}</math>
 +
(3d) <math>P_0 \frac {1-e^r}{r}</math> = <math>{ProductionPerYear}</math>
 +
(3e) <math>P_0 = </math><math>\frac</math>{{ProductionPerYear} \cdot r}{1-e^{-r}} <math></math>
 +
 
 +
(4b) <math>-P_0 \frac {1}{r} \int^{-\infty}_0  \cdot e^u du</math> = <math>{MaxMaintenance}</math>
 +
(4c) <math>-P_0 \frac {1}{r} (e^{-\infty} - e^0)</math> = <math>{MaxMaintenance}</math>
 +
(4d) <math>-P_0 \frac {1}{r} (0 -1)</math> = <math>{MaxMaintenance}</math>
 +
(4e) <math>\frac {P_0}{r}</math> = <math>{MaxMaintenance}</math>
 +
(4f) <math>P_0</math> = <math>{MaxMaintenance} \cdot r </math>
 +
 
 +
Combining (3e) and (4f) we get:
 +
(6a) <math>{MaxMaintenance} \cdot r = \frac</math>{{ProductionPerYear} \cdot r}{1-e^{-r}}<math>
 +
(6b) </math>\large {1-e^{-r}} = \frac{{ProductionPerYear} \cdot r}{{MaxMaintenance} \cdot r}<math>
 +
(6c) </math>\large -e^{-r} = \frac{{ProductionPerYear}}{{MaxMaintenance}} -1<math>
 +
(6d) </math>\large e^{-r} = 1 - \frac{{ProductionPerYear}}{{MaxMaintenance}} <math>
 +
(6e) </math>\large -r =  ln(1- \frac{ProductionPerYear}{{MaxMaintenance}})<math>
 +
(6f) </math>\large r =  -ln(1- \frac{ProductionPerYear}{{MaxMaintenance}})<math></math>
 +
 
 +
Which results in the following values for <math>r</math> and <math>P_0</math>
 +
(6f) <math>r = -ln(1-10/50) = 0.22314355</math>
 +
(4g) <math>P_0 = 50 * 0.22314355 = 11.1571775657 </math>
 
[[Category:math]]
 
[[Category:math]]

Latest revision as of 19:51, 27 August 2020

At is defined to be developer productivity without legacy obligations (1)

At time the developer productivity is given by the following equation. denotes the rate in which productivity declines over time (see Derivation of developer productivity decline function) (2)

We know that after 1 year a developer has produced 10KLoc: (3a) =

We know that over the full life time a developer can maximally maintain 50KLoc: (4a) =

Using the Substitution rule we can see that: (5a) (5b) (5c) (5d) (5e)

So that: (3b) = (3c) = (3d) = (3e) Failed to parse (syntax error): {\displaystyle \frac} {{ProductionPerYear} \cdot r}{1-e^{-r}}

(4b) = (4c) = (4d) = (4e) = (4f) =

Combining (3e) and (4f) we get: (6a) Failed to parse (syntax error): {\displaystyle {MaxMaintenance} \cdot r = \frac} {{ProductionPerYear} \cdot r}{1-e^{-r}}\large {1-e^{-r}} = \frac{{ProductionPerYear} \cdot r}{{MaxMaintenance} \cdot r}\large -e^{-r} = \fracTemplate:ProductionPerYearTemplate:MaxMaintenance -1\large e^{-r} = 1 - \fracTemplate:ProductionPerYearTemplate:MaxMaintenance \large -r = ln(1- \frac{ProductionPerYear}Template:MaxMaintenance)\large r = -ln(1- \frac{ProductionPerYear}Template:MaxMaintenance)

Which results in the following values for and (6f) (4g)