Эпизод 37. Утилизация < 100% - отстой
Почти все руководители, особенно вновь испечённые, верят в величие 100% утилизации — убеждение, что каждый технический человек должен быть полностью загружен работой так, чтобы голову поднять не мог и никаких тебе фейсбуков.
ВМ. 100% загрузка хороша для печатного станка:) А вот с людьми такой фокус не прокатывает. Если следовать этому постулату, то можно со временем обнаружить, что
- нет времени для беспристрастного мышления,
- нет времени для исследования,
- нет времени чинить багло с продакшна,
- нет желание расти и изучать новое (вы же осознаёте, что ваши сотрудники учатся на работе?).
- устают, да? косячат, да? сваливают, да?
На самом деле эта тема появилась не просто так. И я не зря привёл в пример печатный станок. Когда деревья были маленькие, а компьютеры были очень дорогие, их машиночас стоил конских денег, отсюда их простой — стоил конских денег. Как следствие все стремились максимально нагружать аппаратуру. Долго готовились, отлаживались на бумаге, тестировали опять же на бумаге, потом резервировали машинное время и выполняли операции. Если ты не успел — приходи ночью:) Шутка, но в каждой доле шутки.
Если вернуться к моим любимым метафорам
- 100% загруженное шоссе удивительно не может ехать:) Малейший затык приводит к авариям и ещё большему затыку.
- 100% CPU Load приводит к тому, что система встаёт в известную позу. Удивительно, да? Но у неё нет сил даже переключить конвейер. А вдруг немного потекла память или возникла лишняя операция умножения? Сидите и ждите. Всё занято вычислениями.
А самый дурацкий эффект от этого — всё, что больше 80-90% перестаёт быть предсказуемым. Наверняка вы видели это, когда ваша винда или сервак внезапно (именно внезапно) перестаёт работать и продолжать вычисления. А потом также внезапно продолжает что-то делать и «отлипает».
С людьми такая же хурма. У человека одноядерный процессор, что бы не говорили те, кто «многозадачен». По факту мы имеем конвейер в вытесняющим планированием и в ряде случаев с быстрым переключением контекста. А дальше идут куда более забавные эффекты. Например, у тебя есть три задачи, которые делают тебя загруженным на 100%. Логично предположить, что каждая из них занимает 33,(3)%. Так?
А вот не так ни разу. Когда такая напруга — ты искренне думаешь, что тратишь 1/3, а на самом деле тратишь ровно столько, сколько занимает задача. В итоге получаешь 146% вместо 100. И отловить это исполнителю очень сложно. Не работает таймер на переключение контекста. Точнее он конечно может и работает, но давится механизмами совести и страха продолбать всё и не успеть.
В общем-то задача планирования сложная и нелинейная, например, всякие там аджайлы придумали корректировать планирование команды по velocity, а velocity — реальный показатель того, что команда может делать в «естественном» ритме.
З.Ы. заодно отошлю на ход ноги тебя, мой дорогой читатель, к Теории одного разрыва 100% утилизация — верный путь к соответствующим результатам.
Остальные эпизоды на странице Мир глазами другого человека
[sgmb id=»1″]