Technical leverage - the concept
Technical leverage (\(\lambda\)) is the ratio between other's code (direct dependencies \(\ell_{dir}\), transitive
dependencies \(\ell_{trans}\), possibly the baseline of programming language libraries \(\ell_{std}\)) and own code \(\ell_{own}\):
$$\lambda=\frac{Other's}{Own}=\frac{\ell_{dir} + \ell_{trans} + \ell_{std}}{\ell_{own}}$$
Financial leverage vs Technical leverage
Financial leverage | Technical leverage |
---|---|
Financial leverage is used to undertake some investment or project with the help of borrowed money (debt) | Software developers reuse already existing functionality from dependencies to focus only on new features in their projects |
Financial leverage decreases the corporate income tax liability and increases its after-tax operating earning | Using dependencies reduce the time (and thus, cost) to develop new projects and sometimes increase project performance (e.g., numpy or pandas in Python) |
The debt implies an interest rate and must be eventually paid or refinanced | Dependencies have to be monitored and updated (the concept similar to refinancing one's own monetary debt) unless one introduces security vulnerabilities |
Financial leverage multiplies losses as well, which might lead to a crisis | If the amount of work required for the dependent project to update its dependencies become too high, the developers might decide to stop updating dependencies and experience serious technical difficulties |