Я уверен, что все испытали что-то подобное. Вы идете на встречу с клиентом, у которого есть проект. У них нет / мало требований в уме и смутное понимание того, что они хотят / нуждаются. На данный момент, кажется, есть два варианта:
1) Скажите пользователям: «Хорошо, поэтому я не могу построить что-то для вас, если вы еще не можете даже описать это. Почему бы нам не собраться вместе через несколько недель, когда вы знаете, чего хотите».
2) Встречайтесь с пользователями несколько раз и помогите им понять, чего они хотят, проведя их с помощью хорошего метода Сократа. «Вам нужно отслеживать X?», «Как насчет Y?», «Вам нужна функциональность Z?»
При первом варианте вы не застреваете, выполняя чужую работу или приобретая психические способности, однако пользователи могут никогда не представить вам связную спецификацию, или они могут потребовать вечность, поскольку крайний срок продолжает приближаться. Со вторым вариантом вы тратите кучу времени на то, чтобы стать бизнес-аналитиком, и вам приходится вкладывать в свою голову кучу бизнес-знаний, которые вы, вероятно, никогда больше не будете использовать, но у вас будет гораздо больше шансов получить спецификацию, которая имеет смысл.
Для меня это один из самых сложных аспектов развития, и я чувствую, что я не одинок в этом чувстве. По вашему опыту, какой из этих вариантов работает лучше?