How do you manage your codebase once it gets large?
kvs: I maintain a codebase that is about 300KLOC C++ and about 900KLOC Java. Abstractions become important at this scale.We follow a simple MVC principle, C++ side is model, JNI-glue is control, and Java is view. Then, individual pieces are broken into functional modules and there is documentation on slides (flowcharts) on how these functional components interact.You should be able to let go and trust fellow developers. I don't know all of the code; There are four others who have their own pieces of functional modules that they are responsible for. I trust their judgement/decisions on their modules just like they trust mine-- we still question which is important.Rest of it sort of fall into place as we progress. Hope this helps.