Definition
A progressive loss of software reliability, maintainability, or functional correctness over time caused by environmental change, dependency drift, accumulating undocumented patches, or lack of active maintenance, which undermines systems used for access, preservation, or management of resources.

Principle

Principle
Software that is not proactively maintained or whose dependencies and runtime environment evolve will incrementally diverge from its original operational assumptions; without intervention this increases failure probability and technical debt.

Demonstration

Demonstration
Illustrative Scenario (Hypothetical): Situation — A digital preservation workflow depends on a command‑line tool whose build environment is no longer supported. Recognition — Automated tests begin failing intermittently after OS upgrades. Action — Engineers rebuild the tool in a containerized, pinned environment, add automated CI tests, and document maintenance procedures. Consequence — Functionality is restored and the system's resilience to future platform changes improves.

Misapplication

Misapplication
Describing a single, isolated bug or a security breach as 'software rot'. The semantic error is collapsing chronic, maintenance‑related entropy with acute defects; rot is characterized by gradual degradation of maintainability and compatibility rather than one‑off faults.

Consequence

Consequence
Software rot increases operational risk, raises maintenance costs, leads to service outages, impedes preservation and access activities, and can require costly reengineering or migration of data and workflows.

Reversal

Reversal
Well‑architected modular systems, active dependency management, automated testing, and continuous maintenance can arrest or reverse rot; alternatively, freezing a known good environment (e.g., through virtualization or containerization with archived runtimes) can preserve functionality without continuous upstream maintenance.

Boundary

Boundary
Clearly within — A production ingest tool that fails after library OS packages are upgraded and no maintainer exists. Boundary case — Legacy software that is still actively maintained by a small team; degree of rot depends on maintenance velocity. Clearly outside — A freshly written application exhibiting an isolated defect unrelated to environmental or dependency drift.

Semantic Tension

Semantic Tension
Stability and long‑term reproducibility ↔ Need to adapt to evolving platforms, standards and security requirements.

Synthesis

Synthesis
Combatting software rot requires processes (dependency pinning, CI, documentation), architectural choices (modularity, isolation), and governance (maintenance responsibilities); preservation strategies must treat software and its execution environment as preservable objects.