01 / SOFTWARE ARCHAEOLOGY
What software archaeology is.
Software archaeology is the disciplined investigation of an existing system to recover the understanding it was built on: what it does, how it is structured, what it depends on and which of its behaviours carry decisions the organisation still relies on. It treats the code, data, configuration and operating history as evidence, and it produces documentation that did not exist before.
Systems become difficult for ordinary reasons. The people who designed them move on. Years of urgent changes accumulate beside the original design. Documentation describes the first version, not the fifteenth. Vendors disappear, source is partly lost, and a scheduled job somebody wrote one evening becomes permanent. None of this means the system is bad. It means the knowledge has drifted away from the thing that runs.
02 / SOFTWARE ARCHAEOLOGY
Recover dependencies and boundaries.
The first product of an investigation is an honest map of what the system is. We inventory components, databases, scheduled jobs, interfaces to other systems, shared files, credentials and the infrastructure underneath them, and we record which of these the system cannot run without.
The historical architecture matters as much as the current one. Knowing which parts were designed, which were bolted on and which were retired but never removed explains why the system behaves as it does and shows where a boundary can safely be drawn for a change.
Change the Core ledger and six systems need re-testing: the nightly batch, both channels, the document store, the warehouse and regulatory reporting.
The map an inventory produces. Select a system to see what its change would reach.
03 / SOFTWARE ARCHAEOLOGY
Discover the business logic.
Validation, calculations, limits, approval steps and special cases often exist only in code. Some are policy. Some are the fossil of a problem solved in a particular year. We trace each rule to where it is enforced, work out what it protects and check the interpretation with the people who use the system. The result separates rules that must be preserved from implementation detail that can be let go.
- Calculations and rounding conventions
- Validation and eligibility rules
- Approval paths and exception handling
- Rules that live in data, not code
04 / SOFTWARE ARCHAEOLOGY
Investigate interfaces and data flows.
A task rarely stays inside one program. We follow it from the screen or message where it starts, through application logic and stored data, out to the services, files and reports it touches, recording where information is transformed and where its meaning quietly changes. Interfaces that other teams or organisations depend on are documented as contracts, because they are the first thing a migration breaks.
05 / SOFTWARE ARCHAEOLOGY
Analyse only what you are authorised to analyse.
Investigation is agreed before it starts. We work from the repositories, builds, binaries, documentation and environments you authorise us to examine, on terms that respect licences, contracts and data obligations. Where source is missing, authorised analysis of binaries, configurations and runtime behaviour can recover what the application does. Representative or redacted data is preferred; production access and any change to a system are separate decisions, never a by-product of looking at it.
- Written scope of systems, artefacts and environments
- Legal and licensing review before binary analysis
- Data handling agreed with your security function
- Read-only by default; changes are a separate authorisation
06 / SOFTWARE ARCHAEOLOGY
Document what was never documented.
Everything recovered is written down in a form the organisation can keep and maintain: architecture views, dependency records, traced workflows and a register of business rules, each tied to the evidence it came from. We distinguish clearly between what was observed, what is a well-supported explanation and what remains open, so that nobody later mistakes an assumption for a fact.
- Observed: behaviour demonstrated in code, data or operation
- Explained: a reading supported by evidence and confirmed with users
- Open: a question that still needs an owner and an answer

