Но есть и хорошая новость: в нашем случае ресурсы ограниченной мощности сталкиваются с вариативностью, с которой мы способны кое-что сделать. В этой книге много говорится о координационных усилиях и организационных расходах на работу по созданию ценности. Если у нас есть дизайнер пользовательского интерфейса с ограниченной мощностью, то мы можем поручать ей только работу, создающую ценность, минимизируя количество нецелевых и бесполезных действий.
Например, в 2003 году у меня была команда тестировщиков с ограниченной мощностью. Чтобы максимально ее использовать, я начал поиск других, резервных ресурсов и нашел их в лице бизнес-аналитиков и менеджеров проекта. Тестировщики были освобождены от бюрократической деятельности, например заполнения табеля учета рабочего времени. От них не требовалось и планирование будущих проектов. Мы дали аналитикам возможность разрабатывать планы тестирования следующих итераций и проектов, в то время как тестировщики занимались исключительно тестированием текущих заданий.
Еще лучше (хотя тогда это не пришло мне в голову) – разработать профиль риска для требований, которые должны быть протестированы только профессиональной командой тестировщиков. Требования, не соответствующие установленным критериям, могут быть протестированы сотрудниками других функциональных отраслей, которые выступают в данном случае в качестве тестировщиков-новичков. Это могут быть, например, бизнес-аналитики. Такой метод «раздвоения», использующий профиль риска, служит хорошим способом оптимизировать использование бутылочного горлышка, продолжая контролировать риски проекта.
Долгосрочным решением могут стать инвестиции в автоматизацию тестов. Ключевое слово в этом предложении – «инвестиции». Если вы говорите о них, то обычно имеете в виду расширение бутылочного горлышка. Привлечение дополнительных ресурсов – не единственный метод расширения мощности. Полезная и естественная стратегия для этого – автоматизация. Сообщество agile-программистов за последнее десятилетие многое сделало для развития автоматизации тестирования. Обычно стоит смотреть на автоматизацию как на стратегию расширения. Однако у автоматизации есть и замечательный дополнительный эффект: она снижает вариативность, поскольку повторяющиеся задания и действия воспроизводятся с цифровой точностью. Итак, автоматизация снижает вариативность процесса и может помочь оптимизировать использование мощности следующего бутылочного горлышка.
Еще один способ добиться максимального использования нашего дизайнера пользовательского интерфейса – обеспечить ей постоянный прогресс в текущей деятельности. Если дизайнер сообщает, что по каким-то причинам ее работа заблокирована, то менеджер проекта и, при необходимости, вся команда должны дружно взяться за проблему и решить ее. Таким образом, для эффективного использования бутылочных горлышек с ограниченной мощностью необходимы высокие способности организации к определению и решению проблем.
Если текущую работу блокируют сразу несколько проблем, то те из них, которые угрожают ресурсу ограниченной мощности (в нашем случае – дизайнеру пользовательского интерфейса), должны получить наивысший приоритет. Для эффективного, производительного разрешения проблем, таким образом, необходимо знать, где находится ресурс ограниченной мощности, и при необходимости давать ему приоритет.
Прозрачность канбан-системы помогает определить местонахождение ресурсов ограниченной мощности (бутылочных горлышек) и влияние проблем, препятствующих нормальному рабочему потоку в этой точке системы. Если все участники проекта будут понимать системный характер проблем в бутылочном горлышке, то вся команда с готовностью перейдет к решению проблемы. Высшее руководство и внешние заинтересованные лица, имеющие серьезные причины надеяться, что релиз выйдет вовремя, тоже охотнее выделят свое время, осознав его ценность и то влияние, которое окажет быстрое разрешение проблемы.
Развитие способности организации прозрачно отслеживать прогресс и готовить отчеты по проектам с использованием канбан-системы жизненно важно для повышения производительности. Прозрачность дает понять, каковы бутылочные горлышки и препятствия, а следовательно, ведет к оптимальному использованию доступной мощности для создания ценности благодаря общекомандной концентрации на поддержании потока.
Еще один метод, часто применяемый для обеспечения максимальной загрузки ресурса ограниченной мощности, состоит в том, чтобы убедиться: ресурс никогда не простаивает. Если вдруг ресурс ограниченной мощности оставляют без работы из-за проблемы, неожиданно возникшей выше по цепочке – например, аналитик запросов заболел, – это непозволительная трата времени и средств. Или, предположим, внезапно ограничение снимается. Либо большая часть требований отзывается заказчиком, решившим внести стратегические изменения. Пока команда ждет разработки новых требований, дизайнер пользовательского интерфейса простаивает. Что если действия выше по цепочке по своей природе крайне вариативны? Это обычная ситуация при выявлении требований и разработке. Таким образом, темпы поступления заданий оказываются неравномерными. Причин, по которым ресурс ограниченной мощности может простаивать из-за временного недостатка работы, много. Вариативность темпов поступления новых заданий в очередь (в нашем примере – к дизайнеру пользовательского интерфейса) можно нейтрализовать посредством буфера. Буферизация увеличивает общее число заведенных в системе заданий на работу. С точки зрения бережливого управления добавление буфера заданий приводит к потерям времени, поскольку увеличивает период выполнения. Однако преимущества в пропускной способности, которые обеспечивает равномерный поток работы, проходящий через ресурс ограниченной мощности, обычно ценнее. Вы сделаете больше работы, несмотря на немного удлинившееся время выполнения и слега увеличившееся число заданий в работе.
Использование буферов для защиты от простоя ресурса – бутылочного горлышка – часто называют защитой бутылочного горлышка, или просто защитой. Прежде чем задумываться о расширении бутылочного горлышка, нужно попытаться максимально его использовать и установить защиту для реализации его полного потенциала.
Наш пример в области управления движением – трасса SR-520, чья пропускная способность составляет менее 20 % от потенциальной, – достаточно заурядный для интеллектуальной деятельности, например анализа требований и разработки ПО. Часто благодаря максимальному использованию бутылочного горлышка можно добиться более чем четырехкратного увеличения пропускной способности.
В примере с Microsoft из главы 4 благодаря более правильному использованию и защите бутылочного горлышка результаты улучшились в два с половиной раза. Это устранило вариативность системы. Причем не было потрачено никаких денег, например на расширение бутылочного горлышка.
Подчинение ограничению
Как только вы решили, как использовать и защищать ресурс ограниченной мощности, может понадобиться подчинить остальные элементы этим ограничениям, чтобы система работала максимально эффективно.
Давайте вернемся к нашим фантазиям о транспортной системе будущего. Теперь мы решили не строить новый мост через озеро Вашингтон, а снабдить все машины, едущие в час пик по SR-520, новой системой управления скоростью, которая регулирует трафик на одиннадцатикилометровом участке шоссе при помощи радара и беспроводной связи. Эта новая система будет работать своего рода круиз-контролем и заменит управление педалями газа и тормоза. Стимул к установке новой системы на частные автомобили – налоговые льготы. Как только система появится на достаточном количестве автомобилей, она начнет действовать, так что машинам, не оснащенным ею, придется либо искать альтернативный маршрут, либо не ездить в час пик. Результатом станет более равномерный поток движения и возросшее использование мощности бутылочного горлышка. Предполагаю, что такая система при достаточной эффективности сможет вернуть узкому месту около 50 % утраченной мощности. Иными словами, она повысит пропускную способность шоссе SR-520 в пиковое время в два с половиной раза.