No início do mês de fevereiro deste ano nosso projeto completou 2 anos
desde sua primeira iteração. O esforço e a dedicação da equipe foram
fundamentais durante todo esse tempo. Certamente, a maior de todas as
nossas recompensas foi o aprendizado. Tenho certeza que todos que estão
ou estiveram atuando no projeto aprenderam muito tanto tecnicamente,
quanto profissionalmente e, hoje, são pessoas muito mais bem preparadas
para desempenhar funções de alto nível em projetos de software.
Nosso produto também é outra conquista. Nesse segundo ano, lançamos sua
versão 2.0 e evoluímos consideravelmente em aspectos que, na maioria
das vezes, são colocados em segundo plano em uma boa parte dos
softwares comerciais concorrentes, como segurança, arquitetura, design,
release-management e controle de ambiente. No campo de negócios também
avançamos consideravelmente ao incorporar "Workflow Automation" no
produto, o que abre portas na criação de um diferencial de mercado
importantíssimo.
Alguns números que vão ficar registrados no nosso 2º aniversário:
- 12 profissionais;
- 671.397 linhas de código;
- 3.391 arquivos de código-fonte;
- 622 Páginas de Interface;
- 261 Tabelas;
- 1125 Testes de Unidade;
- 3947 Builds de Integração Contínua;
- 100% das funcionalidades rodando em ambiente web;
Algumas lições que aprendemos nesse tempo:
- "Customer On-Site" é o alicerce de um projeto ágil. Não subestime
essa prática. Se não há cliente, coloque alguém no lugar dele, que haja
como ele.
- Pair-programming é:
- disparado a prática que mais afeta positivamente a qualidade do que está sendo produzido.
- A prática mais difícil de ser estimulada por um gerente.
- A que leva à maior frustração para um coach que não consegue utilizá-la em sua plenitude no dia-a-dia de um projeto.
- TDD e Refactoring não são técnicas naturais para desenvolvedores
acostumados com RAD. Portanto, aprenda com Chapeuzinho Vermelho:
- RAD = Caminho curto, mas sombrio e com um lobo à solta;
- TDD + OOP + Refactoring = Caminho mais longo, porém florido, seguro e com a certeza que o lobo não vai aparecer.
- Refactoring não combina muito bem com programação procedural. Se o
desenvolvedor não entende OOP, não vai passar do Extract Method. OOP
vem primeiro, Refactoring depois.
- programador != desenvolvedor. Se você é um programador, torne-se um
desenvolvedor. Se você é um gerente, contrate desenvolvedores. Se eles
não aparecerem, contrate um programador com potencial e torne-o um
desenvolvedor.
- Automatize tudo que for possível. O que não for possível, faça de outra forma, até que seja possível automatizar.
- Não dá pra abrir mão de um bom processo de Integração Contínua.
- Prepare-se para os bugs que aparecerão depois de suas releases. Não
se preocupe, eles vão aparecer. O que importa é o quão ágil sua equipe
vai ser para resolvê-los.
- Design, Design, Design...