Оценка сроков реализации и количества часов всегда была трудной задачей, особенно без наличия подобного тз в большой командной разработке.
Преимущества framework Foton позволяют несколько упростить этот процесс, но все же тут нужно понимание как действовать так, чтобы результат был ожидаемым.
Начнём с того, что если техническое задание не понятное или слишком обобщенное нужно попросить время на анализ, обозначить его с тем, чтобы в дальнейшем добавить к общей стоимости.
Итак начнём с анализа:
1. Нам нужно понять это новый функционал или исправление текушего
2. Если нужен фронтенд запросим дизайн
3. Анализируем функционал с точки зрения пользовательского тестирования, описываем все пути пользовательского опыта
Далее после получения данных анализируем зависимости, допустим наш функционал работает с другими сущностями в которых мы не можем просто так добавить функционал, так как он может повлиять на поведение других объектов.
Также изучаем роли, как они связаны с нашими изменениями и могут ли наши изменения повлиять на их поведение, но все это происходит уже после инфраструктурного Слоя в полном смысле, это могут быть конкретные реализации, рендеринг или роутинг, и здесь нам как раз в оценке поможет архитектура Foton
Далее оцениваем механическую работу: перенос и заполнение данных, гит ветки и коммиты, автотесты и т. Д. И сейчас распишемся все по порядку
1. Смотрим какие запросы данных у нас работают уже этом функционале, если он создан - это может быть внешний или внутренний модуль, виджеты, ajax запрос, внутренний тип данных и т д
2. Смотрим а что нам нужно сделать с каждым из них, рендеринг, доработка логики и тд
3 Смотрим связи и новые сущности, сколько они нам добавят в оценку. Нужны ли новые миграции, новые модули и тд
4. Изучаем, а насколько наши изменения могут повлиять на систему в целом
5., Изучаем сложность написания тестов, эмулируя их, начинаем с юнит, смотрим какие данные могут передаваться и как их проверять, смотрим связи между модуля и системы и пишем для них модульные тестирование, смотрим на роутинг отображения или доступа к новому функционалу и пишем роуты для иниеграционного тестирования.
6. Далее оцениваем объем доп работ - это сео, добавление роутов, миграции, кеширования и тд
7. Риски, оценка рисков очень важная часть. Необходимо прописать путь разработки, она командная или нет, написать roudmap для данной задачи или может целого спринт. Распределим ответственность между разработчиками, также изучи саму схему работы. Это может быть внутренний гит репозитории и все будет выполнять я на бою, такое на Framework Foton возможно и тут есть свои нюансы по времени, чтобы все работало нужно выделить отдельный сервер базы данных, настроить права для директории, закрыть часть команд и тд или же это другой вариант, например с загрузкой мержингом, тестом и последующей выгрузкой на локалке, есть ли на проекте ci/cd и тд
Также к последнему может относится не актуальность тестового стенда, такое к сожалению тоже бывает, отсутствие прав у некоторых разрабов и необходимо закладывать время для их получения и т. Д.
Если говорить в целом, то оценка состоит в основном из этих 7 пунктов и после декомпозиция можно разбить реализацию на 3 варианта с учётом mvp, чтобы с самого маленького до самого большого сохрагялась консистентность, сохрагялась архитектура, стиль написания и тд, обычно достаточно 3 варианта для клиента.