Правильные процессы Process Design for Fun and Profit
Правильный процесс ведет к правильному результату
Если мы получаем не правильный результат, значит мы используем не правильный процесс
Правильный процесс ведет к правильному результату Достижение любого результата возможно с помощью правильного процесса
Правильный процесс ведет к правильному результату ВСЕ проблемы наших проектов можно решить, используя процессы
Правильный процесс ведет к правильному результату Самые высокие стандарты качества наших проектов достижимы путем построения и постоянного улучшения процесса разработки
Пример процесса
Процесс – договоренность о процедурах и правилах выполнения определенного аспекта деятельности команды
Проблемы
Маленькие проблемы: Краткосрочные Конкретные Предотвращать!
Большие проблемы: Долгосрочные Обобщенные Решать!
Долгосрочные проблемы Краткосрочные проблемы
Процессное мышление Мыслить на уровне процесса Как решить проблему и предотвратить ее повторное появление? Какой процесс требует изменения или удаления в связи с изменившейся ситуацией? Чего не хватает в наших процессах, чтобы достичь определенного результата?
Бенефиты процессов Проект на авто-пилоте Высокое качество результата Минимизация стресса и конфликтов Предсказуемость и стабильность
Характеристики хорошего процесса Неизбежно ведет к желаемому результату Простота и легковесность Стабильность Масштабируемость Самовоспроизведение Автоматизированность Fun
Часть 2. Дизайним процесс
Process design == Software design Подходы Паттерны Компоненты Инструменты
Value-drive design ЦЕННОСТИ ПРИНЦИПЫ ПРАВИЛА И ПРОЦЕДУРЫ
Value-drive design 1. Определить ценность – желаемый долгосрочный результат 2. Определить принципы – способы достижения желаемого результата 3. Определить процедуры и правила – что, кому, когда и как нужно делать, чтобы осуществить выбранный способ достижения результата
(Де-) централизация процесса
Pull vs Push
Backlog 1. Сделать логин экран 2. Оптимизировать генерацию репорта 3. Добавить график 4. Исправить багу XXX
Scrum
Continuous deployment Commit Unit and integration testing on CI Build Functional testing Deploy to server (test, demo, production) Monitoring
Continious deployment Functional testing 1. Stop production line 2. Find and fix the problem 3. Root cause analysis (five whys) 4. Resume production line
Итерационная разработка
Другие компоненты и инструменты Daily scrum Acceptance checklist Continious integration server Auto-testing Мониторинг и alerting Issue tracker
Часть 3. Внедряем процесс
Основные причины провала процессных улучшений 1. Процесс не понят, не принят всеми участниками 2. Участники процесса не относятся к нему серьезно 3. Процесс сам по себе не применим или не приносит результата 4. О принятом улучшении просто забыли 5. Осознанный и неосознанный сабботаж
Процесс улучшения процесса Process master If broken it is, fix it you should!
Процесс улучшения процесса Публикация процесса Чтобы помнили
Процесс улучшения процесса Общий commitment Касается каждого
Ретроспектива Обсуждение и принятие процессных улучшений 1. Что было хорошего? Как это можно превратить в процессное улучшение? 2. Что было плохого? Как этого можно избежать в будущем с помощью процессного улучшения?
Review процессов Соответствует ли описанный процесс фактическому? Регулярно, но не слишком часто Выкидывать протухшие процессы Оцениваем соответствие
Чеклист оценки процессного улучшения Улучшение поддерживает установленные принципы и ценности Улучшение приносит ощутимый результат Более простого способа достичь того же результата не существует, или он не приемлим Улучшение неизбежно приводит к желаемому результату
Чеклист внедрения процессного улучшения Вся команда участвовала в обсуждении улучшения и понимает, чем оно обусловлено Произнесен вслух общий коммитмент Описание процесса составлено и опубликовано Описание всем понятно Назначена дата review результатов использования процесса
Защита процесса Исключения – фатальны 1. Если процесс не работает – его следует изменить, а не игнорировать 2. Если для чего-то определен процесс, то оно должно выполняться только по процессу 3. Никаких исключений. Разница между 0 и 1 - огромна
Reenforcement Возобновление Принятые процессные решения забываются Необходимо о них напомянать
Часть 4. Next actions
Challenge 1. Соберите в своей команде ретроспективу. Ограничьте ее 30 минутами 2. Определите одну-две самые острые долгосрочные проблемы 3. Разработайте процессное улучшение, используя подходы, паттерны и компоненты из доклада 4. Оцените и внедрите улучшение, используя чеклисты из доклада 5. Поделитесь результатами в блоге
Q & A