Quais são algumas das práticas recomendadas para refatoração e renomeação em ambientes de equipe? Eu trago isso com alguns cenários em mente:
Se uma biblioteca comumente referenciada for refatorada para introduzir uma alteração de quebra em qualquer biblioteca ou projeto que faça referência a ela. Por exemplo, alterar arbitrariamente o nome de um método.
Se os projetos forem renomeados e as soluções devem ser reconstruídas com referências atualizadas a eles.
Se a estrutura do projeto for alterada para ser "mais organizada", introduzindo pastas e movendo projetos ou soluções existentes para novos locais.
Algumas reflexões / perguntas adicionais:
Mudanças como essa são importantes ou a dor resultante é uma indicação de que a estrutura deu errado?
Quem deve assumir a responsabilidade de corrigir os erros relacionados a uma alteração de quebra? Se um desenvolvedor fizer uma alteração inédita, ele deve ser responsável por entrar nos projetos afetados e atualizá-los ou deve alertar outros desenvolvedores e solicitar que eles mudem as coisas?
Isso pode ser feito de forma programada ou deve ser feito com a maior frequência possível? Se uma refatoração for adiada por muito tempo, é cada vez mais difícil reconciliar, mas ao mesmo tempo em um dia, passando incrementos de 1 hora corrigindo uma construção devido a alterações que ocorrem em outros lugares.
Trata-se de um processo formal de comunicação ou pode ser orgânico?