Embora a pergunta em si possa parecer boba, a resposta é muito importante para mim, pois sinto que esse problema está afetando negativamente meu desempenho no trabalho.
Um pouco do histórico aqui: sou um desenvolvedor de software sênior experiente em um departamento de software de tamanho médio de uma empresa que não é de software. Embora esteja acima da média no lado técnico das coisas, sou muito mais pobre em comunicar e explicar as coisas. Mesmo ao explicar algo para outros desenvolvedores.
As maiores dificuldades acontecem quando explico como um pequeno pedaço de código funciona.
O engraçado é que explicar e fornecer exemplos de como algo funciona em um nível muito mais alto, por exemplo, interações entre módulos e subsistemas separados, é muito mais fácil para mim.
Para deixar mais claro, o que chamo de "habilidade de explicação do código fonte" é um
a) capacidade de explicar claramente o fluxo de execução do código - por exemplo, "essa coisa chama essa coisa, que retorna esse objeto, que mais tarde chama o método A, passando o objeto B para ..."
a) capacidade de explicar claramente os problemas com um design atual ou, o que é mais importante, implicações da alteração do código fonte como em "se, por razões de desempenho, começarmos a armazenar em cache o objeto como um campo da classe, teríamos para fazer modificações em dez locais diferentes para garantir que o cache esteja sempre no estado atualizado "etc
Tentei analisar por que sou péssimo em explicar as coisas e não encontrei nenhuma explicação, exceto, talvez, que explique as coisas de uma maneira geral, que alguns podem achar muito rígida. Além disso, quando explico as coisas, talvez eu me concentre demais no que digo e na falta das perguntas, no que as pessoas perguntam, mas novamente para mim parece que essas perguntas geralmente são irrelevantes e simplesmente arrastam a conversa para longe.
O que você poderia recomendar (exceto as óbvias "práticas que a tornam perfeita", que eu realmente não compro, pois acho que provavelmente praticaria mais dos mesmos erros repetidamente) para que eu pudesse, para que eu pudesse melhorar a fonte código explicando habilidades.