Менеджмент цифрового продукта. От идеи до идеала
Шрифт:
Особую популярность бережливый подход к разработке получил благодаря книге «Бизнес с нуля. Метод Lean Startup для быстрого тестирования идей и выбора бизнес-модели» Эрика Риса.
Бережливый подход базируется на концепции бережливого производства (Lean Production), которая стала переосмыслением производственной системы Toyota (Toyota Production System, TPS). На рис. 2.1. представлена схема эволюционной связи производственных подходов.
Рис. 2.1. Связь производственных подходов
Основные
2.1. Минимизация отходов
Отходы (muda) – очень большая и важная тема в бережливом производстве, включающая в себя не только прямые отходы, такие как остатки материалов или брак, но и процессы, которые не добавляют ценности конечному потребителю.
В бережливом производстве выделяют семь видов отходов:
1. Потери из-за перепроизводства.
2. Потери времени из-за ожидания.
3. Потери при ненужной транспортировке.
4. Потери из-за лишних этапов обработки.
5. Потери из-за лишних запасов.
6. Потери из-за ненужных перемещений.
7. Потери из-за выпуска дефектной продукции.
Каждый из этих типов имеет свое проявление и в разработке цифрового обеспечения.
2.1.1. Потери из-за перепроизводства
В реальном производстве можно столкнуться с «затовариванием», когда готовая продукция или, что еще страшнее, ее компоненты заполняют складское пространство. Завод в этом случае сталкивается со следующими издержками:
1. Амортизация складской инфраструктуры.
2. Оплата труда персонала.
3. Учет и инвентаризация.
4. Простой капитала – «замороженные расходы» в производственных компонентах, не утилизированные в виде готовой продукции.
Распространенная стратегия оптимизации производства – это минимизация загрузки складов за счет точной по времени поставки исходного сырья и своевременной отгрузки.
Несмотря на то что в цифровом производстве нет складов, расходы на перепроизводство активно присутствуют:
1. Создание потенциально невостребованных артефактов. Избыточная документация – разработчики затрачивают часы на то, что не добавляет ценности продукту и не факт, что будет востребовано в будущем.
2. «Замороженные расходы» в промежуточных артефактах. Дизайн-макеты будущей функциональности, пока не будут утилизированы в виде поставки, остаются «замороженными» человеко-часами, которые потратила компания.
3. Нагрузка на инфраструктуру хранения. Промежуточные артефакты не только занимают место в облачном хранилище, они еще и порождают огромное количество переписки в почте, чатах, движений в таск-трекерах, что добавляет хранимого объема, а самое главное – отвлекает внимание и затрудняет поиск.
4. Учет движения перепроизведенных «полуфабрикатов» оттягивает внимание всех участников процесса.
2.1.2. Потери времени из-за ожидания
Тут у физического и цифрового производства много общего – час простоя сотрудника и/или производственной инфраструктуры безвозвратно утерян. В реальном производстве производственные цепочки выстраиваются таким образом, чтобы задержки между звеньями были минимальны. В цифровом производстве достаточно сложно достоверно прогнозировать длительность производства, поэтому прибегают к следующим тактикам для минимизации простоя:
1. Дробление артефактов. Большое улучшение внутри продукта разбивается
2. Кросс-функциональность разработчиков. Знания в смежных предметных областях позволяют приступить к разработке, не дожидаясь бутылочного горлышка [6] – участия узкоспециализированного эксперта. (Подробнее об этом см. в п. 3.2.)
6
Бутылочное горлышко (англ, bottle neck) – узкое место на производстве, когда из-за ограничений одного элемента производственной цепи ограничивается производительность всей цепи.
3. Утилизация технического долга. В процессе разработки в коде накапливается неоптимальность, которая не может быть разрешена в момент поставки в связи с временными ограничениями. В этом случае разработчики фиксируют необходимые доработки для того, чтобы вернуться к ним позже – накапливают техдолг. Утилизация техдолга в процессе простоя – не очень хорошая практика, но лучше, чем пустая потеря времени. (Подробнее о техдолге и других нефункциональных требованиях см. в п. 3.3.)
2.1.3. Потери при ненужной транспортировке
В промышленном производстве под отходами на ненужную транспортировку подразумеваются все виды ресурсных расходов, осуществляемых при транспортировке компонентов готовой продукции и финальных изделий. Сюда включены:
1. Расходы на транспортную инфраструктуру
2. ФОТ обслуживающего персонала.
Для минимизации отходов при транспортировке сокращается пространство между производственными операциями.
В цифровом производстве отходом при перемещении может быть потеря времени при переносе артефакта из одной системы в другую. Например, ручной перенос кода между окружениями развертывания [7] ПО.
7
Окружения развертывания – компьютерная система, в которой выполняется ПО. В процессе разработки ПО может переходить в разные окружения – локальное (local, компьютер разработчика), тестовое (test, для тестирования на ошибки и нагрузку), производственное (production, открытое для пользователей).
Для минимизации таких отходов следует использовать инструменты непрерывной интеграции / доставки (CI/CD) [8] .
2.1.4. Потери из-за лишних этапов обработки
В жизни мы часто сталкиваемся с ситуацией, когда дальнейшая «полировка якоря» уже не добавляет ценности продукту. К такого вида расходам можно отнести:
1. Дополнительные операции, например дополнительная полировка.
2. Дополнительное время обработки, например излишнее время закаливания.
8
Непрерывная интеграция / доставка (англ, continuous integration / delivery) – регулярный автоматический процесс сборки продукта из актуальной версии и развертывание в окружениях развертывания.