Критическая цепь — страница 42 из 44

— «Синхронизация» — красиво звучит, — говорю я. — Настолько красиво, что часто используется для того, чтобы скрыть незнание. Тед, вы же не хотите, чтобы у нас сложилось о вас такое впечатление.

— Ни в коем случае.

И он кидается в другую крайность:

— Конкуренция за ресурсы означает, что от одного и того же ресурса ожидается, что он должен делать два разных элемента проекта в одно и то же время, — выбрасывает он наше время, демонстрируя, что знает определение термина, который всем хорошо известен. — Устранение конкуренции за ресурс между двумя элементами, — методически продолжает он, — во многих случаях требует, чтобы выполнение одного из элементов было отложено. Проблема в том, и мы это детально обсуждали, что не существует четкого способа решить, какой элемент отложить. Это почти волевое решение.

Мне нравится его подход. Я хочу, чтобы он продолжал, поэтому говорю:

— Это верно и для одного проекта. Почему проблема становится более серьезной, когда эти элементы принадлежат разным проектам?

— Потому что в ситуацию вовлечены два управляющих проектом, — уверенно отвечает он. — Это не то же самое, как в ситуации, когда вы работаете в одном проекте, где не имеет значения, какой элемент вы отодвинете. Когда у вас два проекта, естественно, что каждый управляющий проектом будет сражаться за то, чтобы его элемент был выполнен в первую очередь.

— Это серьезная проблема? — продолжаю я мои почти риторические вопросы.

— Вы шутите? — улыбается Тед. — Марк, теперь я понимаю, за что вы отвечаете. Это не просто проблема синхронизации, это кошмар.

— Это верное описание, — соглашается Марк. — К сожалению, мы не представляли себе размаха этого кошмара, пока мы не шагнули в него.

— Обеими ногами, — добавляет Рут.

— Это не потому, что мы такие смелые, — спешит пояснить Фред. — Просто мы не знали, что еще можно было сделать.

— Хотите услышать, что случилось? — спрашивает Марк.

Это риторический вопрос.

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

— Тогда, — подхватывает Фред, — мы пошли в наш компьютерный отдел.

— И на этом история заканчивается — высказывает предположение Брайен. — В моей фирме все, что вы просите у компьютерного отдела, застревает там на месяцы.

— В нашей тоже, — отвечает Фред. — Но мы заручились высокой поддержкой. Понимаете, наше задание имеет статус суперультра-топ-приоритета. Так что мы получили от них «достаточно хорошее» программное обеспечение довольно быстро. Мы загрузили все данные и начали играть.

— И играли, и играли… — смеется Рут.

— Симулирование на компьютере — это отличный способ тянуть время, — соглашается Марк. — Мы устраняли самую незначительную конкуренцию, то, на что мы бы даже не обратили внимания, если бы нам пришлось это делать вручную. Но мы устранили всю конкуренцию. Естественно, после этого, как и предсказал Тед, нам пришлось сражаться со всеми управляющими проектами.

— В двух словах, нам удалось выжать из них согласие, — сводит Фред многие дни отчаянных споров в одно короткое предложение.

— А потом реальность показала, какими дураками мы были. Кто-нибудь догадывается, что случилось? — обращается Марк к классу.

Все сосредоточенно думают, но идей ни у кого нет. Даже Тед молчит.

Марк не заставляет нас долго ждать.

— Вы когда-нибудь сталкивались с тем, что элемент заканчивается несколько позже? — подсказывает он им. — Одно незначительное отклонение в одном элементе и БАБАХ! — вы получаете эффект домино, конкуренцию повсюду. Мы все свое время тратили на сражения. Тед, ты назвал это кошмаром? Ты абсолютно прав.

— Я представляю себе. Такое легко может случиться и у нас. И что вы тогда сделали?

— Прежде, чем вы расскажете нам о своем решении, — вмешиваюсь я — вы можете объяснить, какую концептуальную ошибку вы допустили?

— Мы брали оценки по времени так, как если бы это были реальные значения, — отвечает Рут.

— Что вы имеете в виду? — подталкиваю я ее к более детальному объяснению.

— Предположим, что элемент должен длиться десять дней. На самом деле, на него может уйти семь дней или пятнадцать дней, но мы вводили в компьютер десять и потом смотрели на это число, как на священное.

— Я все еще не понимаю, — говорю я.

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

— По сути дела, — подключается Фред, — мы попали в ловушку того, что считали, что восемью восемь — шестьдесят четыре. Мы старались быть точнее, чем шум. Все сражались из-за конкуренции, которая, если бы мы ее не трогали, была бы легко поглощена буферами.

— В результате мы постоянно впустую меняли графики, вызывая этим реальные проблемы, — подводит итог Марк.

