Если база кода велика, то сфокусируйте свое внимание на тех частях, над которыми в данный момент работаете. В противном случае вы будете чувствовать себя разбитым и, возможно, ваша голова может взорваться. Я думаю, что некоторый обзор высокого уровня полезен (если он доступен), но есть вероятность, что вы будете тратить много времени в отладчике для последующего выполнения программы. Это хорошая идея, чтобы получить обзор приложения и увидеть его использование, чтобы вы могли понять, как / для чего / почему код используется.
Я обычно запускаю какой-то инструмент для усложнения кода, чтобы сказать мне, где находятся проблемные области. Области с высокими оценками, вероятно, очень трудно обновить. Например, я столкнулся с функцией, которая набрала 450 баллов по цикломатической шкале. Конечно же, сотни IF. Очень трудно поддерживать или изменить это. Так что будьте готовы к худшему.
Кроме того, не бойтесь задавать вопросы существующим разработчикам, особенно если они работают в системе. Держите свои внутренние мысли при себе и сосредоточьтесь на решении проблем. Избегайте комментариев, которые могут расстроить других разработчиков. В конце концов, это может быть их ребенок, и никому не нравится, когда ему говорят, что ребенок уродлив.
Делайте небольшие шаги, даже самое маленькое изменение кода может оказать большое влияние.
Я считаю, что полезно создавать потоки программного кода, поэтому, если я делаю изменения, я могу выполнять поиск зависимостей, чтобы увидеть, какие методы / функции вызывают что. Предположим, я меняю метод С.
Если только 1 метод / функция вызывает C, то это довольно безопасное изменение. Если сотни методов / функций вызывают C, то это будет иметь большее влияние.
Надеюсь, ваша кодовая база хорошо спроектирована, написана и поддерживается. Если это так, потребуется некоторое время, чтобы понять это, но в конце концов ситуация изменится.
Если это большой шарик грязи, вы можете никогда не понять (или не захотеть понять) его внутреннюю работу.