Всем привет! Сегодня хотелось бы поговорить про такую тему, как оценка времени разработки. Тема достаточно интересная т.к. нет какого-то обобщенного стандарта оценки.

Когда-то это было одной из первых моих задач на работе, и когда мне впервые дали требования и сказали "Оцени сколько нужно времени". Естественно первый мой вопрос был "А как ?". Я тогда и представить не могла, как можно оценить то, что не сделано и непонятно, как будет реализовано...

Какие есть подходы и как аналитику оценить задачу? На этот вопрос постараюсь ответить дальше

Матрица оценок

Я как раз в тот момент работала в компании, которая занимается заказной разработкой и там для оценки применялась определенная матрица.

Сама матрица представляет собой специальный файл, в котором расписаны типовые задачи по уровням сложности и то, сколько такая задача занимает у команды времени.

Например, спроектировать простой CRUD-сервис, без особой логики - 1 человекодень для аналитика, 1 для бэка, 0,5 для фронта и 2 для тестировщика.

Или спроектировать сложный орекструющий микросервис, с нетривиальной логикой - 4 дня для аналитика, 5 дней для разработки и 10 для тестировщика.

Как правило, в эти цифры уже заложены дополнительное время на риски, возможные интеграции и различные непредвиденные ситуации.

Чтобы реализовать такой подход и заранее оценить все типы задач, должна быть сильная команда с достаточно большим наработанным опытом разработки, чтобы:

  • разработать такой шаблон оценки;

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

Субъективная оценка

Субъективная оценка специалиста (будь то аналитик или кто либо другой).

До старта аналитики релиза к команде приходит заказчик, приносит какие-то постановки задач (в зависимости от процесса, перед тем как такую задачу должен оценить системный аналитик и другие члены команды - она уже декомпозирована и оценена бизнес аналитикой и архитектором.

Далее системный аналитик берет эту постановку - декомпозирует ее - оценивает каждую декомпозированную историю, субъективно прикидывая, сколько это времени займет у него.

Тут всё зависит от опыта аналитика, количества решенных аналогичных задач и точности изначальной постановки задачи заказчиком. Далее на основе декомпозиции от аналитика - оценку делает остальная команда.

Груминг

Новый для меня процесс, который происходит на моем текущем месте работы, и смысл которого мне понравился.

Сам груминг проходит еженедельно:

  • Аналитик приносит туда свои завершенные задачи и презентует их команде, т.е. рассказывает их смысл, демонстрирует своё ТЗ и объясняет свое видение решения этой задачи.

  • Вся остальная команда может высказывать свои комментарии (зачастую очень дельные, и это помогает найти какие-то недочеты или даже логические дыры в твоем ТЗ) и делиться своим мнением относительно задачи, предлагать свои варианты решения.

  • Аналитик в процессе груминга может править ТЗ, если это не занимает много времени, и получается такая "экстремальная аналитика" в онлайн-формате.

  • После того, как все вопросы\предложения закончились, начинается оценка задачи командой разработки и тестирования, уже по написанному ТЗ, что заметно увеличивает точность оценки, чем если оценивать задачи по предварительному мини-анализу.

Комментарии (6)


  1. laatoo
    28.11.2022 20:50
    +9

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

    Простите, но вы и сейчас не представляете.

    Для заказчика (это тот, кто деньги платит за работу над его продуктом), фактически, нет разницы 65% вероятность уложиться в прогноз по сроку или 75%: у него есть некий бюджет, и в этот бюджет он хочет уложиться. Денег на правый хвост распределения вероятности он не даст.

    Разработчик не знает (как бы сам ни был уверен) сколько времени займет задача, менеджер не знает (сколько бы ни пытался высчитывать вероятности), никто не знает.

    Игры в оценку сроков - это спектакль для заказчика, и только с этой точки зрения их имеет смысл рассматривать.

    Если для этого спектакля вам требуются матрицы - ок, статистика на исторических данных (прошлый crud писали 4 дня, значит этот будут писать 4дня+-некий запас) - ок, если заверение разработчика (да тут на пару часов работы, тыщу раз так делал!) - ок, если гороскопы/гадание/назватьотбалды - тоже ок. В конечном счете это не имеет никакого отношения к реальному сроку выполнения.


    1. ozzyBLR
      29.11.2022 09:13
      +1

      Напрашивается вопрос: не отказаться ли тогда вообще от оценки сроков? И что говорить заказчику? "Когда будет готов продукт?" - "А хз" - получается вот так, зато честно?

      А вопрос "Ну когда?" один из самых, если не самый частый.


      1. laatoo
        29.11.2022 11:13
        +1

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

        Из этого следует, что разумное поведение – устраивать такой спектакль (с матрицами, табличками, расчетами, или просто харизматичным менеджером), который убедит иметь с вами дело, и минимизировать материальные/репутационные/прочие риски/издержки для себя и заказчика.

        Так и живем.


    1. Throwable
      30.11.2022 10:28

      Работаю над проектом в лучших традициях методологий: матрицы оценок, груминг, стендапы, etc. Все больше убеждаюсь, что все это не более чем формальность. Есть четкий функционал, который надо сделать к концу года, согласованный с клиентом. Есть некий план задач, что нужно сделать для этого. И внутри этого периода всегда есть пространство для маневра: разные неожиданности, сложности, сделать хорошо или быстро... Поэтому дробить каждую из задач дальше не имеет смысла: сразу теряется гибкость к адаптации, затрудняются изменения, а народ теряет из виду цели работы и фокусируется на тикетах, которые со временем имеют свойство растягиваться.


  1. Apoheliy
    28.11.2022 21:00
    +1

    Неплохо бы упомянуть старую классику:

    Также можно упомянуть "новую классику":

    По поводу "груминга": есть ли оценка доп-нагрузки на всех, когда они слушают/оценивают в общем-то чужие задачи?


    1. grossws
      29.11.2022 03:25
      +1

      Главное чтобы в процессе не получался драконий покер против команды разработки xD

      Ну и слово grooming в отоншении людей и их взаимодействия для более-менее знакомых с общечеловеческим употреблением английского обычно имеет сильно негативную коннотацию..