Eu herdei uma base de código existente para um produto que é repreensivelmente desleixado. O projeto fundamental é lamentavelmente inadequado, o que infelizmente eu posso fazer pouco sem um refator completo (acoplamento ALTO, baixa coesão, duplicação desenfreada de código, nenhuma documentação técnica do projeto, testes de integração em vez de testes de unidade). O produto tem uma história, alta exposição a clientes críticos de "vaca leiteira" com tolerância mínima a riscos, dívida técnica que fará os gregos corarem, base de código e complexidade MUITO grandes e uma abordagem derrotista e cansativa da equipe antes dos erros. mim.
A equipe antiga saltou de navio para outra divisão para que eles tivessem a oportunidade de arruinar outro projeto. É muito raro eu experimentar uma falha técnica de projeto de incompetência em oposição a uma falha de gerenciamento de projeto, mas esse é realmente um desses casos.
No momento, estou sozinho, mas tenho muito tempo, liberdade de decisão e direção futura e a capacidade de formar uma equipe do zero para me ajudar.
Minha pergunta é obter opinião sobre refatoração de baixo impacto em um projeto como esse quando você tiver algum tempo livre durante a fase de coleta de requisitos funcionais. Existem milhares de avisos do compilador, quase todos eles importações não utilizadas, variáveis locais não lidas, ausência de verificação de tipo e transmissões não seguras. A formatação do código é tão ilegível e desleixada que parece que o codificador sofria da doença de Parkinson e não conseguia controlar a quantidade de vezes que a barra de espaço foi pressionada em qualquer linha. Normalmente, outros recursos de banco de dados e arquivos são abertos e nunca são fechados com segurança. Argumentos de método inútil, métodos duplicados que fazem a mesma coisa, etc.
Enquanto aguardo os requisitos para o próximo recurso, tenho limpado coisas de baixo impacto e baixo risco à medida que vou imaginando se estou desperdiçando meu tempo ou fazendo a coisa certa. E se o novo recurso significar extrair código em que passei mais tempo? Vou iniciar uma abordagem ágil e entendo que isso é aceitável e normal para refatorar constantemente durante o desenvolvimento ágil.
Você consegue pensar em algum impacto positivo ou negativo que eu gostaria de adicionar?