Хотелось бы обсудить типичную проблему, которую я видел много раз при общении исполнителей и заказчиков.
Исполнитель ждет от заказчика готового ТЗ, которое планирует реализовать в точности. От этого ожидания складывается дальнейшая история страданий как заказчика, в ряде случаев точно не знающего, как ему надо, так и исполнителя, закатывающего глаза и говорящего "ну ты, блин, даешь, написал в ТЗ авторизация, а надо было аутентификация! ты совсем дурной?" (пример выдуман).
На мой взгляд, надо принять как норму, что заказчик не может дать что-то конечное, по чему можно приступать к реализации. И это нормально. Например, если я захочу поменять в квартире полы, но не очень разбираюсь в вопросе, я хотел бы, чтобы меня проконсультировал специалист, выслушал мои хотелки, помог подобрать подходящий вариант.
Важно понять проблему
В первую очередь, следует не бросаться выполнять задачу от заказчика так, как он её озвучил, а понять вместе с ним исходную проблему, которую он хочет решить. Да, это далеко не редкость, когда заказчик изначально не разобрался сам в проблеме, которую пытается решить, но уже предлагает конкретную реализацию.
А как еще можно сделать?
Далее неплохо бы вникнуть хорошенько в предметную область и вместе с заказчиком обсудить как предложенное им решение, так и возможные альтернативы. Иной раз можно сделать проще, быстрее, дешевле, если не завязываться на одном только конкретном варианте, а посмотреть по сторонам, подумать.
Это нормально
Нельзя игнорировать и человеческий фактор: заказчику может быть банально неловко и неудобно приходить с просьбой к команде, если он сам еще не смог до конца ее сформулировать. Один из критериев зрелой профессиональной команды — это умение помочь заказчику в выявлении его проблем, требований и решений.
Что можно сделать
Как вариант, я предлагаю перед первой встречей с заказчиком попросить предварительно заполнить (насколько это возможно) и выслать чек-лист со вспомогательными вопросами.
По моему опыту это дает хорошую экономию времени, когда заказчик по мотивам нескольких вопросов может хорошенечко подумать и достать из чертогов разума побольше деталей, а я, как исполнитель, по мотивам его ответов могу хорошо понять стартовые позиции для обсуждения.
Примерный список вопросов
1. Какова цель проекта? Какую проблему она решает? Какое business value (сорри, я билингв) он несет?
2. Это единственное возможное решение данной проблемы? Если нет, то какие еще есть варианты?
3. Есть ли какие-то общие требования, проходящие сквозь весь проект? Например, если это интернет-магазин, то он должен полностью соответствовать законодательству, регулирующему онлайн-торговлю.
4. Какие функциональные требования? Что должен делать раздел (страница, проект)? Например, раздел должен предоставлять информацию о продуктах компании и через форму на странице собирать желающих задать по этому продукту вопросы или приобрести его.
5. Есть ли нефункциональные требования? Как хорошо проект должен это делать? Например, время открытия страницы должно быть не больше 5 секунд.
6. Дополнительные требования. Свободный формат, в котором можно излить душу.
Итог
Помогите заказчику понять и решить его проблему подходящим образом, а не обязательно тем, который он вам принес.
Но самодурством тоже не занимайтесь, все решения должны быть согласованы, не допускайте молчаливого выполнения задачи иным образом под лозунгом "я специалист – мне виднее".