Для оценки, как миниум, необходимо понимать:
- сколько стоит час работы
- сколько примерно часов потребуется на реализацию функционала
И если по первому пункту достаточно принять что-то вроде "1 час == 1000 рублей", то со вторым чуть сложнее.
Как оцениваем часы работы:
- Фиксируем хотелки заказчика на бумаге (что лучше всего) или как-то еще. Главное в этом шаге - чтобы и вы и ваш заказчик получили полное исчерпывающее понимание того, что должно стать результатом вашей работы. Разумеется, заказчик почти никогда не напишет вам ТЗ. Но и вам его тут подробно описывать не надо. Зафиксируйте основные функциональные требования, например:
- перечень сайтов для парсинга;
- что конкретно парсим в каждом из сайтов;
- перечень команд для чат-бота: исчерпывающий, с описанием, что именно по каждой команде должен бот делать;
- порядок работы чат-бота (парсинг по команде или вы пишите сервис, который по расписанию парсит, а по команде только читает из БД и плюется этим в телегу);
На этом же этапе надо выяснить, кто будет деплоить приложение. Если вы, то куда и как.
- Утверждаем требования у заказчика (через подписание договора или иным образом). Важно, чтобы его "одобрямс" у вас где-то остался. Вообще, этот шаг недооценивать нельзя, ибо на нем обычно заказчик и понимает по-настоящему, что именно он хочет получить.
- Когда у нас есть утвержденный перечень хотелок, начинаем их декомпозировать: разбиваем на блоки задач, а блоки - на отдельные задачи. Не должно быть задач вида "Написать бота", "Спарсить сайт". Бьем на задачи с тем прицелом, чтобы на реализацию каждой из задач не требовалось тратить менее 1 часа и более 4 часов. Это очень важно, ибо именно тогда вы (нередко с ужасом (заказчика, разумеется)) сможете понять, сколько именно времени вам надо будет затратить. Не забывайте учесть в оценке написание тестов. И ручное тестирование, если его будете проводить вы. Вообще, вопрос декомпозиции - это отдельный очень большой и очень серьезный вопрос, не будем на нем сейчас останавливаться.
- Оцениваем риски. Что это такое? Да вообще все: от внезапных тупняков и борьбы с ветряными мельницами, без коей разработки не бывает, до банального сопротивления сайтами парсингу. Каждый на риски закладывает по-разному, я рекомендую начать с 25%. Т.е. если вы изначально оценили конкретную задачу на 4 часа, то пишете 5. Не нужно занижать оценку, это будет работать против вас.
- Если деплой приложения на вас, то его так же следует оценить. Часто про это забывают.
- Вспоминаем, сколько часов вы затратили на оценку и вписываем это либо отдельным пунктом, либо размазываем по задачам (оценка не должна быть за ваш счет).
- Суммируем эстимейты со всех задач и показываем заказчику. Лично я никогда не считаю зазорным показать заказчику всю выкладку по результатам декомпозиции с оценками по каждой из задач.