Ограничение рулит

К сожалению, в IT не любят теорию ограничений систем (ТОС). За девять лет в профессии я встречал ТОС только несколько раз — когда применял эту теорию сам.

Суть ТОС можно сформулировать в одном предложении: "В системе в конкретный момент времени есть одно ограничение, которое задаёт скорость работы всей системы". Сейчас поясню на примерах.

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

Или у вас есть компьютер, который уже не тянет современные игры. Он упирается во что-то одно, скорее всего в видео-карту. Вы можете начать апгрейд с покупки нового процессора, но это не поможет в решении проблемы. Компьютер всё ещё не будет тянуть игры, потому что видео-карта всё также не будет справляться.

Скорость движения всей группы в походе — это скорость самого медленного участника. Количество FPS в игре — это то количество, которое может выдать самая слабая часть компа. Короче говоря, если нужно измерить производительность какой-то системы, то достаточно определить её ограничение и измерить производительность в этом одном месте. Всё. Никаких других измерений не нужно.

Из этого вытекают интересные утверждения: 1. стоимость часа работы ограничения равняется стоимости часа работы всей системы 2. любая оптимизация бессмысленна, если она не ускоряет работу ограничения

Как показывает практика, люди сложнее всего принимают именно эти два утверждения. Они настолько сильно отличаются от общепринятого подхода к управлению командами, что их нужно пояснять отдельно. Но этот пост вышел и так слишком длинным, поэтому пояснение будет уже завтра.