Ссылка на оригинал статьи с объяснением принципа Доказательного Планирования (в оригинале Evidence Based Scheduling - EBS)

Какую проблему удалось решить?

Из опыта работы в "Кровавом Enterprise" плечом к плечу с Менеджером Продукта, перед поступлением очередной задачи в работу, у меня интересовались, сколько на нее уйдет времени (внезапно). Это, можно сказать, напрягало тем, что такая оценка должна затрагивать все возможные факторы "торможения". Соберу в список некоторые из них:

  • Неоднократное выяснение деталей до того момента, как задача станет "прозрачной"

  • Перерывы в работе по разным причинам

Да, слишком абстрактно, и оба пункта можно детализировать на много факторов, но сама проблема свелась к учету их всех неявным образом. Условно, будем считать, что проблема локализована (Вы удивитесь, но детали, действительно не так важны).

Решение

Чтобы получить прогноз для конкретной задачи по срокам, достаточно иметь статистику по аналогичным задачам, каждая из которых должна иметь: 1) дату старта исполнителем; 2) дату прогноза от исполнителя; 3) дату фактического ее завершения (которую нужно потом двигать по мере доработки задачи). Таким образом, процесс планирования сроков фичи перед тем как разработчик возьмет задачу в работу должен основываться на двух вопросах к нему:

  1. Какова сложность фичи по шкале от 1 до 5?

  2. Сколько времени тебе нужно для ее выполнения?

Далее следует вопрос самоконтроля эффективного менеджера - зафиксировать даты старта и фактического завершения этой задачи (это важно!). С момента завершения первой задачи, можно предсказывать будущее, с учетом ошибок разработчика, основываясь на предыдущем опыте работы с ним: Чем больше задач набирается в опыт, тем точнее прогноз.

Да, кстати, важный момент! Прогноз исполнителя не должен основываться на аналитически расчитанном прогнозе программы (рекурсия и в этом случае не принесет пользы, если Вы понимаете, о чем я).

Следствие - всегда результат принятых решений

???? Демо

Хотел собрать обратную связь насчет реализации демо версии.

Пару слов о том, как я использую эту программу в своей работе:

  1. Создаю новую таску, назначенную на исполнителя, который оценивает ее навскидку:

    а) субъективная оценка сложности от 1 до 5 - возможно, эту оценку можно скорректировать по факту выполнения задачи (думаю, по итогам ретроспективы в момент завершения таски - самое время);

    б) субъективные сроки выполнения (первоначальная дата обещания от исполнителя) - ее потом менять нет смысла, т.к. это основа метода;

    в) фиксирую дату старта выполнения - она должна соответствовать факту старта;

  2. Если задача не первая! Получаю прогноз по методике EBS на самый худший вариант развития - это тот самый срок, который следует озвучить Продукт Менеджеру;

  3. Фиксирую фактическую дату завершения задачи - это именно тот параметр, который следует скорректировать в случае, если задача потребовала доработки для более точной статистики и, как следствие, более точной оценки последующих задач.

При наличии статистики, перед постановкой задачи можно прикинуть, насколько "обманет" испытуемый исполнитель:

Основная задача - отобразить наиболее неблагоприятный расклад
Основная задача - отобразить наиболее неблагоприятный расклад

Конструктивная критика приветствуется в комментариях

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


  1. maratkoRuEkb
    21.10.2023 16:56

    Ну в принципе сама идея оценить задачу по шкале сложности, дать сроки и по завершении собрать статистику неплохая идея. Можно же кстати сложность задачи пересмотреть и по этому параметру тоже собирать статистику. Например первоначальная оценка 2, а по завершении задачи разработчик уже оценивает ее как на 3. И по такому разработчику можно понимать что недооценивает сложность и самому ее корректировать.


    1. pravosleva Автор
      21.10.2023 16:56

      Я тоже думал над этим, и пришел к выводу, что, увы, это будет противоречить самой задаче (и, возможно, ломается дата флоу). Попробую развернуть мысль. Данные можно разделить на субъективные (те, что влияют результат) и объективные (сам результат). Сложность - это субъективная характеристика для каждого испытуемого она своя. Если мы видим, что испытуемый долго не справляется - ее можно переключить на следующий левел, и увидим объективно пересчитанный прогноз (который, кстати, можно было увидеть и до того, как испытуемый приступил к задаче). То есть, в рамках текущей реализации, можно, доработав приложение, расписать все возможные сценарии, включая каскадный переход из сложности 1 в 2, потом 3 -> 4 -> 5 (любой вариант возможен, мы все косячим), но, кмк, это лишнее. Именно по этой причине, я стал спрашивать у испытуемых субъективную оценку сложности - интересует именно первоначальная оценка. Смысл - сузить диапазон прогнозов, а не расширить. Добавил цитату из фильма Разрабы, не совсем помню как точно она звучала, но она здесь к месту )

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


      1. pravosleva Автор
        21.10.2023 16:56

        В общем, я вспомнил, что характеристика complexity вводилась именно для разделения задач на "более-менее прозрачные" и "относительно непредсказуемые", и не более того. Соответственно, переход из одних в другие возможен, что принесет пользу статистике задач определенной сложности (значение этой характеристики должен давать автор субъективного прогноза, он же сам исполнитель, а когда он это сделает - не имеет значения). Насчёт того, чтоб "угадывать" это значение - пока вижу как: "Если исполнитель оценил задачу на 1, то, скорее всего, она 3, а если на 2, то это твердая 5" так? Если да, то придется спрашивать сложность при создании задачи, и при завершении...