В самой популярной книге о производственной системе Toyota «Дао Toyota» авторы обозначили восьмой вид потерь: нереализованный творческий потенциал сотрудников.
Традиционно выделяют также еще два вида потерь:
• му́ри (перегрузка);
• му́ра (неравномерность).
Инструменты бережливого производства. Бережливое производство ПО
Принципы бережливого производства можно применить и в разработке программного обеспечения.
Уменьшение потерь.
Видов потерь в разработке программного обеспечения достаточно много: от переключения между задачами до реализации лишнего функционала. Помните правило 20/80: 20 % функционала продукта приносят 80 % ценности заказчику, и именно гибкие методологии позволяют эти 20 % функционала выявить и назначить им максимальную важность.Фокусировка на обучении.
Весь процесс создания программного обеспечения фактически состоит из обучения: с каждой новой функцией мы узнаем что-то новое, поэтому, как и для любой другой инженерной деятельности, следует сосредотачиваться на обучении.Встроенное качество.
Необходимость высокого качества продуктов никто не оспаривает, но редко кто действительно вкладывает в это хотя бы чуточку усилий. В нашей индустрии есть устоявшиеся практики по контролю и обеспечению качества – это автоматические тесты и разработка в стиле TDD.Позднее принятие решений.
Очень важно принимать решения как можно позже. Самым ярким примером здесь является создание архитектуры приложения. В противоположность подходу Big Up Front Design мы создаем архитектуру только для текущего функционала, следуя принципам KISS и YAGNI.Быстрая поставка.
Бережливое производство ПО предполагает максимально быстрые и частые поставки для получения обратной связи.Уважение к людям.
Люди – это основа любой мыслительной деятельности, к которой, несомненно, относится разработка ПО. Мы должны уважительно относиться к командам, предоставляя им максимум полномочий и ответственности.Оптимизация системы целиком.
Мы должны оптимизировать всю систему целиком, не занимаюсь субоптимизацией отдельных сегментов.Производственная система «Тойоты» (Toyota Production System, TPS)
Ниже приведены 14 принципов TPS
.1. Философия долгосрочной перспективы: можно пойти на убытки для достижения отдаленной цели.
2. Производственный поток должен быть непрерывным.
3. Канбан: производство по системе «точно вовремя» без промежуточных запасов.
4. Хейдзунка: равномерное распределение нагрузки на всех этапах технологического процесса.
5. Андон и дзидока: автоматическая остановка производства с целью решения проблем.
6. Формализация накопленных знаний: достигнутое нужно делать новым стандартом.
7. Визуальный контроль: иногда простая лампочка эффективнее компьютерного монитора.
8. Внедрять только проверенные технологии.
9. Воспитывать собственных лидеров, искренне исповедующих философию компании.
10. Формировать и воспитывать рабочие команды, в которых каждый искренне исповедует философию компании.
11. Уважать и развивать партнеров-поставщиков.
12. Генти гаубицу: перед тем как начать разбираться в ситуации, увидеть все своими глазами.
13. Немаваси: принимать коллективные решения только после согласия большинства, но внедрять немедленно.
14. Хансей и кайзен: любой процесс можно постоянно анализировать и совершенствовать.
Кайзен
Совершенствоваться не обязательно. Выживание – дело добровольное.
Японское слово «кайзен» состоит из двух иероглифов, которые можно перевести как «изменения, направленные на улучшения».
Кайзен
На практике кайзен – это стратегия постоянного улучшения путем небольших изменений. Для реализации такого подхода необходимо следовать принципам кайзена, которые отлично согласуются с гибкими методологиями.
Фокус на клиентах
– мы должны быть сфокусированы на клиентах, причем не только на словах, но и на деле.Непрерывные изменения
– все аспекты нашей производственной системы должны постоянно улучшаться небольшими шагами, для чего мы будем активно обсуждать процессы на ретроспективах.Открытое признание проблем
– мы должны честно и открыто признавать и обсуждать все проблемы не для поиска виноватых, а для оптимизации процессов.Создание сообществ
– организация сообществ (необязательно формальных) является важной частью оптимизации производства, потому что позволяет организовать обсуждения для инициативы снизу.Управление проектами с помощью межфункциональных команд
– команды в Scrum максимально многофункциональны и включают в себя всех необходимых специалистов для реализации проекта.