Tenho certeza que todo mundo já experimentou algo assim. Você entra em uma reunião com um cliente que tem um projeto. Eles não têm / poucos requisitos em mente e a vaga compreensão do que desejam / precisam. Neste ponto, parece haver duas opções:
1) Diga aos usuários: "Ok, então eu não posso criar algo para você, se você ainda não pode descrevê-lo. Por que não voltamos a se reunir em algumas semanas quando você sabe o que deseja".
2) Encontre-se com os usuários algumas vezes e ajude-os a descobrir o que desejam, orientando-os com o bom método socrático. "Você precisa rastrear X?", "Que tal Y?", "Você precisa da funcionalidade Z?"
Com a primeira opção, você não fica preso fazendo o trabalho de outra pessoa ou adquirindo poderes psíquicos; no entanto, os usuários podem nunca apresentar uma especificação coerente ou podem levar uma eternidade, à medida que o prazo continua se aproximando. Com a segunda opção, você perde muito tempo se tornando um analista de negócios e precisa colocar um monte de conhecimentos de negócios em sua cabeça que provavelmente nunca mais usará novamente, mas será muito mais provável que saia com uma especificação que faz algum sentido.
Para mim, esse é um dos aspectos mais desafiadores do desenvolvimento e sinto que não estou sozinho nesse sentimento. Na sua experiência, qual dessas opções tende a funcionar melhor?