Бизнес-роман про преподавателя в бизнес-школе (MBA), который помогал технологической компании запустить проект в срок. Книга о разработанной для этого системе управления проектами.
Приводятся примеры разных компаний: производство, программирование, строительство, маркетинг. Работа с подрядчиками и поставщиками. Все студенты пришли решать проблемы своих компаний, все так или иначе работают с проектами.
Компания как цепь
Компанию можно представить в виде цепи. Отделы - звенья цепи. Стоимость содержания отделов - вес звена. Любое локальное улучшение уменьшает вес всей цепи. Это мир затрат. Почти все компании живут в мире затрат.
Но есть также мир прохода, который требует противоположного подхода. В мире прохода важны связи между звеньями. В этой аналогии проход - это прочность цепи. Если увеличивать прочность любого звена, кроме слабого, это ни на сколько не увеличит прочность цепи.
Со временем требования к срокам и качеству растут, поэтому компании не могут работать как раньше, нужно становиться эффективнее.
Слабое звено - это ограничение системы.
Ограничение может быть не только физическим (как производительность), но им может быть ошибочная политика по отношению к звену.
Физическое ограничение можно решить 2 способами:
- Добавить мощности (денег, людей и т.д.)
- Оптимизировать существующие мощности
Как понять, что ограничение найдено правильно? Когда проблему можно представить как конфликт между двумя необходимыми условиями.
Конфликт миров
Мир затрат и Мир прохода (проекта к окончанию) противостоят друг другу. Менеджеры должны контролировать затраты и обеспечить проход.
Когда по разным оценкам получаются разные цифры, в бизнесе часто ищут компромисс, среднее между ними. Но в мире науки это никому не приходит в голову. Вместо этого они ищут ошибку в изначальных условиях.
То есть, когда мы видим конфликт, это значит, что у одной из сторон изначально неверные действия. Их и надо исправить.
Согласно теории ограничений не бывает ситуаций “проигрыш-выигрыш”. Это значит, что был компромисс, усреднение показателей двух сторон. Когда кажется, что “проигрыш-выигрыш” существует, это значит, что мы смотрим на проблему слишком узко.
С точки зрения затрат нужно повсеместно улучшить локальные результаты. Почти все системы работы компаний основаны на этой предпосылке.
С точки зрения прохода достижение хороших результатов невозможно через улучшение локальных результатов.
Рассматривается купленный сталелитейный завод. Он убыточный. Склады завалены ржавеющими листами.
Главный показатель эффективности - тонно-часы.
Так как завод управлялся с точки зрения затрат, все цеха старались максимизировать главный показатель.
Почему главный показатель работал во вред
- Это привело к переизбытку на складах
- Каждый цех максимизировал показатель, не глядя на другие цеха
- Приоритет получали более быстрые изделия, которые давали больший показатель
- Наладка станков откладывалась, так как создавала простой и уменьшение тонно-часов
- Партии группировались так, чтобы производить как можно больше, независимо от заказа
- Большинство людей ведут себя в соответствии с тем, как измеряется их деятельность
Так как большинство конкурентов работают по тем же тонно-часам, устранение этой проблемы дало преимущество перед всеми ними.
Нахождение “бутылочных горлышек” и расширение их одно за другим позволило заводу выйти из убытка на прибыль.
Последовательность работы по теории ограничений системы (ТОС)
- Найти ограничение
- Максимально использовать ограничение
- Подчинить остальные звенья улучшению работы ограничения
- Расширить/развить ограничение
- Вернуться к первому шагу
Этот процесс поощряет сфокусированность.
Неопределённость в проектах
Проекты часто идут не по плану. Основные проблемы:
- Превышение по срокам
- Превышение по бюджету
- Урезание содержания
“В программировании проект всегда вылетает из сроков, но никогда из оправданий”.
У проекта есть период окупаемости. Он зависит от качества реализации.
Внешние причины проблем:
- Плохие погодные условия
- Трудности, возникшие у поставщиков
- Длительные переговоры
Это факторы неопределённости, которые невозможно полностью предвидеть при расчёте проекта.
Внутренние причины проблем:
- Нереалистичный график
- Выбор ненадёжных поставщиков
- Задержки в запуске этапов проекта
- Возлагание больших ожиданий на поставщиков
- Слабый контроль подрядчиков
- “Пожары”, перегрузка исполнителей, перебрасывание с одного проекта на другой
- Слишком большое количество совещаний для синхронизации
Чем ниже человек в структуре проекта, тем больше он обвиняет в проблемах кого-то внутри компании, а не вне её.
Увеличение количества людей увеличивает время синхронизации в геометрической прогрессии. Поэтому “закидать людьми” - не выход.
Во внутренних причинах тоже много неопределённости.
Поправку на неопределённость обычно нельзя заложить в проект, потому что получаются такие сроки, что руководство режет весь запас.
Как работает закладывание подстраховки в сроки
Новичок или немотивированный | Опытный или с угрозой штрафа |
---|---|
Выберет медиану, то есть время, за которое “в среднем успеем”. Возможные серьёзные проблемы не учитываются. | Будет выбирать максимально большой срок, который сможет, но даже это не даст ему 100% вероятности. |
Разница между этими сроками - это подстраховка, которая закладывается в проект. Чем больше неопределённость, тем длиннее у неё хвост, тем больше подстраховка.
Люди дают “реалистичные” оценки по времени, на основе всех прошлых граблей. Самоуверенные и новички наоборот не учитывают грабли.
Как обычно рассчитываются сроки:
-
Исполнитель даёт такую оценку срока, которая позволит закончить в срок с 80-90% вероятностью.
На задачах с длинным хвостом это даёт 200-300% запаса. -
На оценку исполнителя влияет прошлый негативный опыт.
Если в прошлом с подобными задачами были проблемы, он заложит их в новый срок. -
Если над исполнителем стоит ещё один человек, который даёт свои сроки, он возьмёт сумму полученных сроков и добавит к ним свой запас. 5 + 5 = 13.
Если над исполнителем стоит несколько уровней менеджмента, каждый может добавить свой запас.
-
Высшее руководство часто недовольно получившимся сроком и требует урезать сроки на 20%. Но если в компании так принято, то все об этом знают и закладывают ещё и +25% на урезание сроков.
Из этого следует, что большинство планируемого времени на реализацию составляет подстраховка.
Почему же при этом проекты не завершаются в срок?
Оценки могут превращаться в самореализующиеся предсказания. То есть увеличение оценки увеличивает и время на выполнение.
Куда уходит подстраховка
Опоздания и опережения
Есть задачи А и зависимая от неё Б по 10 дней.
Если А опоздает на 2 дня, то Б начнётся на 2 дня позже.
Но если А сделают на 2 дня раньше, об этом скорее всего не скажут. Бонуса за это не будет, а наоборот, в следующий раз этот срок исполнителя урежут.
Если о раннем завершении А сообщат, то Б может всё равно не начаться, так как исполнитель Б занимается другим проектом.
Если Б всё-таки началась раньше, то исполнитель Б найдёт, чем занять этот запас.
В программировании есть одна особенность: многие программисты используют оставшееся время, чтобы добавлять свои хотелки в проект.
Эффект усиливается, если задача Б зависит от А, А2 и А3: все запасы пропадут, срок скорректируется по самой долгой задаче.
Элементы проекта ведут себя эгоистично по отношению к другим элементам.
Полученный запас продалбывается.
Перепрыгивания
Переключение контекста отнимает время само по себе.
Переключения могут проявляться в разной форме: совещания, “пожары”, параллельные задания - эффект один.
Поправка на перепрыгивания также закладывается в оценку сроков.
Если делать несколько задач понемногу, чередуя, то время от начала до конца каждой задачи значительно возрастёт:
Механизмы разбазаривания подстраховки
- Студенческий синдром: если запас есть, спешить некуда
- Перепрыгивание от задания к заданию
- Аккумулирование опоздания
Как использовать подстраховку правильно
Критический путь - это самая длинная цепь зависимых задач, которая определяет длительность проекта.
Вытащить весь запас из элементов в буферы
Большинство проблем, тормозящих критический путь, происходят не на нём самом. Поэтому в конце путей, которые вливаются в критический путь, должны быть свои питающие буферы.
Питающий буфер - это запас, который позволяет звену работать, когда предыдущие звенья стоят.
На производстве это запасы материала. В проектах это запасы времени.
Буфер должен содержать 1/2 времени, которое достали за счёт урезания подстраховки всех элементов пути.
Даже если закончится буфер питающего пути, мы сможем взять на него время из основного буфера проекта, но это уже повод обратить внимание на ветку.
Буфер проекта формируется так же: 50% времени от всех урезанных на критическом пути подстраховок.
За счёт подстраховок сроки у элементов уменьшились, но в буферы перешла только половина подстраховки, поэтому дата сдачи приблизилась.
Отслеживание прогресса
Сроки надо отслеживать только на критическом пути, это избавляет от лишних срочных задач и способствует сфокусированности.
Менеджер проекта должен фокусироваться на завершении всего проекта. Микроменеджмент ломает фокусировку.
На питающих путях надо отслеживать только процент потребления буфера.
Критический путь никогда не должен простаивать. Если исполнитель, от которого зависит проход, занят другой задачей, ему надо напоминать: когда подойдёт время его задачи на критическом пути, он должен бросить всё и заниматься только ей. Для этого можно отправлять напоминания за 10 дней, 3 дня и за 1 день (зависит от размера проекта). Подготовка людей к задаче называется ресурсным буфером.
Ресурсный буфер также подразумевает, что исполнитель не будет переключаться с одного элемента критического пути на другой.
Нужно убрать контрольные точки (вехи) в середине пути. Все задачи должны идти одна за другой. Это уберёт студенческий синдром и задержки в начале работы. Задачу надо делать не по плану, а когда есть возможность её делать. Так мы перестанем терять выигрыш от раннего завершения предыдущих элементов.
Если элемент завершается раньше срока, сэкономленное время нужно добавить в буфер проекта.
Ценный ресурс и несколько веток проекта
Если одна и та же группа людей занята в нескольких проектах и определённый тип умений является бутылочным горлышком.
Допустим, у нас проект по разработке, где нужно тестирование на разных элементах, а тестировщик один. Блоки “Т” - элементы, где нужен тестировщик:
Тестировщик нужен сразу в нескольких местах, делает задачи по очереди и начинает отставать.
Получается, что критический путь будет на задачах тестировщика, т.к. он определяет общее время. Буферы надо переставить так, чтобы они стояли в местах, где ветки вливаются в критический путь. Так как эта последовательность не похожа на классический путь, её назвали критическая цепь:
Цепь можно сократить, если частично распределить работу тестировщика по другим людям, либо выстроить работу во времени так, чтобы не было длинной последовательности его элементов.
Ценный ресурс и несколько параллельных проектов
Критическая цепь устраняет конкуренцию за ресурсы внутри одного проекта. Сложнее, когда один человек/команда задействованы в нескольких проектах.
Проблемы параллельных проектов:
- Если у проектов разные менеджеры, их надо убеждать передвинуть сроки и договориться
- Разрешить конфликты нескольких проектов сложнее
- Нет буферов, поэтому любое опоздание сдвигает ломает весь план
Чтобы это разрулить, надо определить бутылочное горлышко, самый загруженный ресурс, составить его расписание и подчинить этому расписанию все проекты. Буфером здесь будет служить более позднее начало проекта, чтобы дать время ограничению.
Срок важнее цены
Поставка в срок для больших проектов часто важнее, чем цена. Чтобы подтвердить это, нужно посчитать ущерб из-за задержки запуска.
Например, это может быть опоздание в получении дополнительных продаж. Тогда можно умножить плановую маржу с продаж в месяц на месяцы опоздания.
Есть заблуждение, что эти деньги не потеряны, а отложены во времени. На это можно ответить:
- Не все покупатели станут ждать, пока вы запустите проект
- У продукта, который вы выпускаете, есть срок жизни, всё, что после него - потеряно
- Продукт дешевеет со временем, чем позже вы его продадите, тем меньше маржа
- Поздний выход на рынок может лишить компанию значительной доли рынка
Об этих потерях редко вспоминают. Незнание ущерба от задержки конечно влияет на принятие решения при выборе исполнителя проекта: дешевле - лучше.
Часто менеджер проекта хочет завершить проект в срок, потому что на него давят сверху. Но при этом нет понимания почему именно нужно сделать это в срок.
Чтобы принять решение заказывать дороже, но быстрее, нужно чётко представлять, как задержка сказывается на компании.
Как убедить в этом исполнителя?
Что если сокращение времени исполнения не приносит выгоды исполнителю? Это значит, что он не извлекает выгоду. Сокращение сроков это почти всегда повод для увеличения цены.
1. Разные предложения по соотношению срок-цена
Исполнителю нужно вводить разные варианты предложений: стандартное и то, где сокращение срока обменивается на увеличение стоимости.
Рассматривать нужно увеличение прибыли от заказа, то есть исполнитель должен знать свою маржу.
У исполнителя должна быть возможность повысить приоритет заказа без ущерба другим заказчикам.
При сокращении срока исполнитель может затребовать особые условия:
- Предоставление всех данных/материалов для выполнения заказа до начала работы (за убранный запас по времени, который закладывает исполнитель)
- Предупреждение о срочном заказе за 10 дней (чтобы успеть спланировать приоритеты)
Вариантов предложений может быть больше двух. Например:
- Стандартная поставка, скажем 1000 рублей, прибыль 100 рублей
- Ускоренная поставка, 1100 рублей, прибыль 200 рублей
- Супербыстрая поставка, 1200 рублей, прибыль 300 рублей
Цена при этом увеличивается незначительно, а маржа - в разы.
2. Большие бонусы и большие штрафы
Если исполнитель уверен, что сможет завершить проект в срок, он может предложить то, чего никто не предлагает: разделить ущерб от задержки проекта с заказчиком.
За это он имеет право требовать и соответствующих больших бонусов за завершение раньше срока.
Такому исполнителю не нужно конкурировать на основе цены, он может сделать уникальное предложение “выигрыш-выигрыш”.
Это позволит исполнителю не страдать от цен на грани окупаемости, а заказчику не страдать от ненадёжных сроков.
По идее нужно смотреть на окупаемость и в зависимости от неё принимать решение, нужны ли дополнительные инвестиции.
Проблема в том, что денег всегда ограниченное количество. Сложность возникает, когда приходится выбирать между двумя хорошими проектами. Даже у больших корпораций возможностей инвестирования часто больше, чем денег.
В таких случаях финансовые эксперты предлагают делать расчёт на основе чистой настоящей стоимости. Это способ приведения будущих инвестиций и доходов к текущей стоимости денег. Он учитывает процентную ставку и инфляцию. То есть, чем раньше вложить деньги, тем лучше.
Период окупаемости даёт ответ с точки зрения времени. Чистая настоящая стоимость - с точки зрения денег.
Альтернатива: измерять одновременно во времени и деньгах, в долларо-днях. Когда возвращаются инвестиции, мы получаем назад только деньги, но не время.
Деньги измеряются в долларах, инвестиции - в долларо-днях.
Что я об этом думаю: самая большая сложность для меня в том, как отслеживать расход питающих буферов.