Pela minha experiência, eu não gastaria um único minuto desenvolvendo. Nem mesmo um pequeno pedaço de código. Nesta fase, onde o cliente não sabe o que deseja, é realmente importante fazer um bom trabalho de consultoria . É tão importante para eles quanto para você.
Por trás de cada projeto, há uma necessidade (às vezes não é óbvia) relacionada aos negócios do cliente. Portanto, para esclarecer a necessidade , você precisa primeiro aprender o negócio o máximo possível. Então, você poderá levar o cliente a uma solução funcional.
Durante o aprendizado, tenha cuidado na hora de diferenciar necessidades e desejos . Que necessidade do cliente pode ou não ser a mesma que o cliente deseja?
Enquanto a análise, se o cliente não tomar decisões, faça você mesmo. Como consultor, seu trabalho é dar conselhos e liderar o processo.
Como o @Ewan apontou, é mais fácil para os clientes tomar decisões, se houver alguma escolha a fazer. Oferecer várias alternativas (expondo seus prós / contras) facilita a tomada de decisões. A zombaria de protótipos é uma boa maneira de fornecer uma visão geral do que você tem em mente para eles. O cliente terá o primeiro contato (e sentimentos) sobre como as coisas serão. Ao fazer este exercício de "criatividade", você verá rapidamente as luzes e sombras do projeto antes que elas se tornem um problema.
Tente obter o máximo de feedback possível do usuário final . Tantas vezes a pessoa a quem chamamos "cliente", não é quem vai usar o sistema . Em tal situação, você obterá melhor feedback do usuário final real. Eles fornecerão dicas valiosas sobre o que eles precisam. Identificar bem quem pode fornecer as respostas certas para suas perguntas ajudará você a atender às expectativas do cliente.
Depois de coletar um bom conjunto de requisitos, coloque-os no protótipo. Metodologias ágeis como o SCRUM funcionam bem nesse estágio. Fazendo sprints sobre o protótipo.
Os protótipos serão descartados / modificados ao longo dos sprints. Você também pode "orientar" o cliente para o que melhor lhe convier. ;-). À procura de um acordo ganha-ganha.
Tento impedir que os Gerentes iniciem o desenvolvimento antes que qualquer requisito bem definido e mensurável seja assinado. Caso contrário, iniciar com requisitos indefinidos está fadado a falhar mal. Muito dinheiro e tempo serão desperdiçados (sem garantia de recuperá-lo) porque alguém decidiu implementar "o Caos". O caos e a incerteza em que nosso cliente tão querido e confuso vive agora.
É chocante ver empresas cujos funcionários fazem seu trabalho, mas eles não são capazes de explicar (razoavelmente) a você como . Também é chocante ver quantos gerentes de projeto não se importam com esse problema, eles apenas dizem "sim a todos" ou "vamos começar e vamos ver o que acontece".
Finalmente, @Ewan apontou novamente para o ponto mais importante.
Faça com que o cliente assine os que eles desejam e implementam.
Não se esqueça de definir claramente quais requisitos e condições precisam ser atendidos para dizer que o projeto está concluído . As condições de aceitação
Não há necessidade de dizer o porquê.