Senhores, até pouco tempo atrás achava que os requisitos deviam estar 100% fechados e isto gerava um problema que eu batizei de “corrida do hamster”.
Imaginem aquele ratinho preso em uma roda correndo, correndo, correndo… e nunca chega a lugar algum!
Bem, este é era o problema:
Visitava o cliente e realizava o levantamento de informações com ele ou com a área usuária do sistema, depois voltava para “casa” e produzia durante alguns dias vários casos de uso e agendava uma reunião para aprovação dos casos de uso.
Na aprovação não conseguia aprovar nada! Pois neste momento o cliente econtrava pontos que, na grande maioria das vezes, ele não havia identificado anteriormente. E então neste momento, depois de uma boa discussão, realizava a compilação dos requisitos e voltava para “casa” para atualizar a documentação e realizar uma posterior aprovação.
Sabe quando isto acabava? Nunca!! Ou então consumia muito, mas muito mais do que havia sido planejado!!
E mesmo quando acabava um dia e eu consiga falar: “Fechei todo o escopo do projeto com o cliente e aprovei com ele a definição de todos os requisitos!”; quando realizada a entraga do software para o cliente eu escutava a cérebre frase: “Não era bem isto que eu queria!”.
Para tentar sanar isto comecei a ler e pesquisar sobre métodos ágeis e percebi que se ao invés de aprovar documentação aprovar o software, quando eu chegar ao ponto de dizer: “Fechei todo o escopo do projeto com o cliente e aprovei com ele a definição de todos os requisitos!”, terei software pronto, entregue ao cliente e em alguns casos até indo para produção, ou seja, conseguirei resolver o problema do cliente de forma rápida e com qualidade.
Não estou dizendo que não devemos documentar, muito pelo contrário!
Para vocês terem uma idéia, atualmente utilizo Scrum e gero os seguintes documentos:
- Documento de arquitetura e de definição funcional (caso de uso), feitos em ferramenta Wiki
- Javadoc das classes
- Os protótipos de telas são feitos em rascunhos junto com o cliente, digitalizados através de fotos e publicados no Wiki;
- Modelos UML do domínio de negócio são feitos em um quadro branco com a participação de todos (até do cliente quando necessário) e depois fotografados e adicionados ao Wiki.
Eu também achava que não conseguia produzir software sem antes produzir uma boa quantidade de documentos: documento de visão, caso de uso, diagrama de fronteira, diagrama de domínio, documento de arquitetura, plano de testes, roteiro de testes, etc, etc, etc.
E percebam que continuo fazendo isto, só que de uma forma mais ágil e com o foco no software (na realidade, em resolver o problema do cliente) não no documento.