Se uma base de código for grande, concentre sua atenção nas partes que estão trabalhando atualmente. Caso contrário, você se sentirá sobrecarregado e, possivelmente, sua cabeça poderá explodir. Eu acho que alguma visão geral de alto nível é útil (se estiver disponível), mas é provável que você gaste muito tempo no depurador para seguir o fluxo do programa. É uma boa idéia obter uma visão geral do aplicativo e vê-lo sendo usado, para que você possa entender como / para quê / por que o código está sendo usado.
Normalmente, eu executo algum tipo de ferramenta de complexidade de código no código para me dizer onde estão as áreas problemáticas. Áreas com alta pontuação provavelmente são muito difíceis de atualizar. Por exemplo, eu me deparei com uma função que tinha 450 pontos na escala ciclomática. Com certeza, centenas de FIs. Muito difícil de manter ou mudar isso. Então esteja preparado para o pior.
Além disso, não tenha medo de fazer perguntas aos desenvolvedores existentes, principalmente se eles trabalharem no sistema. Mantenha seus pensamentos internos para si mesmo e concentre-se em resolver os problemas. Evite comentários que possam deixar os outros desenvolvedores chateados. Afinal, pode ser seu bebê e ninguém gosta de saber que seu bebê é feio.
Dê pequenos passos, até a menor alteração de código pode ter um grande impacto.
Eu acho que é útil criar fluxos de código de programa, portanto, se estou fazendo alterações, posso fazer pesquisas de dependência para ver quais métodos / funções chamam o que. Suponha que eu esteja mudando o método C.
Se apenas 1 método / função chama C, é uma mudança bastante segura. Se centenas de métodos / funções chamarem C, isso terá maior impacto.
Esperamos que sua base de código esteja bem arquitetada, escrita e mantida. Nesse caso, levará algum tempo para entendê-lo, mas eventualmente a maré mudará.
Se for uma grande bola de barro, você nunca poderá entender (ou querer entender) seu funcionamento interno.