My main take away from this is the importance of getting to grips with the codebase first. This may seem completely obvious but right now I'm in a context where the codebase is spread across different dev teams whose code 'meets in the middle' through an API but is never considered in a holistic fashion. In other words, there is not even a coherent codebase to review. The project is overdue and over budget by 100%, of course.