Cause of death

SLOP8374 · Week 8

The taxonomy

  • Maintainer burnout
  • Ecosystem shift
  • Hostile fork
  • Funding loss
  • Mass dependency failure
  • Mission accomplished
  • Rewrite trap

Differential diagnosis

Burnout and ecosystem shift look identical in the commit graph: activity falls, then stops.

The dependency manifest separates them. Burnout leaves the tool kit intact. Ecosystem shift leaves it stranded.

The rewrite trap

A v2 branch is started. It is more interesting than v1.

v1 stops receiving attention because it is about to be replaced. v2 is never finished. Both are now dead.

This kills more projects than any external force.

Case study: CoffeeScript

CoffeeScript won. Its best ideas — arrow functions, destructuring, classes, template strings — went into ES6.

Then it had no reason to exist.

Success is a cause of death, and one that looks exactly like abandonment from the outside.

Misdiagnosis costs

Calling a project dead when it is dormant insults someone who is coming back.

Calling it done when it is abandoned leaves users exposed.

Calling it abandoned when it is finished is just failing to read.

Most deaths are plural

A dependency broke, which made the work unrewarding, while the niche was being absorbed by a platform, during a year the maintainer had no time.

Pick a primary cause. Name the others. Do not pretend it was simple.

Required reading

Coelho, J. and Valente, M.T. (2017) ‘Why modern open source projects fail’, Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE), pp. 186–196.

Avelino, G., Passos, L., Hora, A. and Valente, M.T. (2016) ‘A Novel Approach for Estimating Truck Factors’, IEEE International Conference on Program Comprehension (ICPC).

Before next week

Draft a cause-of-death diagnosis for your dig site.

Support it from at least three earlier weeks — and name the alternative that fits the same evidence.

The Forensic Analysis is due next week.