воскресенье, 28 февраля 2016 г.

Книжная полка. Элия Голдратт, Джефф Кокс "Цель". Процесс непрерывного усовершенствования

Мой "командировочный" февраль заканчивается. Во время долгого авиаперелета я прочитал книгу Элия Голдратта "Цель. Процесс непрерывного улучшения".

Впервые я услышал про идеи Голдратта у Максима Дорофеева, перечитал все статьи и пересмотрел видео с тэгом Теория Ограничений, затем на SQA Days Сергей Вербенко строил деревья текущей реальности. И наконец сейчас я прочитал книгу целиком.


Технико-тактические характеристики:
Год издания: 2012 ( "Попурри", Минск)
Страниц: 510
Скорость чтения - 4/5 (выше средней)
Время на прочтение:  9-12 часов
Полезность - 5/5 (высокая)

Сложно сказать что-то новое о книге, которая:
  • впервые вышла в 1984 году, переведена более чем на 30 языков и до сих пор популярна
  • прочитана и обсуждена много раз
  • написана в форме бизнес-романа, с оптимальным балансом между "нешаблонностью" героев и "сборником формул"
 .... поэтому я очень рекомендую прочитать эту книгу всем, кому интересно производство продукта и оптимизация производства.

Нам просто нужно смотреть на действительность открытыми глазами и подвергать то, что мы видим, тщательному логическому анализу.

А сейчас я расскажу, что полезного и применимого в тестировании, как использовать идеи "Цели" в тестировании. С самого начала прочтения я проецировал ситуации завода на процесс тестирования, и нашел много общего: описание срочного заказа в начале романа живо напоминает процесс срочного "хотфикса" для релиза.

 Мы просто не можем бросать целый завод на выполнение каждого отдельного заказа.

Роботы в одном из цехов на заводе напоминают автотесты.

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

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

Производительность не имеет смысла, если ты знаешь, какова твоя цель.

Кстати, и в аудите тестирования, о котором я рассказывал на SQA Days-17, все начинается с постановки цели, а затем под цель формируем задачи, которые приблизят нас к цели.

Существует только одна цель.
Качество само по себе не может быть целью. Качество важно, но целью не является.

Мы можем тестировать 24 часа в сутки, но цели мы не достигаем.

Эти трое парней сейчас заняты, но поможет ли нам это делать деньги?
Завод, на котором все всё время работают - это очень неэффективный завод.

Как проверить, достигаем ли мы цели? Вводим метрики. Какие метрики нужны - вопрос открытый.

Если цель фирмы - делать деньги, важны 3 показателя: проход, товарно-материальные ценности и операционные затраты.

Важна формулировка определений. Как и для аудита - мы формулируем цель так, чтобы все ее понимали.

Определение должно быть сформулировано очень четко. Нечеткое определение не только бесполезно, оно опасно.

Будет ли эффект, если запускать автоматизацию чаще? Например, мы запускаем регрессию раз в 2 недели, в конце спринта. Что будет, если мы будем запускать регрессию каждый день?

Роботы производят большое количество деталей, для которых у нас нет заказов.
Цель не в том, чтобы сделать роботов производительными. Цель в том, чтобы сделать всю систему производительной.

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

Происходит не усреднение колебаний скорости, а накопление этих колебаний.

Бутылочные горлышки - то, что необходимо знать тестировщику, так как тестирование - предпоследний процесс в цепочке (перед сопровождением), и поэтому надо знать, есть ли горлышки до тестирование, или само тестирование - бутылочное горлышко.

Бутылочные горлышки не обязательно являются негативным или позитивным явлением - это просто реальность. Там, где они у вас есть, используйте их для того, чтобы контролировать поток через систему на рынок.

Благодаря бутылочным горлышкам, вы можете рассчитать проход системы. Есть два варианта расширения горлышка: подключать дополнительные мощности (как, например, в конце проекта могут подключать дополнительные силы в тестирование, чтобы успеть) или обеспечить, чтобы некачественные детали отсеивались до бутылочного горлышко (например, ревью кода, юнит-тесты, непрерывная интеграция, чтобы не тратить время на тестирование сборки, которая не проходит смоук-тест).

Реальные затраты в бутылочном горлышке - это общие затраты всей системы, деленные на количество часов, которое бутылочное горлышко занято производством.
Час, сэкономленный в не-бутылочном горлышке - иллюзия.

Проблема завода в просроченных заказах напоминает о времени фикса критичных дефектов, сколько времени происходит от звонка заказчика до выпуска версии с исправлением.

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

Пометка деталей красными и зелеными ярлыками - используется в Kanban, как приоритетная цепочка.

Ситуация с печами, рабочие на которых занимаются другими делами во время работы печи и не успевают вернуться вовремя. Решение - назначение постоянных ответственных, которые сразу "подхватят" процесс.

На бутылочных горлышках у нас должны работать самые лучшие специалисты.

О не бутылочных горлышках. Не всегда стоит загружать их полностью работой. Например, разработка может сделать 5 фич, тестирование успевает обработать только 3. Таким образом, мы все равно можем выпустить только 3 протестированные фичи.

Уровень использования не бутылочного горлышка определяется не его собственным потенциалом, а каким-либо другим ограничением системы.

Выход по книге: бутылочные горлышки сообщают, когда запускать следующую партию материала в систему.

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

Идея наполовину сократить партии деталей в не бутылочных горлышках напоминает об идее дробить большие истории на более мелкие, чтобы  сократить размеры партий и "незавершенного производства".

Время материала от поступления на завод до готового продукта состоит из 4 частей: переналадка, сама обработка, время в очереди, время ожидания другой детали. Для деталей из бутылочных горлышек доминирующий фактор - время в очереди. Для деталей из не-бутылочных горлышек доминирующий фактор - время ожидания другой детали.

И кроме технической, в бизнес-романе проходят еще минимум две линии. Первая - поиск необходимых приемов в научных методах, о связи науки и практики.

Вторая - о решении семейных проблем. О балансе между работой и личной жизнью. Напоминает колесо сфер жизни из "Экстремального тайм-менеджмента". 

Вывод. Базовая книга для начала знакомства с теорией ограничений. Если не читали, рекомендую, полезна в любом возрасте и на любой позиции. Читается за 2 вечера или один дальний перелет. Форма бизнес-романа не грузит формулами, дозированно подает информацию, легко усваивается, а насколько успешно примените - зависит от вас.

Комментариев нет:

Отправить комментарий