Why is the code like that? How are people likely to use an API? How does code change over time? How can we work effectively on a codebase that's too big for any single person to understand? How can we steer the direction of a codebase over a long timescale when it's constantly changing every day?