— Понятно, — говорит Брайен. — Спасибо, что поделились этим с нами. Теперь я знаю, чего не надо делать. Но я не знаю, что надо делать. Мы же не можем просто проигнорировать конкуренцию за ресурсы.

— Не можем, — соглашается с ним Марк. — Ни тогда, когда у нас один проект, и определенно ни тогда, когда мы смотрим на все проекты.

— Теперь вы видите, перед какой мы оказались дилеммой? — спрашивает Фред. — С одной стороны мы должны были учитывать конкуренцию, с другой — когда мы это делали, мы создавали кошмар.

— Ну так что вы сделали? — Брайену хочется скорее услышать ответ.

— Мы пригласил профессора Силвера, чтобы он нам помог.

— В чем не было никакой необходимости, — подчеркиваю я. — Вы знали ответ. Вы просто поленились его понять.

— Это несправедливо! — восклицает Рут. — Даже после того, как вы нам его показали, у меня еще ушло какое-то время, чтобы его понять.

— Ответ был показан вам профессором Фишером на лекциях по управлению производством и затем в деталях разобран профессором Уилсоном на лекциях по системам.

Я знаю, что мое заявление несправедливо. У меня самого ушли недели прежде, чем я смог найти ответ. Но я хочу, чтобы мои студенты поняли, что можно перенести хорошую концепцию из одной области в другую.

— Мы сейчас говорим о конкуренции за ресурс, — начинаю я объяснение. — Вы затрагивали эту проблему на лекциях по управлению производством?

— Конечно, — отвечает Брайен. — Каждый раз, когда перед станком есть очередь и приоритеты неясны, у нас возникает конкуренция за ресурс. Несколько заданий сражаются за то, чтобы быть обработанным тем же самым ресурсом в то же самое время.

— Именно, — подтверждаю я. — И как вы справляетесь с таким случаем? Вы учили, что глупо пытаться составлять график для каждого станка. Что вы должны делать?

— Определить бутылочное горлышко, — говорит Чарли.

— А потом?

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

— И этим, — говорю я, — вы устраняете любую конкуренцию в ограничении. Вы не просите ограничение сделать две вещи в одно и то же время. А потом? Чарли?

— А потом мы подчиняем. Подчиняем этому все остальные ресурсы.

— И какой результат? — спрашиваю я. А у меня начинают получаться риторические вопросы. Риторические только для тех студентов, кто учился у Джонни.

— Благодаря этому, — отвечает Чарли, — мы устраняем большинство перегрузки на другие ресурсы. А спорадические пики нагрузки, которые могут иметь место, будут поглощены буферами.

— Именно, — торжествующе говорю я. — А почему мы не делаем то же самое в проектах?

— Но в проектах у нас нет бутылочного горлышка, — слишком быстро отвечает Тед.

— Неужели? — иронически спрашивает Марк. — У тебя в фирме нет бутылочного горлышка? Не забывай, мы говорим не об одном проекте, а обо всех.

— Ясно.

— И каков эффект непризнания такого бутылочного горлышка? — спрашиваю я. — Это не только создает хаос из-за попытки синхронизировать несколько проектов. Вы получите тот же губительный эффект, что и на производстве. Если мы не будем уделять бутылочному горлышку специального внимания, не будем защищать его от Мерфи буферами, это неизбежно приведет к тому, что мы будем терять в нем время.

— А это вызывает уменьшение общего прохода фирмы, — подключается Фред. — Таким образом, мы делаем меньше проектов, чем могли бы.

— Итак, — продолжает Марк, — мы нашли бутылочное горлышко. Это было легко. Мы это знали все время. Это наш отдел цифровой обработки. И потом мы составили график их работы.

— Как? — перебивает Брайен.

— Так же как это делается на производстве. Там приоритеты в основном определяются датой отгрузки заказа. В нашем случае — планируемой датой завершения проекта.

— А оттуда уже было легко, — продолжает Рут. — Мы рассмотрели каждый проект как стоящий отдельно. Воздействие других проектов было учтено за счет дополнительной информации, которую мы получили в результате составления графика для отдела цифровой обработки.

Для большинства это объяснение слишком сжато. И Фред объясняет детали:

— Каждый проект имеет элементы, которые исполняются отделом цифровой обработки. График работы этого отдела определил конкретные даты старта и финиша этих элементов. Для каждого проекта мы сначала делали расчеты таким образом, как будто других проектов не существовало. Я имею в виду расчеты по устранению любой значительной конкуренции за ресурсы. И потом мы поставили каждый проект так, чтобы он соответствовал графику отдела цифровой обработки.

— Это изменило критическую цепь? — интересуется Тед.

— Для некоторых проектов изменило, — признается Фред.

— И после этого вы вставили буферы? — проверяет Брайен.