Desenvolva mais rápido e mais barato
Você quer entregar novas features na velocidade da luz e com o mínimo de custos. Aqui está o primeiro passo para fazer isso acontecer.
Os maiores custos (em tempo e dinheiro) do desenvolvimento de software vem do código legado. Código legado é uma coisa maligna que cria horas de debug quando uma nova feature é feita, ele estraga a vida dos programadores e atrasa as entregas de novas features.
Mas o Código Legado não nasce assim, uma vez ele foi um código muito legal que todo mundo amava. Conforme o tempo foi passando e mais features foram sendo adicionadas a complexidade do sistema decolou e a capacidade de gerenciamento foi por agua a baixo. Agora, toda vez que alguém precisa fazer algo essa pessoa tem que passar por muita coisa para garantir que a nova página de login não quebrou o sistema de pagamento.
No entanto, a maioria dos defeitos acabam custando mais do que custaria para preveni-los. Defeitos são custosos quando ocorrem, tanto o custo direto de consertá-los quanto o custo indireto de relacionamentos danificados, negócios perdidos e tempo de desenvolvimento perdido — Kent Beck
Testes para o resgate!
Eu sei que o teu legado não tem nenhuma cobertura de testes, ele foi provavelmente escrito antes que testes automatizados fossem hype, mas as mudanças são feitas agora e agora nós temos testes. É importante que com cada nova feature a base de código fique um pouco melhor, se não, a vaca vai pro brejo e a sua empresa vai ser superada por uma nova startup (que escreve testes).
Não é difícil implementar testes unitários em linguagens populares como Java e PHP, até C tem o cmocka! Então vai em frente e faça, use JUnit, PHPUnit ou qualquer uma das outras opções e tenha certeza que tuas funções fazem o que elas deveriam estar fazendo. O processo de escrever os casos de teste, vai te deixar mais familiarizado com as regras de negócios que precisam ser seguidas e vai limpar um pouco aquela confusão que existe hoje.
Lembra, teu JavaScript precisa ser testado também.
Depois dos primeiros passos para fazer os testes unitários tu podes usar o Selenium para testar a UI e ter certeza de que tudo funciona como planejado. Lembra que se ocorrer uma falha nos testes de interface o problema tem que aparecer antes nos testes unitários.
Mas não é só isso não…
Essas são apenas duas camadas da pirâmide de testes para ti começar. Com esses dois rodando, tu ja vai ter mais confiança para refatorar e subir para produção. O tempo uma vez gasto na busca por bugs agora vai estar sendo otimizado conforma mais e mais do código é testado. No fim, tu vais ter programadores mais felizes, trabalhando em sprints mais rápidas e entregando features chave bem antes da concorrência.
E tu, já está usando testes unitários no desenvolvimento? Compartilha com a gente nos comentários