Книга: Постигая Agile
Глава 9. Канбан, поток и постоянное совершенствование
Канбан – это метод улучшения процессов, используемых гибкими командами. Команды, применяющие его, начинают понимать, как они создают программное обеспечение, и постепенно улучшают его. Канбан, так же как Scrum и ХР, затрагивает образ мышления человека. В частности, он требует бережливого мышления. Мы уже узнали, что Lean – это образ мышления, ценности и принципы. Команды, использующие Канбан, начали с применения мировоззрения Lean. Это обеспечивает прочный фундамент, который в сочетании с Канбаном дает возможность улучшить процессы. Когда команды используют Канбан для усовершенствования, они сосредоточены на устранении потерь из процессов (в том числе муда, мура и мури – потери неровности, перегрузки и бесполезности, о которых мы узнали в главе 8).
Канбан – это технологический термин, адаптированный Дэвидом Андерсоном для разработки программного обеспечения. Вот как он описывает взаимоотношения с Lean в своей книге «Канбан. Альтернативный путь в Agile»: «Канбан-метод представляет собой сложную адаптивную систему, предназначенную для активации lean-решений в рамках организации». Есть команды, которые применяют Lean и бережливое мышление для разработки программ без использования Канбана, но на сегодняшний день это наиболее распространенный метод (и эффективный для многих agile-практиков) внедрения бережливого мышления в организацию.
Канбан отличается от гибких методологий, таких как Scrum и ХР. Scrum преимущественно ориентирован на управление проектами: объем работы, который должен быть проделан, чтобы эта работа была выполнена, и результат, необходимый пользователям и стейкхолдерам. ХР ориентирована на разработку программного обеспечения, ее ценности и практики строятся вокруг создания благоприятных условий для развития и формирования привычек, помогающих разработчику писать простой и легко изменяемый код.
Канбан помогает команде улучшить способы разработки программного обеспечения. Команда, использующая этот метод, имеет четкое представление о том, какие действия совершает при создании программного продукта, как взаимодействует с остальной компанией, как образуются потери, вызванные неэффективностью и неравномерностью, и каким образом со временем исправить ситуацию, устранив основную причину этих потерь. Когда команда улучшает способ создания ПО, это традиционно называется процессом усовершенствования. Канбан – хороший пример применения гибких идей (таких как последний ответственный момент) для создания метода усовершенствования процесса, который команды могут легко принять.
Практики Канбана позволяют стабилизировать и улучшить систему разработки программного обеспечения. Актуальный список основных практик можно найти в группе Kanban Yahoo!
Во-первых, следуйте основополагающим принципам:
• Начните с того, что вы делаете сейчас, уважайте имеющиеся роли, обязанности и должностные инструкции.
• Договоритесь об эволюционном развитии.
• Поощряйте лидерство на всех уровнях.
Затем принимайтесь за основные практики:
• визуализацию;
• ограничение числа задач в работе (WIP);
• управление потоком;
• сделайте правила явными;
• введите петли обратной связи;
• развивайтесь совместно и экспериментируйте (используя моделирование или научный подход).
На начальном этапе не требуется внедрять все шесть практик. Частичная реализация признается поверхностной и предполагает постепенное углубление, поскольку большинство практик принимаются и выполняются с большим потенциалом.
В этой главе вы узнаете о Канбане, его принципах, взаимоотношениях с Lean и практиках. Мы расскажем, как сосредоточение на потоке и теории массового обслуживания поможет вашей команде внедрить бережливое мышление в практику и создать культуру постоянного совершенствования.
Описание: команда, работающая над созданием приложения для камеры мобильного телефона в организации, купленной большой и многопрофильной интернет-компанией
Кэтрин – первый разработчик
Тимати – второй разработчик
Дэн – их руководитель
- Достоинства и недостатки потоков
- V Совершенствование процесса
- Стандартные потоки: stdin, stdout, stdeir, stdaux, stdprn.
- 1.2 Процесс, контекст процесса и потоки
- Не допускайте того, чтобы поток пользовательского интерфейса блокировался на длительное время
- Входящий поток потенциальных клиентов (LeadGen)
- 4.3 Потоковый редактор sed
- Денежный поток из Интернета
- 7.3.4. Сервисное постоянное представительство в Модельной Конвенции ООН
- Применение основного потока
- Пример использования фонового потока для выполнения отдельной задачи
- Листинг 5.8. (dup2.c) Перенаправление выходного потока канала с помощью функции dup2()