Maintenance is not a separate phase of software. It is what happens every time somebody returns to a decision with less context than the person who made it.

The kindest systems leave small clues in ordinary places: file names that say what they contain, components that do one clear job, and pages whose structure matches the way people actually use them.

Clear paths

Documentation helps, but the strongest documentation is often the default path through the code. If the easy thing is also the right thing, a project can stay understandable for much longer.