← all insights

#legacy-migration

Reading a codebase you didn't write

2026-04-03

Before we change a line, we read. A codebase we did not write is a story we were not around to hear, and the fastest way to break it is to assume we already know what it does. So the first week is mostly reading, mapping, and asking simple questions.

How we get oriented

  • Trace one real request end to end, from the entry point to the database.
  • Find where the money, or the customer, actually lives in the data model.
  • Skim the tests, if there are any, to learn what the original authors cared about.

Map before you move

For a legacy migration, we draw the seams: which modules talk to which, and where the risky dependencies hide. That map is what keeps a strangler-fig migration from turning into a big-bang rewrite.

By the end of the first week we can usually tell you what is safe to touch, what is fragile, and what is just ugly. Ugly is fine. Fragile is the part we plan around.