Software Archaeology

SLOP8374 · Week 1

A question

How many npm packages received a human commit in the last two years?

About half

~1.8 million packages on the registry.

~900,000 with no human commit since 2024.

Every one of them is somebody’s abandoned project.

Dead, dormant, or done?

Three kinds of silence:

  • Dead: the maintainer left, the issues pile up, the dependencies rot
  • Dormant: the maintainer will come back (they say)
  • Done: the project does what it set out to do. Silence is success.

This course studies all three — but mostly the first.

Every codebase is a ruin eventually.

Including the one you are writing this afternoon.

Case study: Google Reader

  • Launched 2005. Killed 2013.
  • Cause of death: corporate strategy — Google+ needed the users.
  • Mourned by millions. Archived by nobody.
  • The RSS reader ecosystem never recovered.

What would an archaeologist find in the ruins?

Your dig site

Criteria:

  • Public — you need to read the history
  • Abandoned — no human commit in 18+ months
  • Licensed — you will fork it in week 11
  • Rich enough — at least 100 commits, at least 2 contributors
  • Dead enough — not “on hiatus,” not “looking for maintainers”

What makes a bad dig site

  • A project you wrote yourself — you already know the answers
  • A project in a language you cannot read — the code is evidence
  • A project that was intentionally deleted — nothing left to excavate
  • A toy or tutorial project — no real design decisions to find
  • A project still taking regular human commits — not dead, just quiet

The semester

WeeksPhaseQuestion
1–4SurveyWhat is this thing?
5–8AnalysisWhy did it die?
9–11Ethics & restorationShould it come back?
12ExhibitTell the story

One codebase. Twelve methods. One exhibit.

Required reading

Parnas, D.L. (1994) ‘Software Aging’, Proceedings of the 16th International Conference on Software Engineering (ICSE-16), pp. 279–287.

Eghbal, N. (2020) Working in Public: The Making and Maintenance of Open Source Software. Stripe Press. Chapters 1–2.

Before next week

  1. Find three candidate dig sites
  2. Clone each one
  3. Run git log --oneline | wc -l
  4. Bring all three to the session

Choose one you can live with.