Как поставить задачу разработчику на Telegram-бота или автоматизацию и не переплатить: чек-лист ТЗ

Я пишу ботов и небольшие автоматизации на Python и часто вижу одну картину: человек рассылает одну и ту же задачу пяти исполнителям, получает оценки, которые отличаются в несколько раз, и не понимает, кому верить.

Обычно разброс объясняется не жадностью. Когда в задаче много неизвестного, каждый исполнитель закладывает запас на риск: кто-то небольшой, кто-то двойной. Вы платите за неопределённость. Чек-лист ниже помогает её убрать. Ответы можно набросать в заметках телефона, оформлять документ по ГОСТу не нужно.

1. Одна задача и измеримый результат

Не «автоматизировать склад», а «кладовщик пишет боту артикул и за пару секунд получает остаток и место на полке». Хорошая формулировка отвечает на вопрос, как вы поймёте, что работа сделана.

Если задач несколько, расставьте их по важности и попросите оценить только первую. Первая версия, которая решает одну проблему, почти всегда дешевле и полезнее «системы, которая умеет всё».

2. Как это делается сейчас

Опишите текущий процесс вручную: кто, что, где и сколько раз в день. Например: «Каждое утро менеджер копирует 30 строк из выгрузки банка в таблицу и отмечает, кто оплатил». Это сразу показывает разработчику объём данных, частоту и узкие места. Приложите пример файла или скриншот, замазав личные данные.

3. Входы и выходы

Откуда берутся данные и куда должен попасть результат. Здесь важна конкретика:

  • не «из нашей программы», а название и версия: 1С какой конфигурации, какая CRM, какой сервис;
  • есть ли у системы API, и есть ли у вас к нему доступ;
  • в каком виде нужен результат: сообщение, файл, строка в таблице, письмо.

Интеграция с чужой системой часто занимает больше времени, чем сама логика. Если про систему ничего не известно, исполнитель заложит время на её изучение, и это честно.

4. Пользователи и их число

Сотрудники, клиенты или вы сами. Пять сотрудников и тысяча незнакомых людей — это разные проекты: для внешних пользователей нужны защита от спама, понятные тексты, обработка любых ошибок ввода. Если бот внутренний, так и напишите: это заметно удешевляет работу.

5. Ограничения Telegram, которые стоит знать заранее

Если речь о боте, проверьте задачу на совместимость с платформой:

Если задача упирается в эти ограничения, лучше узнать об этом до оплаты, а не после.

6. Что точно НЕ нужно в первой версии

Самый недооценённый пункт. Напишите явно: «без админки», «без оплаты внутри бота», «тексты можно менять через разработчика», «статистика не нужна». Каждая такая строчка убирает часы из оценки. Позже это можно добавить, если первая версия приживётся.

7. Персональные данные

Если бот или скрипт собирает имена, телефоны, адреса, это персональные данные, их обработку регулирует 152-ФЗ. Решите, где хранятся данные и кто к ним имеет доступ. Простое правило: не собирайте то, без чего задача решается.

8. Критерии приёмки

Перечислите 3–5 проверок, которые вы сделаете при сдаче. Например: «пишу артикул из списка — получаю остаток; пишу несуществующий — получаю понятное сообщение; бот отвечает только сотрудникам из списка». Без критериев приёмка превращается в спор о том, что подразумевалось.

9. Что вы получаете на руки

Это защищает от переплаты в будущем, когда понадобится доработка или исполнитель пропадёт:

  • исходный код (в вашем репозитории или архивом);
  • доступы к серверу, оформленному на вас;
  • токен бота. Лучше создать бота самому через @BotFather и передать токен исполнителю, чем потом выяснять, кому он принадлежит;
  • короткая инструкция: как перезапустить, где смотреть ошибки, какие ключи и пароли используются.

10. Поддержка после сдачи

Боту или скрипту нужен сервер, который работает круглосуточно, и кто-то, кто заметит, если всё упало. Спросите заранее: сколько стоит месяц поддержки, что в неё входит, как быстро исполнитель реагирует и сколько стоит час доработки. Иногда дешёвая разработка компенсируется дорогой поддержкой.

Как сравнивать предложения

Когда ответы готовы, отправьте один и тот же текст всем исполнителям и попросите в ответе:

  • оценку по этапам, а не одной суммой;
  • список того, что исполнитель понял как «не входит в работу»;
  • вопросы к вам.

Последний пункт показателен. Исполнитель, который задал пару точных вопросов, обычно лучше понял задачу, чем тот, кто сразу назвал цену. А оплата по этапам с приёмкой каждого этапа по критериям из пункта 8 ограничивает ваш риск суммой одного этапа.

Хорошее ТЗ не гарантирует хороший результат, но защищает от ситуации, когда через месяц обе стороны честно уверены, что договаривались о разном.