Найти в Дзене

Как прогнозировать время выполнения задач? Методики прогноза


Сегодня хочу поделиться конспектом доклада Паши Ахметчанова.
Строго рекомендую к ознакомлению

Проблемы с предиктивной оценкой
Предиктивная оценка, основанная на story points, человеко-часах или других абстрактных величинах, неэффективна в комплексных средах (по Cynefin).

Исследования показывают отсутствие корреляции между предиктивной оценкой и реальным временем решения задач.

Нормальное распределение, используемое в предиктивных моделях, не соответствует реальному логарифмическому распределению времени выполнения задач.

Природа времени решения задач
Время выполнения задачи (lead time) - это период между моментом принятия задачи в работу и моментом ее завершения.
Анализ lead time 300 команд показал, что распределение времени выполнения задач логарифмическое, а не нормальное.
На lead time влияют множество факторов:
- Сложность задачи
- Настроение команды
- Праздники
- Внешние зависимости
- Непредвиденные события

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

Решение: Изменить формулировку вопроса с "Когда вы сделаете эти 20 задач?" на "Успеете ли вы сделать эту задачу к 20 августа?".

Перебирать переменные и искать ответ "Да" или "Нет" (обратная задача).
Такой подход изменяет мышление и фокусируется на достижимых целях.
Пример: "Когда вы сделаете это 20 задач? Как вы начинаете думать? У нас инвариантов мышления очень много, и наши мысли расходятся конусом в разные стороны, отвечая на этот вопрос, потому что мы не знаем за что хвататься. Как ответить на этот вопрос? А если мы задаем вопрос: успеете к двадцатому августа сделать эту задачу? Что мы? Мы наоборот, от конуса наших возможностей, возможностей, исследуем этот вопрос и пытаемся ответить на простой вопрос: да, нет."

Методика прогнозирования времени выполнения

Этапы:
- Синтез: Разделить задачи на типы (непонятные, сложные, простые).
- Анализ: Упростить сложные задачи, задавая уточняющие вопросы.
- Отбор: Брать в работу только понятные и простые задачи.
- Стабилизация: Создать стабильную систему разработки с ограничением WIP (work in progress).
- Анализ статистики: Определить вероятность выполнения задачи за определенный срок на основе анализа lead time.

Инструменты:
Контрольная карта: отслеживать системные изменения и стабильность процесса разработки.
Процентили: выбрать приемлемый уровень риска для прогнозирования сроков.

Scrum и комплексный домен
Scrum хорошо подходит для комплексного домена, так как:
- Фокусируется на одной цели на спринт.
- Спринт - это константа, которая задает обратную задачу.
- Story points в Scrum лишние, так как важен результат, а не объем.

Заключение
- Оценка времени выполнения - сложная задача, требующая комплексного подхода.
- Предиктивная оценка неэффективна в комплексных средах.
- Необходимо создать стабильную систему разработки и использовать анализ статистики для прогнозирования сроков.
- Важно правильно формулировать вопросы и фокусироваться на достижимых целях.

Рекомендации:
- Изучить Kanban метод и Flow efficiency.
- Экспериментировать с ограничением WIP и анализом влияния на lead time.

#ПоПолочкам
2 минуты