Процессные заболевания и методы их лечения © ScrumTrek.ru, 2009 Асхат Уразбаев ScrumTrek
Цель улучшения процессов разработки в проекте Эффективное достижение бизнес целей проекта © ScrumTrek.ru, 2009
Эффективность = соблюдение ограничений © ScrumTrek.ru, 2009
Явные ограничения Разработка с использованием технологий Microsoft Использование «нашего» фреймворка Обойтись существующей командой Уложиться в бюджет © ScrumTrek.ru, 2009
Неявные, но подразумеваемые ограничения Соблюдение УК РФ Отсутствие несчастных случаев Заказчик должен быть доволен © ScrumTrek.ru, 2009
НЕявные и Неподразумеваемые ограничения Архитектура должна быть «крутая» Менеджер должен получить повышение после проекта Наш отдел должен получить всю славу © ScrumTrek.ru, 2009
Как добиться высокой эффективности? Rational Unified Process, Prince2, CMMi, ISO9000, Scrum, Extreme Programming, PMBOK, P+, Evo, FDD, OpenUP, Crystal, Lean development, some text, nobody will be able to recognize, on the screen anyway. © ScrumTrek.ru, 2009
Методология как … …сборник рецептов RUP полезно сравнивать с буфетом или рестораном (с) Doug Foote RUP полезно сравнивать с буфетом или рестораном …коллекция лучших практик CMMI is a collection of best practices…(с) Wikipedia CMMI is a collection of best practices… …минимальный набор практик Do not change Scrum (с) Ken Schwaber Do not change Scrum © ScrumTrek.ru, 2009
Если существует самый эффективный метод, почему методов так много?
Три проблемы методологии One size doesnt fit em all Lack of rationale Lack of understanding © ScrumTrek.ru, 2009
Проект = организм? Процессное заболевание Дисфункция, приводящая к недостижению или неэффективному достижению целей проекта Описание проблемы первично Рецепт вторичен © ScrumTrek.ru, 2009
Что можно сделать с процессным заболеванием? Можно вылечить Проблемы больше нет Можно купировать Проблема не исчезла, но больше не беспокоит Можно объявить индивидуальной особенностью Поменяем определение «эффективности» или цели проекта © ScrumTrek.ru, 2009
Симптом Болезнь Симптом = на что жалуются люди Болезнь = что является причиной неэффективного достижения цели Симптом "У нас заказчик неадекватный» Болезнь Слабая связь с заказчика и разработчика © ScrumTrek.ru, 2009
Дисфункции © ScrumTrek.ru, 2009
Группа 1. Инфекции Нарушения обмена информацией Проблемы с распределением ответственности © ScrumTrek.ru, 2009
Пример инфекции. Тестировщик против программиста Симптомы Много открытых багов Баги часто возвращаются тестировщикам с пометкой «By design» Система уходит в тестирование в полуразобранном состоянии Конфликты разработчик – тестировщик Причины Программисты не отвечают за качество продукта © ScrumTrek.ru, 2009 «Все в порядке, сейчас пофиксим!»
Еще инфекции Неадекватный" заказчик Плохая связь разработки с заказчиками Низкая вовлеченность/мотивация разработчиков Низкий уровень ответственности разработчиков Команда не соблюдает сроки разработки Оценкой работ занимается заказчик, а не команда © ScrumTrek.ru, 2009
Лечение инфекций Наладим обмен веществ информацией Короткие итерации, Daily Scrum, планирование, демонстрации и т.д. Повысим иммунитет самоорганизацию команды Коллективное принятие решений, прозрачность, Shared Vision, ретроспектива и т.д. © ScrumTrek.ru, 2009
Лечение инфекций В узком смысле Scrum Итеративность = прозрачность Самоорганизация В широком смысле Определить роли и ответственности всех участников процесса Agile: ответственность может нести команда! © ScrumTrek.ru, 2009
Чеклист Role. Есть ли ответственный за решение проблемы? Commit. Он знает, что он ответственный? Знает ли он область своей ответственности? Openness. Все ли заинтересованные (ЗЛ) лица знают, кто ответственый? Rights. Имеет ли ответственный эксклюзивные права на принятие решений в его области ответственности? FUN. Получает ли ответственный удовлетворение от решения проблемы? Means. Есть ли у него все необходимые средства для решения проблемы? Communication. Все ли ЗЛ информируются о том, как проблема решается? Feedback. Существует ли постоянная обратная связь по результатам работы? © ScrumTrek.ru, 2009
Группа 2. Токсины Внешние по отношению к команде ограничения, влияющие на эффективность обмена информацией или правильное разделение ответственности © ScrumTrek.ru, 2009
Примеры токсинов Эффективность коммуникации Распределенная разработка Языковой барьер Разница во времени Удаленный заказчик "Отдел тестирования" Разделение ответственности Персональное бонусирование "Пошареные" члены проектной команды Проекты Fixed Price © ScrumTrek.ru, 2009
Работа с токсинами Обмен информацией Лечение. Убрать токсин Купирование. Средства, облегчающие обмен информацией Документация (Wiki, Word, Sharepoint, Scrum Notes etc) Коммуникация (skype, videoconference, и т.д.) Личные контакты (командировки, видео, «тимбилдинг») Разделение ответственности Лечение. Убрать токсин Купирование. Прокси - ответственный © ScrumTrek.ru, 2009
Группа 3. Физическая форма Проблемы объема жира документации Проблемы качества мышечной массы кода © ScrumTrek.ru, 2009
Примеры проблем с физической формой Объем документации Требования плавают в течении итерации Никто не помнит почему мы приняли такие странные решения Очень много переделок, которые можно было избежать Качество кода Долгий полный цикл тестирования Много «наведенных» дефектов Время на исправление дефекта невозможно оценить © ScrumTrek.ru, 2009
Коммуникации в проекте © ScrumTrek.ru, 2009
У кого из них нормальный вес?
© ScrumTrek.ru, 2009 Идеальный вес
Набор физической формы Как правило, длительный процесс Нужно планировать работу над формой Обязательно осознавать свои возможности Процесс набора должен быть облегчен по максимуму Практики Технологический долг TDD, Test Automation Definition of Done Шаблоны RUP/OpenUP Собственные шаблоны © ScrumTrek.ru, 2009
Группа 4. Неврология Фундаментальные дисфункции Бизнес-цель неясна Бизнес-цель недостижима Бизнес-цель отсутствует Ограничения эффективности несовместны © ScrumTrek.ru, 2009
Кретинизм Бизнес цель неясна Лечение Product Owner Product Management Vision & Biz Vison © ScrumTrek.ru, 2009
Галлюцинации Бизнес-цель недостижима Лечение Диагностика рынком Динамично корректировать цель © ScrumTrek.ru, 2009
Мозг мертв. Вегетативная кома Проект еще существует, но необходимости в нем нет Лечение Эвтаназия © ScrumTrek.ru, 2009
Шизофрения. Раздвоение личности Ограничения эффективности несовместны Как правило, означает наличие "политики" Лечение Реформа внутри организации Купирование Product Owner ограждает команду от политики © ScrumTrek.ru, 2009
Есть и другие дисфункции Рак. Некомандное поведение Недостаточность. Отсутствие всех необходимых навыков у команды Незрелость. Непрофессионализм команды © ScrumTrek.ru, 2009
Общие замечания Оптимизировать процесс в целом Заниматься болезнью, а не симптомами Тяжелая болезнь может скрывать более легкую © ScrumTrek.ru, 2009
Понимать процесс разработки ПО © ScrumTrek.ru, 2009
Развитие идеи Сделать каталог процессных дисфункций Собрать best practices лечения Подробности тут: © ScrumTrek.ru, 2009
Конец Будьте здоровы! Вопросы? © ScrumTrek.ru, 2009