Software engineers tend to judge older code without understanding its context. Code is only the visible part of the story, but not the context in which decisions were made. Deadlines, team size, available tools, business pressure, and technical limitations rarely survive in repository.
