A maior desvantagem do desenvolvimento ágil que experimentei é que as pessoas não envolvidas no desenvolvimento se concentram no mantra de que uma história de usuário (3 a 10 dias por pessoa ideal) não deve conter mais do que 1-3 frases, como:
Como cliente, posso usar a pesquisa de texto livre para encontrar os produtos que estou procurando.
Dando essa frase, os gerentes de projeto esperam que eu, como desenvolvedor, se comprometa com uma estimativa e desenvolva a história. Eles assumem que o desenvolvimento ágil significa que frases como essa são tudo o que têm para fornecer aos desenvolvedores.
Não vou culpá-los porque a literatura bem conhecida sobre desenvolvimento ágil cria a impressão de que isso realmente funcionaria. Eu li algo como 2 páginas em linguagem natural por história no "Planning XP", mas é isso. Como "software de trabalho" é preferido em vez de "documentação abrangente", esse tópico parece ser geralmente evitado.
A realidade é, é claro, que se o desenvolvedor tiver a chance de fazer isso, uma entrevista com o cliente exibirá uma longa lista de requisitos que o cliente possui sobre a história:
- Precisamos de operadores booleanos como AND e OR.
- Precisamos de pesquisa difusa e todos os termos.
- Precisamos pesquisar por palavras simples e também por frase.
- Não queremos encontrar produtos que atendam aos critérios X, Y e Z.
- Queremos classificar o resultado. Ah, e a propósito, o usuário pode selecionar os critérios de classificação em uma caixa de combinação com as opções a, bec.
Então você percebe que não estou falando de detalhes técnicos, design de software ou mesmo detalhes de implementação. São requisitos puros. Quanto mais conversamos, mais o cliente percebe que realmente há muito a dizer sobre o que deseja.
Mas, muitas vezes, me vejo na situação de que essas informações não são fornecidas ou de maneira muito ruim. Nem é possível que eu faça a entrevista, nem a pessoa que estaria em posição de fazer a entrevista me forneça um resultado disso.
Às vezes, os gerentes chegam a detalhes técnicos como "queremos a pesquisa Lucene", mas não querem pensar se querem encontrar apenas nomes de produtos ou também descrições de produtos. Às vezes eu acho que eles são apenas preguiçosos;)
Para mim, esse é o principal problema nos projetos em que trabalho (aplicativo Web de e-business, 500-2000 pessoas / dia por projeto). Eu já resolvi esse problema com bastante frequência, e os gerentes estão cientes de que a maioria dos desenvolvedores tem um problema com a situação. Mas eles acreditam que os desenvolvedores são "perfeccionistas" demais. Eles parecem irritados porque os desenvolvedores "sempre querem ter tudo especificado".
Devido à falta de números geralmente reconhecidos, é difícil argumentar. Todo mundo sabe quanto tempo deve durar uma iteração. Mas ninguém pode dizer quantos requisitos são necessários para estimar e desenvolver uma história.
Você tem alguma referência?