Понятная задача состоит из 4 частей: что происходит сейчас, что должно получиться, как вы проверите результат и к какому сроку он нужен. Всё остальное — подробности. Если хотя бы одна часть осталась в голове у постановщика, исполнитель додумает её сам, и совпадение с вашим замыслом окажется делом случая.
Разработчик не читает мысли и почти никогда не знает ваш бизнес так, как знаете его вы. Он видит формулировку и превращает её в код буквально. Поэтому «сделайте нормальный поиск» становится поиском по точному совпадению, а «добавьте кнопку» — кнопкой, которая ничего не делает, потому что про действие никто не сказал.
Почему разработчик понял задачу не так#
Чаще всего причина не в квалификации, а в том, что задача пришла в виде готового решения. «Поставьте фильтр по дате в отчёте» — это уже техническая идея, и её выполнят дословно. А что вы на самом деле хотели узнать, сколько заказов пришло за неделю, исполнитель не поймёт и способа проще не предложит.
Вторая причина — отсутствующий контекст. Фраза «выгрузка не работает» означает минимум 3 разные вещи: файл не скачивается, скачивается пустым, скачивается с неверными суммами. Пока не сказано, на каком заказе и что именно вы увидели вместо ожидаемого, первые часы уходят на воспроизведение, а не на починку.
Третья причина — молчаливые ожидания. Постановщик держит в голове, что скидка не применяется к акционным товарам, потому что внутри компании это очевидно каждому. Для человека снаружи очевидного нет: он сделает то, что написано, и правило про акции всплывёт уже на боевых заказах.
Признак проблемы простой. Если после сдачи вы регулярно говорите «я имел в виду другое», дело не в исполнителе. Смысл задачи живёт в разговорах, а не в тексте, и каждый пересказ теряет часть условий. Проверьте текст последней задачи: сколько в нём слов «удобно», «нормально», «как обычно».
Что написать вместо «сделай как на том сайте»#
Описывайте ситуацию, а не реализацию. Формула короткая: сейчас происходит вот это, нужно, чтобы происходило вот то, потому что вот зачем. Пример: менеджер считает скидку по прайсу вручную и периодически ошибается в сумме; нужно, чтобы систему считала сама по правилам прайса; иначе клиент видит одну цену, а в счёте другую.
Добавьте границы. Где живёт задача (какой экран, какой раздел, какая роль сотрудника), кого она касается и чего трогать нельзя. Предложение «формат выгрузки в бухгалтерию менять нельзя, он согласован» экономит неделю переделок: без него структуру файла спокойно поменяют, потому что так удобнее делать.
Отдельно перечислите крайние случаи. Что происходит, если товара нет в наличии, если введено нулевое количество, если оплата пришла дважды. Каждый неописанный случай — место, где поведение системы выберет разработчик, а узнаете вы об этом на реальном клиенте.
Для мелкой правки хватает 5–10 строк текста. Как только задача задевает несколько разделов, деньги или обмен с другими системами, заметки мало: нужен отдельный документ со структурой и согласованием, устроенный так, как описано в материале про техническое задание.
Критерий приёмки: как проверить результат#
Критерий приёмки — фраза, которую можно проверить руками, не споря о трактовках. Не «поиск должен работать быстро», а «подсказки появляются без перезагрузки страницы на каталоге в несколько тысяч позиций». Не «форма удобная», а «заявка уходит при заполненных имени и телефоне и не уходит, если телефон короче нужной длины».
Пишите критерий до начала работ и отдавайте его вместе с задачей. Тогда исполнитель проверит себя сам, а вы не будете принимать работу по ощущениям. Критерий, придуманный после сдачи, всегда выглядит придиркой, и спор о нём обходится дороже, чем сама правка.
Лучший критерий — набор конкретных примеров. Возьмите 2–3 реальных случая из практики и запишите ожидаемый результат: номер заказа, сумма до скидки, сумма после, итог в отчёте. Такие примеры прогоняются за минуты и показывают расхождение раньше, чем вы откроете готовую работу.
Договоритесь, где идёт проверка. Приёмка на тестовой копии и приёмка на боевом сайте — разные вещи, во втором случае ошибку первыми увидят клиенты. И смотрите не только на то, что просили: правка расчёта скидки регулярно ломает печатную форму, о которой в задаче не было ни слова.
Сроки, приоритет и кто отвечает на вопросы#
Срок — часть задачи, а не пожелание. Называйте его вместе с причиной: «нужно к старту акции, она начинается через 3 недели» работает лучше, чем «срочно». Когда срочно всё, приоритета нет вообще: порядок работ выберет исполнитель, и с вашим он совпадёт не всегда.
Разбивайте крупное. Задача, которая не помещается в 3–5 дней работы, плохо оценивается и ещё хуже принимается. Разделите её на части с проверяемым результатом у каждой: сначала расчёт, затем отображение в отчёте, затем выгрузка. Так видно движение и можно остановиться, если направление неверное.
Назначьте одного человека, который отвечает на вопросы по задаче, и согласуйте срок ответа. Простой из-за неотвеченного вопроса — самая обидная потеря: работа встала, время оплачивается, а упирается всё в короткое уточнение, которое некому дать. Правило простое: ответ в тот же рабочий день.
Держите обсуждение там, где его найдут потом: сказанное в звонке исчезает, после разговора вернитесь в задачу и допишите условия. Внешнему подрядчику пишут подробнее, чем своему: он не знает вашей кухни и не спросит о том, о чём не подозревает. Как его выбирать, разобрано в материале про выбор подрядчика.
Вывод: короткий шаблон постановки задачи#
Постановка задачи — не бюрократия, а способ не платить за одну работу дважды. Шаблон помещается в 5 строк: что происходит сейчас, что должно происходить, зачем это нужно бизнесу, как проверим результат, к какому сроку. Шестая строка — имя человека, который отвечает на вопросы по ходу работы.
Не пишите решение. Ваша сторона — смысл и критерий приёмки, сторона разработчика — способ. Если способ вам всё же важен, например нельзя менять формат выгрузки или трогать страницу оплаты, назовите это ограничением прямо в тексте, а не намёком. Ограничение, произнесённое на старте, обходится дешевле спора на приёмке.
Начните с ближайшей задачи: перепишите её по шаблону и отдайте вместе с 2–3 примерами ожидаемого результата. Разница видна уже на первой сдаче — вопросов до старта станет больше, переделок после сдачи заметно меньше. Обмен честный: час на аккуратный текст против нескольких дней на переделку.