Muita gente confunde agilidade com “desenvolver rápido”. Não é nada disso. Agilidade tem a ver com tempo de lançamento ao mercado, e não com tempo de desenvolvimento.
Abrir mão da qualidade para ganhar tempo, definitivamente não faz parte da mentalidade ágil. Tem um princípio ágil que foca na excelência técnica:
“Contínua atenção à excelência técnica e bom design, aumenta a agilidade.”
Esta frase pode parecer paradoxal, afinal, se gasta mais tempo para fazer um software de qualidade do que um software ruim. Então, como a atenção à excelência técnica pode aumentar a agilidade?
A resposta para isso é que a atenção à qualidade é um investimento. Num primeiro momento se gasta mais tempo, mas com um bom retorno futuro. No médio e longo prazo, a velocidade de alterações e incrementos no código vai aumentar, além de que o número de bugs vai diminuir.
Mas não é só pela questão de investimento de tempo que a excelência técnica é importante. A agilidade tem questões intrínsecas que carregam desafios técnicos.
Veja mais este princípio ágil:
“Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças para que o cliente possa tirar vantagens competitivas.”
Para a mudança de requisitos ser bem-vinda, é preciso ter um projeto preparado para isso. Mudar o escopo pode ser muito complexo dependendo da forma que se arquiteta um sistema.
Para permitir mudanças de modo simples é preciso:
- Construir código genérico – Para que trechos de código possam ser reaproveitados.
- Escrever código legível – Para não criar áreas em que só o desenvolvedor inicial consegue entender.
É preciso conhecimento técnico e experiência para se criar código reutilizável e legível.
Há também outro princípio que exige qualidade técnica:
“Entregar software funcionando com frequência, na escala de semanas até meses, com preferência aos períodos mais curtos.”
Para entregar software com frequência, é preciso testar e publicar rapidamente o que se desenvolveu. Para isso, são importantes:
- Testes automatizados – Para garantir que a alteração em uma funcionalidade não quebre outra.
- Publicação automatizada – Para prevenir erros na publicação e facilitar que se publique com frequência.
Então, lembre-se: ser ágil tem a ver com lançar rapidamente produtos ao mercado e aplicar melhorias continuamente. Isso requer excelência técnica e atenção à qualidade.