— Мы пропали, если мы это сделаем, и пропали, если не сделаем, — подводит итог Тед.
— Это и есть наша концептуальная проблема, — говорит Рут.
Я с трудом контролирую охватывающую меня панику. Концептуальная проблема? Концептуальная проблема! Это мягко сказано. Это может разрушить все, что мы создали!
Почему мы не столкнулись с этим в реальности? Четыре проекта закончились значительно раньше, чем ожидалось. Так что наш метод работает. Может быть, это потому, что все четыре проекта уже прошли значительную часть пути, когда мы начали внедрение нашего метода? Но во всех случаях у нас были питающие буферы, которые были полностью использованы. У нас была ситуация, которую описала Рут, так что проблема не может быть такой большой, как это кажется. Где «фабрика мысли» делает ошибочную исходную посылку?
У меня нет ни одной мысли. И времени тоже нет. Класс ждет. И не только класс. Джим тоже. Я поворачиваюсь к доске и начинаю строить тучу. Задача — закончить проект в срок. Одно необходимое условие — то, что сказал Тед: мы не можем позволить себе все перестраивать. Что означает: не менять критический путь официально.
Второе необходимое условие — то, что сказала Рут: мы не можем позволить, чтобы действительный критический путь оказался под угрозой, что означает, что мы должны поменять критический путь официально.
Я применяю трюк, которому меня научил Джонни: сконцентрировать внимание на той стрелке, которая нравится меньше всего. Так же как и Теду, мне не нравится перестраивать весь проект на полпути. Я не хочу официально менять критический путь. Это ломает всю элегантность решения и делает его непрактичным. Кроме того, мы не делали этого в проектах, с которыми мы уже работали. Итак, какова тут исходная посылка?
Для того чтобы не оставить действительный критический путь под угрозой, мы должны поменять критический путь официально. Почему? Потому что если мы этого не сделаем, критический путь будет не защищен. Так ли это на самом деле? Я знаю ответ.
Уверенным голосом я спрашиваю класс:
— Какую исходную посылку мы делаем, когда утверждаем, что если мы не поменяем официально критический путь, он окажется под угрозой?
Поскольку они не отвечают, я задаю еще один вопрос:
— Очень ли отличаются друг от друга изначальный критический путь и действительный критический путь?
— Нет, — отвечает Рут. — Начиная от точки, в которой они сливаются, и до конца проекта это тот же самый путь. Я понимаю. Тогда под угрозой только отрезок от элемента N до элемента, где они сливаются, но не включая этот элемент. В большинстве случаев это не будет включать дополнительных питающих буферов. Но что насчет ресурсных буферов, которые нам нужны для этих промежуточных элементов?
— Это не проблема, — говорит Марк. — Поскольку изначальный питающий буфер использован, все мое внимание и так на этих элементах.
— Ложная тревога, — извиняющемся голосом говорит Рут.
— Я так не думаю, — включается в обсуждение Чарли. — Я не думаю, что это ложная тревога.
— Почему? — спрашивает Марк.
— Потому что, по крайней мере в моем случае, критический путь стал прыгать. Каждые несколько дней я сталкиваюсь с этой проблемой. Честно говоря, я готов сдаться.
— Это хорошо известное явление, — замечает Роджер. — Каждый управляющий проектом знает, что критический путь меняется на протяжении исполнения проекта.
Это серьезно. Я не обращаю внимания на Роджера. Все мое внимание направлено на Чарли. Он говорит не о возможной ситуации или неких обобщенных наблюдениях, а о реально существующей проблеме. Чарли, особенно после того, как его президент был настолько доволен результатами, не делал бы такого заявления, если бы ситуация действительно не вышла из-под его контроля.
— Чарли, вы не могли бы подробно описать нам, что происходит?
— Это непонятно. Некритические пути, на которых все было в порядке, на которых были не тронуты питающие буферы, внезапно начинают создавать нам проблемы.
— Серьезный удар Мерфи? — сочувственно спрашиваю я.
— Это-то и странно, — отвечает Чарли, — нет никаких особых проблем, никаких сюрпризов, но мы начинаем отставать.
Теперь я ничего не понимаю. Класс тоже в недоумении.
— Чарли, давайте разберемся не спеша. Вы работаете с элементом N на некритическом пути и… Теперь расскажите нам, что происходит.
— Все еще более странно, — говорит он. — Я еще не начал работать с элементом N на некритическом пути, а этот некритический путь становится реальной проблемой. Ничего не делая, я использовал весь питающий буфер.
— Что ты хочешь сказать? — спрашивает за всех нас Тед.
— То, что я вам говорю. Я должен начать работу с определенным элементом на некритическом пути, но ресурса нет.
— И где ресурс? — нетерпеливо спрашивает Тед.
— Работает на другом некритическом пути.
— Ну так переведи его.
— Не могу. Некритический путь, на котором он работает, тоже опаздывает.
— Чудеса, — хмыкает Тед. — Такого не может быть. Ты говоришь ерунду.
Лицо Чарли багровеет, но он сдерживается и не отвечает Теду. Он смотрит на меня и спрашивает:
— Я могу подойти к доске и показать ситуацию?
— Естественно.
Он начинает рисовать, поясняя:
— Это не мой проект, но это покажет вам мою проблему.
Через две минуты на доске готова диаграмма.
— Что означает «X»? — спрашиваю я.
— Эти элементы выполняются тем же самым специалистом; таких у нас только один. Будем исходить из того, что на каждый элемент уходит пять дней и мой питающий буфер тоже пять дней. Теперь вы видите проблему?
Мы смотрим на диаграмму. Проблема Чарли понятна. Также понятно, что такое может случиться во многих проектах. Ресурс X требуется в нескольких местах одновременно. На протяжении определенного времени X перегружен и начинает отставать. Это вызывает опоздания, которые тянутся от одного некритического пути в другой. Питающие буферы недостаточно велики, чтобы поглотить эти опоздания. Неудивительно, что его критический путь прыгает с одного пути на другой.
— Это очевидно, что я должен признать ограниченную мощность X, — говорит Чарли. — Но тогда весь наш красивый метод рассыпается.
— Не спешите, — говорю я. — Вернемся к вашей диаграмме. Что здесь является критическим путем?
— Я не знаю, — отвечает он. — Если я должен принять во внимание ограниченную мощность X, то не знаю.