At $t = 0$ $P_0$ is defined to be developer productivity without legacy obligations
(1) $\large P(0) = P_0$

At time $t$ the developer productivity is given by the following equation. $r$ denotes the rate in which productivity declines over time (see [[Derivation of developer productivity decline function]])
(2) $\large P(t) = P_0 \cdot e^{-r t} dt$

We know that after 1 year a developer has produced 10KLoc:
(3a) $\large \int^1_0 P_0 \cdot e^{-r t} dt$ = ${ProductionPerYear} = 10$

We know that over the full life time a developer can maximally maintain 50KLoc:
(4a) $\large \int^\infty_0 P_0 \cdot e^{-r t} dt$ = ${MaxMaintenance} = 50$

Using the [[Substitution rule]] we can see that:
(5a) $\large u = -rt$
(5b) $\large t = 0 => u = 0$
(5c) $\large t = \infty => u = - r \cdot \infty$
(5d) $\large t = 1 => u = - r$
(5e) $\large du = -rdt => dt =$ $\Large -\frac{1}{r}$$\large du So that: (3b) \large -P_0 \frac {1}{r} \int^{-r}_0 e^u du = {ProductionPerYear} (3c) \large -P_0 \frac {1}{r} (e^{-r} - e^0) = {ProductionPerYear} (3d) \large P_0 \frac {1-e^r}{r} = {ProductionPerYear} (3e) \large P_0 =$$\Large \frac{{ProductionPerYear} \cdot r}{1-e^{-r}}$

(4b) $\large -P_0 \frac {1}{r} \int^{-\infty}_0 \cdot e^u du$ = ${MaxMaintenance}$
(4c) $\large -P_0 \frac {1}{r} (e^{-\infty} - e^0)$ = ${MaxMaintenance}$
(4d) $\large -P_0 \frac {1}{r} (0 -1)$ = ${MaxMaintenance}$
(4e) $\large \frac {P_0}{r}$ = ${MaxMaintenance}$
(4f) $\large P_0$ = ${MaxMaintenance} \cdot r$

Combining (3e) and (4f) we get:
(6a) $\large {MaxMaintenance} \cdot r = \frac{{ProductionPerYear} \cdot r}{1-e^{-r}}$
(6b) $\large {1-e^{-r}} = \frac{{ProductionPerYear} \cdot r}{{MaxMaintenance} \cdot r}$
(6c) $\large -e^{-r} = \frac{{ProductionPerYear}}{{MaxMaintenance}} -1$
(6d) $\large e^{-r} = 1 - \frac{{ProductionPerYear}}{{MaxMaintenance}}$
(6e) $\large -r = ln(1- \frac{ProductionPerYear}{{MaxMaintenance}})$
(6f) $\large r = -ln(1- \frac{ProductionPerYear}{{MaxMaintenance}})$

Which results in the following values for $r$ and $P_0$
(6f) $\large r = -ln(1-10/50) = 0.22314355$
(4g) $\large P_0 = 50 * 0.22314355 = 11.1571775657$
bag
math_public
created
Sun, 11 Dec 2011 22:31:20 GMT
creator
dirkjan
modified
Sun, 11 Dec 2011 22:31:20 GMT
modifier
dirkjan
creator
dirkjan