All streams
Search
Write a publication
Pull to refresh

Почему мы всегда опаздываем? Ошибки планирования в разработке.

Паттерн планирования, с которым часто встречаюсь: заказчик (или заказчики) приносит задачи. Обычно есть описание, что должно получиться на выходе. В определенный момент команда разработки смотрит на задачи, берет какие-то из них в работу на определенный срок (неделя, месяц, квартал и т.д.), подтверждая сроки доставки. Руководитель, ответственный за доставку задач, передает сроки в бизнес. Условно назовем его руководитель проектов (РП).

Что будет дальше со сроками? Сроки обязательно сдвинутся и кому-то придется за это оправдываться, а может быть и переподписывать документы. Кажется, что дело обычное и так сдаются подавляющее большинство задач. В какой-то момент РП начинает добавлять некоторую дельту ко времени сдачи. Часто это называется – заложить риски. Но сроки сдачи все равно сдвигаются, даже с учетом рисков.

Проблема не в планировании, а в том, как мы планируем. Традиционный подход с фиксацией сроков на старте проекта в условиях высокой неопределенности обречен на провал. Однажды я подумал в чем полезность планирования? Что будет если планирование не проводить? Как это повлияет на разработку? Очевидно, что заказчик чувствует некую уверенность, когда получает сроки реализации задачи. Но это очень условно и польза, на самом деле, не большая. Сроки, как мы уже знаем, все равно сдвинутся и, скорее всего, превратятся в инструмент давления на команду разработки и на самого РП.

Почему же так получается? Те, кто изучают Kanban метод знают, что относиться к процессу разработки нужно как к процессу накопления знаний по данной проблеме (задаче). В процессе реализации и сама команда и заказчик узнают много нового по этой задаче. Каждый в своей зоне ответственности. Получая новые знания вносятся правки как в постановку, так и в техническую реализацию. Получается, если проводить планирование в самом начале, то точность будет основана на почти нулевом знании о задаче. Виной тому очень высокая неопределенность. В самом конце разработки, когда задача уже почти готова к выкатке на прод, все участники уже довольно точно могут сказать, когда задача закроется. Неопределенность низкая и почти отсутствует.

Не менее важная проблема: в длительности процесса планирования. Он может занимать значимое время и быть растянутым по дням и неделям. На что лучше потратить время вместо планирования? Ответ простой: на устранение неопределенности. Угадывать сроки доставки не так полезно, как решить все неопределенности и накапливать знания о проблеме, чтобы срок разработки сократился. Возможно, мы не угадаем сам срок реализации, но можем быть уверенными, что он будет минимальный.

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

Tags:
+2
Comments2

Articles