Estou preparando um livro de memórias sobre "Por que (alguns) projetos de TI se tornam muito complexos e como evitá-lo?".
Se você já encontrou projetos com códigos complexos ou era difícil de manter, como conseguiu passar por isso?
Se você precisar escolher entre vários aplicativos para usar em seu projeto, qual seria sua principal prioridade em suas funcionalidades e por quê?
Respostas:
Documento, Documento, Documento!
Eu trabalho com um código MVC bastante complexo e só agora estou realmente entendendo como ele funciona, em vez de aceitá-lo com fé. Sempre que faço uma alteração difícil de entender, coloco um comentário no código dessa seção para ajudar a esclarecer o que está acontecendo. Pode não ter me ajudado, pois não estava lá, mas ajudará a próxima pessoa por perto. Também gosto de pedir a outros programadores à minha volta que analisem minhas alterações para ver se estão claras.
Minha empresa possui um wiki interno que usamos para documentar muitas das meta tarefas que realizamos, como problemas no servidor virtual, consultas comuns etc. Sempre que me deparo com algo que não havia feito antes, mas que tenho que fazer com frequência, verifiquei para ver se há um wiki nele. Se não houver, eu farei um. Mais pessoas se envolveram nele recentemente, então espero que cresça mais rápido. Eu acho que realmente ajuda na comunicação das tarefas mais mundanas que temos.
fonte
Eu não acho que você possa evitar completamente a complexidade ao longo do tempo, mas existem maneiras de atenuá-la:
Tudo isso depende um pouco do que o projeto realmente envolve. Às vezes, por exemplo, será benéfico aceitar a complexidade em troca do desempenho. Nem todo código complexo é necessariamente uma coisa ruim. Em geral, porém, acho que seguir essas diretrizes deve ajudar.
fonte
dívida técnica
refatorar para eliminar
mudanças nos negócios
adaptar e expurgar
trocas de ferramentas
novas ferramentas, mesma arquitetura antiga = incompatibilidade de impedância
fonte
Além disso, resista à tentação de adicionar hacks rápidos, porque o código já é complexo / ruim / hacky. Na minha experiência, você acabará com mais complexidade exponencial.
fonte