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#
| Weeks | Phase | Question |
|---|---|---|
| 1–4 | Survey | What is this thing? |
| 5–8 | Analysis | Why did it die? |
| 9–11 | Ethics & restoration | Should it come back? |
| 12 | Exhibit | Tell 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#
- Find three candidate dig sites
- Clone each one
- Run
git log --oneline | wc -l - Bring all three to the session
Choose one you can live with.