Temos um site grande (mais de 1200 horas) que possui muita dívida técnica. Isso é causado principalmente pelos seguintes motivos (comuns).
- Vários programadores que entram e saem durante o desenvolvimento.
- Mudança de especificações durante o desenvolvimento.
- Inúmeras funcionalidades adicionadas (em pouco tempo).
O cliente deseja muitas novas funcionalidades, e isso basicamente se resume a trabalhar nesse projeto semanalmente por mais de 10 horas.
Devido à dívida técnica, passamos MUITO horas corrigindo ou investigando problemas, que geralmente encontram sua origem em um dos seguintes:
- Um inseto vergonhoso e bobo que faz as pessoas chorarem
- Um novo recurso resulta no exposto acima, porque não tínhamos previsto todos os lugares em que o novo recurso teria influência.
- Alguns outros problemas que enfrentamos (migração de servidor fe, atualizações)
Temos problemas diariamente e tentamos seguir as coisas para interromper isso:
- Criação de documentação técnica referente à importação, pagamento e funcionamento geral do site.
- Faça uma reunião no início da semana - discutindo as questões ou melhorias atuais e como elas devem ser abordadas.
- Tenha um plano de teste. Programador A teste B, B testa C e C testa A. Em seguida, nosso gerente de projeto fará alguns testes. Em relação ao impacto do recurso, o lançamos em um ambiente de preparação e deixamos o cliente verificar por si próprio.
O problema é que os problemas continuam acontecendo ... e, de alguma forma, não conseguimos entender. Novos recursos ainda causam erros, e os antigos continuam dizendo olá. De alguma forma - talvez devido ao tamanho do projeto - não conseguimos entender esse projeto.
Suponho que existem muitos programadores trabalhando em projetos maiores do que isso. É por isso que venho à minha pergunta:
O que podemos fazer ou o que você faz para evitar esses problemas em grandes projetos?
Edição secundária, informações adicionais:
- Usamos controle de versão (SVN).
- Temos processo de desenvolvimento DTAP.