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