G8 Softwares / The Code You Inherit

Reading An Unfamiliar System Without Trying To Hold All Of It

You cannot understand a large system at once, and attempting it is the slowest possible start.

Handed a system nobody explains, the natural approach is to start at the beginning and read until it makes sense. This does not work. Large systems have no single beginning, and comprehension does not accumulate evenly: you will read a great deal, retain a fraction, and finish with an impression rather than knowledge. What works better is to abandon completeness immediately and work from a specific question. Pick a real behaviour, ideally one a user would recognise, and follow it end to end. Where does it enter, what does it touch, what does it leave behind? One traced path teaches more than a week of general reading.

Two or three such traces begin to reveal structure, and the structure is what you actually need. You start to see which parts are central and which are peripheral, where the load bearing decisions live, which areas are stable and which are visibly churned. You also learn something no document will tell you: which parts of the system the previous maintainers were afraid of, visible in the unusual density of checks and the caution of the changes made near them. Fear leaves marks, and those marks are a reliable map of where the sharp edges are.

Take notes as you go, and write them for yourself in a fortnight rather than yourself today. The specific and precious thing is confusion: the moment you expected one thing and found another. That reaction is available only while you are new, and it disappears permanently within weeks as the strange becomes ordinary. Recorded, it is the beginning of documentation that a newcomer can use. Unrecorded, it is lost, and you will one day watch the next arrival stumble over the exact thing that puzzled you, with no memory of having been puzzled by it yourself.