Week 2023-W26 in reading

Longitudinal Evaluation of Open-Source Software Maintainability

Source: arXiv:2003.00447.


Maintainability is the “degree of effectiveness and efficiency with which a product or system can be modified to improve it, correct it or adapt it to changes in environment, and in requirements”.
Maintenance hotspots, (…) parts of the source code that are most difficult to maintain.


You cannot control what you cannot measure.
— DeMarco, T. (1982). Controlling Software Projects; Management, Measurement and Estimation.


  1. Maintainability Index — a value calculated based on Halstead volume, cyclomatic complexity, and number of source code statements (or lines of code).
  2. Technical Debt Ratio — amount of time required to fix all issues divided by the estimated time to create the software system. Calculated by SonarQube.
  3. ARiSA Model for Maintainability — developed according to ISO 9126 standard. It takes into account complexity, structure and design metrics to calculate a value assessing maintainability.

The study compared models mentioned above by applying them to 3 FOSS applications (FreeMind, jEdit and TuxGuitar).

Further reading about the Maintainability Index:

My take-away is that while these methods can be useful, they probably won't be for Scala code-bases since branching is often hidden behind higher-order functions. Also, Scala is such an advanced language, that sometimes its own rich feature set adds to the complexity and decreases maintainability.

Pluralistic: Tiktok's enshittification (21 Jan 2023)

Source: Pluralistic: Tiktok's enshittification (21 Jan 2023) (a long read).

In this essay, Cory Doctorow describes a life-cycle of an internet platform (not necessarily social media). A platform:

  1. provides value to its users;
  2. abuses users to benefit business customers;
  3. abuses business customers to benefit itself.

But along the way, people start depending on the platform so much that they can't leave it even when it becomes barely usable, like when users don't see what they'd subscribed for on Twitter or Facebook, but they see a lot of rubbish they didn't ask for.

Right now we see some platforms trying out the last step:

Decentralised alternative to corporate social-media called Fediverse has already noticed a huge influx of new users over the recent months and I suspect it will continue.