Автор статьи: Дмитрий Курдюмов
Участвовал в Аджайл-трансформациях в крупнейших компаниях в России (Альфа банк, МТС, Х5 retail group), с международным опытом в стартапе зарубежом
Теория ограничений (ТОС) — это управленческая методология, предложенная Элияху Голдраттом в 1984 году в его книге "Цель". Она базируется на простом, но мощном принципе: любая система, будь то производство, бизнес-процесс или команда разработки, всегда ограничена одним или несколькими узкими местами. Эти ограничения или «бутылочные горлышки» сдерживают общую эффективность системы и являются теми ключевыми элементами, которые необходимо обнаружить и устранить для значительных улучшений.
В условиях разработки продуктов, где скорость поставки, качество и удовлетворение клиентов критически важны, применение теории ограничений может привести к существенным улучшениям процессов и результатов. Давайте рассмотрим, как ТОС работает на практике и каким образом она может помочь командам разработки.
Суть теории ограничений
Теория ограничений основывается на идее, что в любой системе всегда есть хотя бы одно «узкое место» — процесс или ресурс, который ограничивает всю цепочку создания ценности. В разработке продуктов это может быть что угодно: узкоспециализированный сотрудник, который единственный обладает необходимыми навыками для выполнения определенной задачи, неэффективные процессы тестирования, медленная обратная связь от пользователей или даже недостаток координации между командами.
ТОС предлагает сфокусироваться на этом ограничении и улучшать систему, концентрируя ресурсы и внимание на устранении узкого места. Это ключевой подход для достижения значительных улучшений с минимальными затратами.
Пять шагов теории ограничений
Голдратт предложил пять шагов для работы с ограничениями в любой системе, которые можно адаптировать к процессам разработки:
Идентифицируй ограничение
Определи, какое узкое место сдерживает систему. Это может быть узкий специалист, который перегружен задачами, процесс с длинными циклами тестирования или неэффективная обратная связь. Важно найти тот элемент, который затрудняет или замедляет весь процесс.
Пример: В команде разработки мобильных приложений например это может быть процесс интеграционного тестирования, который занимает много времени и становится блокирующим для выпуска продукта.Максимизируй работу на ограничении
После того как ограничение выявлено, необходимо оптимизировать работу в этом узком месте. Это может быть перераспределение задач, автоматизация, улучшение процессов или увеличение времени на решение проблемы.
Пример: Если основное узкое место — это специалист по тестированию, можно внедрить автоматизированные тесты для снижения нагрузки на этого сотрудника или привлечь дополнительных специалистов для помощи в выполнении задач.Подчини остальную систему ограничению
На данном этапе важно сделать так, чтобы все остальные процессы в системе были подстроены под ограничение. Это значит, что работа команды должна быть организована таким образом, чтобы избегать накопления задач на ограничении.
Пример: Если тестирование — узкое место, команде стоит организовать процесс так, чтобы не было лишней очереди задач на тестировании, а задачи попадали в тесты постепенно и равномерно. В некоторых случаях нужно остановить разработку прежде чем законсится тестиование. В моменте мы подключали и разработчиков к тестированию чтобы расшить узкое горлышко, а далее уже решали проблему системно.Увеличь пропускную способность ограничения
Этот этап предполагает устранение или ослабление самого ограничения. Можно привлекать дополнительные ресурсы, улучшать процессы или увеличивать количество людей, работающих с узким местом.
Пример: Обучение разработчиков выполнению базового тестирования или внедрение автоматизированных CI/CD-пайплайнов, которые ускоряют тестирование и выпускают продукт быстрее.Повторный поиск нового ограничения
Как только ограничение устранено, стоит вновь пересмотреть систему и выявить новое узкое место. После каждого улучшения важно снова искать слабые звенья, чтобы процесс улучшался непрерывно.
Пример: После оптимизации процесса тестирования может оказаться, что новым ограничением стало слишком долгое согласование задач с бизнесом. Тогда процесс оптимизации продолжается уже на этом этапе.
Применение теории ограничений в разработке продуктов
ТОС особенно полезна в разработке продуктов, где процессы сложные и многослойные, а каждая команда или отдельный процесс может быть потенциальным узким местом. Часто ограничения проявляются в недостаточной гибкости процессов, долгом выпуске функциональности или перегрузке специалистов.
Как теория ограничений помогает улучшать процессы?
Ускорение time-to-market:
Когда команды разработки сталкиваются с замедлением поставки продуктов, ТОС помогает выявить ключевые процессы, которые создают узкие места. Например, это может быть длительный цикл согласования требований с заказчиками. Оптимизируя этот процесс, можно значительно ускорить выпуск новых фичей.Улучшение качества продукта:
ТОС помогает выявлять проблемы, которые ограничивают качество работы. Например, если тестирование является узким местом, это может негативно сказаться на конечном качестве продукта. Оптимизация процесса тестирования позволяет улучшить качество и избежать багов на более ранних стадиях разработки.Снижение перегрузки команды:
Узкие места в работе могут создавать не только замедление работы, но и перегрузку отдельных членов команды. ТОС помогает распределять задачи более равномерно и организовать работу так, чтобы избежать перегруза и выгорания сотрудников.Оптимизация процессов:
ТОС помогает увидеть системные проблемы и наладить их. Например, если узкое место — это долгое время согласования задач между различными департаментами, стоит оптимизировать коммуникацию между командами и внедрить прозрачные процессы.
Пример применения ТОС в продуктовой разработке
Возьмем пример команды разработки SaaS-продукта. Команда сталкивалась с долгим циклом разработки новых функций — около 3 месяцев от идеи до реализации. Причина заключалась в том, что каждый релиз блокировался долгим процессом ручного тестирования.
Применив ТОС, команда смогла выявить, что узким местом было именно тестирование. Решение заключалось во внедрении автоматизированных тестов и CI/CD-инфраструктуры, что сократило время тестирования с 2 недель до нескольких дней.
Заключение
Теория ограничений — это мощный инструмент для команд, стремящихся к постоянному улучшению и оптимизации. В условиях разработки продуктов, где скорость и качество играют критическую роль, ТОС позволяет выявлять слабые места, повышать эффективность и значительно улучшать процессы. Применяя подходы ТОС, команды могут не только улучшить свою производительность, но и создавать более качественные продукты для клиентов.
Если понравилась статья и хочешь узнать больше о подобных практиках, переходите в мой Телеграм-канал.
Всем, кто хочет прокачать свои навыки управления командой, рекомендую заглянуть на открытые уроки онлайн‑курса «Team Lead»:
2 октября: Подбор команды в StartUp. Регистрация
15 октября: Между строчек кода. Как раскрыть творческий потенциал разработчиков? Регистрация
21 октября: Дискуссия: «Найм по-русски: Как собрать супер команду, когда рынок пустует?». Регистрация
Комментарии (7)
Throwable
01.10.2024 15:40+1К подобным абстрактным идеям, о том сколько ангелов уместиться на кончике иглы, следует относиться не более чем как к развлекательной беллетристике.
С одной стороны, идеи кажутся простыми и разумными, с другой -- будучи примененными к реальным вещам, сразу провоцируют стопицот нюансов.
Пример: сильно загруженный девелопер был идентифицирован как узкое место. К нему добавили двух новых человек в надежде ускорить процесс разработки. И получили обратный результат, ибо узкое место в проекте -- это менеджер, не умеющий грамотно планировать и распределять задачи. Но кто когда признается в собственной некомпетентности? Всегда найдется причина вовне!
modsamara
01.10.2024 15:40Или загруженный девелопер стал еще загруженнее, потому что теперь этим двум дебилам надо еще все объяснять
TSergey_tm
01.10.2024 15:40Пример: сильно загруженный девелопер был идентифицирован как узкое место. К нему добавили двух новых человек в надежде ускорить процесс разработки. И получили обратный результат, ибо узкое место в проекте -- это менеджер, не умеющий грамотно планировать и распределять задачи.
И понятно почему так произошло.
ТОС это как раз не про то, чтобы найти ограничение и быстрее его расшить. В этом и автор статьи ошибается.
ТОС говорит, что найдя ограничение мы должны всю систему подчинить ему. И вот если и этого не хватает, то только потом расшиваем ограничение.
Если это разраб, то:
Задачи к нему должны приходить максимально продуманные, так чтобы он не тратил время на переуточнение запроса
Задачи ему надо отдавать не всякие, а только те, что принесут максимальную прибыль за единицу времени работы разраба. Это называется проход на ограничение: прибыль минус полностью переменные затраты на эту задачу (в IT обычно это 0, так как нет прямых затрат на задачу, разве что мы можем покупать под каждый заказ стороннюю лицензию, тогда её и вычитаем), разницу разделить на время работы ограничения
Надо убедиться, что разраб не занимается работой, которая не приносит нам профит: всякие скрипты для других - пусть пишут другие, данные для аналитиков или ещё кого-то - тоже пусть собирают другие и т.п.
Если сделать так, что путём изменения способа работы, то мы получим максимум прибыли минимальными затратами. А расшивать ограничение - это часто большие траты.
JustSokol
01.10.2024 15:40+2Теория ограничений она про конвейерное производство. Применять его к инженерной и проектной (или продуктовой) работе не очень подходит. Я бы даже сказал пытаться натягивать сову на глобус можно но лучше сконцентрироваться на других подходах.
Но в разработке этот подход зато подходит для "конвейеров" данных (дата пайплайнов и цепочек вызовов апи, или цепочек шагов обработки запроса.) вот там для оптимизации это прям применимо непосредственно. Например нет смысла ускорять обработку запросов если ботлнек в базе. Все прям по теории ограничений.
agileguru
01.10.2024 15:40+1Нет, не только. Теория ограничений в целом про ограничение которое блокирует рост.
Например это может быть также ограничение в росте бизнеса - обьем рынка, недостаток бюджета для маркетинга и так далее.
titan_pc
01.10.2024 15:40У человеков всегда есть термин на всё подряд.
Даже на "Есть проблема, которая замедляет - пойди исправь". Целая теория... матрицу ей в бубен.
Просто пошел и сказал - автоматизирует тесты. Никто не слушает...
А потом такой - ну ребята ну ТОС же... Ну вы чё. И все такие хоп и пошли делать. Ибо слово ТОС лень гуглить
Thomas_Hanniball
ТОС - крутая штука, сам использую её постоянно в работе.