How do you keep a large codebase maintainable?

Technical