Академический Документы
Профессиональный Документы
Культура Документы
Аннотация
Если вы интересуетесь гибкими методологиями по управлению проектами и
разработке продуктов, значит, это практическое руководство идеально вам подходит. Борис
Вольфсон уже много лет работает в этой сфере, а в данной книге делится своим опытом,
который может изменить вашу работу, подход к работе в вашей IT-команде, а со временем
и во всей вашей компании.
От других подобных книг эта отличается двумя факторами: сочетанием теории
и практики и описанием самых различных аспектов создания продуктов – от
управления до разработки и аналитики. В рамках теоретической части по управлению
проектами и продуктом описывается современное состояние методологии Scrum и
основы Kanban. Практическая часть посвящена бизнес-моделированию, управлению
требованиями, аналитикой требований, управлению командами, оценкой сроков,
управлению рисками, инженерным практикам разработки (по большей части из
экстремального программирования), контролю и обеспечению качества, внедрению и
масштабированию Scrum.
Начните применять на практике гибкие методологии, чтобы успешно управлять
проектами и создавать продукты!
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Содержание
Предисловие ко второй версии 6
Предисловие к первой версии 7
Об авторе 8
Благодарности 9
Благодарности компаниям и организациям 10
Глава 1. Гибкие методологии 11
Принципы гибких методологий 13
Scrum в двух словах 15
Не Scrum’ом единым 16
Канбан 18
Глава 2. Scrum – гибкий управленческий фреймворк 19
Роли 20
Владелец продукта 20
Команда разработки 20
Скрам-мастер 20
Процессы 22
Спринт 22
Планирование спринта 22
Скрам-митинг 22
Обзор спринта 22
Ретроспектива 24
Артефакты 26
Глава 3. Управление продуктом 27
Построение бизнес-модели 28
Персоны 29
Инструмент Story Mapping 30
Журнал пожеланий продукта 31
Размер журнала пожеланий и стратегическое планирование 33
Определение приоритетов историй пользователя 35
Умные цели для спринта 38
Specific – точные и конкретные цели 38
Measurable – измеримые цели 39
Achievable – достижимые цели 39
Relevant – релевантные цели 40
Time-bound – цели со сроком 40
Лишняя функциональность 42
Глава 4. Управление командой 44
Что такое команда 45
Этапы командообразования 46
Самоорганизация в командах 50
Стили управления 50
Команды уровня 1 51
Команды уровня 2 51
Команды уровня 3 51
Команды уровня 4 51
Лучшие практики управления командой в Scrum 52
3
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Покер-планирование 52
Выбор эталонной задачи 53
Ход покер-планирования 54
Отбор задач на спринт 58
Диаграмма сгорания 61
Доска задач 64
Теории X и Y 67
Теория X 67
Что делать руководителю 67
Теория Y 68
Что делать руководителю 68
X+Y 68
Эффект наблюдателя 69
Не навреди 69
Что делать 69
Глава 5. Управление контрактами 71
Сроки и долгосрочное планирование в Agile 71
Оценка сроков методом PERT 71
Оценка сроков релиза в Scrum-проекте 72
Scrum в заказной разработке 74
Как продать Scrum заказчику 74
Нулевой спринт 74
Практики Scrum, или Как посадить заказчика на 76
итеративную иглу
«Вредные» клиенты 77
Глава 6. Управление рисками 78
Глава 7. Инженерные практики 80
Непрерывная интеграция 81
Разработка через тестирование и разработка с тестами 82
Рефакторинг 84
Парное программирование 85
Формальные инспекции кода 86
Простота архитектуры и метафора системы 87
Коллективное владение кодом и стандарт кодирования 88
Сорокачасовая рабочая неделя 89
Глава 8. Анализ требований 90
Роль системного аналитика 91
UML 92
Процесс ICONIX 93
Стратегия актуализации документации 100
Роль аналитика в Scrum 102
Роль аналитика в канбане 103
Прототипы 104
Глава 9. Масштабирование Agile 105
Организационные структуры 106
Scrum-команда: состав 107
Масштабирование Scrum 108
Scrum of Scrum of Scrum 109
Управление продуктами 109
4
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Борис Вольфсон
Гибкое управление
проектами и продуктами
Предисловие ко второй версии
Вы держите в руках необычную книгу. Она может изменить вашу работу, работу вашей
команды, а со временем и всей вашей компании. Если первая версия книги писалась с целью
поделиться знаниями, то задача этой – помочь всей отрасли стать эффективнее. Написать
вторую версию также побудили почти 20 000 человек, которые скачали электронную версию
первой:
• 12 338 раз с Dropbox (посчитано через Google);
• 7553 раза c «Яндекс. Народ».
6
Б. Вольфсон. «Гибкое управление проектами и продуктами»
7
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Об авторе
8
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Благодарности
Спасибо всем, кто помогал мне в работе над данными материалами, в том числе по
плану внедрения Agile. Полужирным шрифтом выделены авторы наиболее обширных и цен-
ных комментариев, предложений и замечаний: Тимофей Евграшин; Максим Гармаш; Егор
Ковязин; Илья Козлов; Ксения Колосова; Евгений Кривошеев; Наталья Лукьянчи-
кова; Дмитрий Паньшин; Михаил Подоплелов; Михаил Подурец; Сергей Рогачев; Андрей
Свердлов; Евгений Сорокин; Ирина Сурикова; Анна Тарасенко; Асхат Уразбаев; Лия Шаба-
каева.
Особую благодарность также выражаю многочисленным рок– и хард-рок-группам, без
которых создание этой книги было бы невозможно.
9
Б. Вольфсон. «Гибкое управление проектами и продуктами»
10
Б. Вольфсон. «Гибкое управление проектами и продуктами»
11
Б. Вольфсон. «Гибкое управление проектами и продуктами»
12
Б. Вольфсон. «Гибкое управление проектами и продуктами»
13
Б. Вольфсон. «Гибкое управление проектами и продуктами»
14
Б. Вольфсон. «Гибкое управление проектами и продуктами»
15
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Не Scrum’ом единым
Scrum не является единственной гибкой методологией, хотя на данный момент он –
самый популярный среди собратьев. Однако знание и понимание других методологий важно,
чтобы оценивать их преимущества и недостатки. Кроме того, на поздних этапах адаптации
Scrum можно позаимствовать различные практики из этих методологий.
Хотелось бы также поделиться результатами исследования Agile Survey о популярно-
сти гибких методологий.
16
Б. Вольфсон. «Гибкое управление проектами и продуктами»
17
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Канбан
Канбан – это высокоадаптивный инструмент, который требует от команды, решившей
использовать его, соответствующего уровня самоорганизации и дисциплины.
18
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Элементы Scrum
19
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Роли
В Scrum принято выделять три основные роли, которые составляют Scrum-команду:
владелец продукта, скрам-мастер и команда разработки.
Владелец продукта (Product Оwner, менеджер продукта) – это член команды, ответ-
ственный за максимизацию ценности продукта и управление его журналом пожеланий.
Скрам-мастер (Scrum Master) – член команды, который дополнительно отвечает за
процессы, координацию работы и поддержание социальной атмосферы в команде.
Команда разработки (Development Team) – это многофункциональная и самооргани-
зующаяся группа специалистов, которая создает инкремент продукта.
Владелец продукта
Основной задачей владельца продукта является максимизация его ценности через
управление его журналом пожеланий, включая:
Часть этих задач владелец продукта может делегировать членам команды, но он оста-
ется ответственным за них. Кроме того, владелец продукта – это всегда один человек, а
не группы или комитет, и все требования в виде элементов журнала пожеланий поступают
команде через него.
Команда разработки
Команда разработки в конце каждого спринта поставляет потенциально готовый к
релизу продукт. Она состоит из многофункциональных специалистов без разделения на про-
фессии; возможны специализации отдельных ее членов, но ответственность за поставку все
равно лежит на команде в целом.
Скрам-мастер
Скрам-мастер – это член команды, который ответствен за понимание и реализацию
Scrum и помогает в этом следующим субъектам.
20
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Обязанности скрам-мастера
21
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Процессы
Большинство процессов Scrum носят характер встреч, так как данная методология
основана на качественных коммуникациях. Все встречи жестко ограничены по времени
(time-boxed).
Спринт
Спринт – это ограниченная по времени итерация, которая является контейнером для
других процессов в Scrum. В конце спринта создается потенциально готовый к поставке
продукт и начинается следующий спринт. Спринт длится от одной до четырех недель.
Спринт может быть отменен владельцем продукта в случае, если цели спринта уста-
рели.
Планирование спринта
У планирования спринта две основные задачи: выбор элементов журнала пожеланий
для реализации и их декомпозиция. Планирование проводится в самом начале спринта и
обычно занимает не более дня для спринта длиной в месяц.
Скрам-митинг
Скрам-митинг (Daily Scrum, ежедневный скрам, планерка) – собрание членов команды
(с возможностью приглашения владельца продукта) для синхронизации деятельности
команды и обозначения проблем. Каждый член команды отвечает на три вопроса.
Если первый и третий пункты служат для синхронизации деятельности команд, то вто-
рой очень важен для выработки решений проблем: если проблема действительно неболь-
шая, ее можно устранить или выработать решение прямо на скрам-митинге; если серьезная
и требует обсуждения, ее можно решить после скрам-митинга.
Обзор спринта
Обзор спринта (Sprint Review, «демонстрация», или сокращенно «демо») – демонстра-
ция владельцу продукта и заинтересованным лицам работающего функционала продукта,
22
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Если взглянуть еще раз на манифест Agile, в нем есть пункт, который непосредственно
касается демонстраций: «Готовый продукт важнее документации по нему». Действительно,
основной мерой прогресса является функционал нашего продукта, поэтому показывать на
демонстрации надо именно программу. Если заказчик находится не в одном помещении
с вами, используйте специальные средства демонстрации. Гораздо хуже будет отправить
заказчику презентацию или отчет по сделанному функционалу, ведь мы хотим получить
качественную обратную связь.
В обзоре спринта обязательно должна принимать участие вся команда, при этом воз-
можны разные стратегии показа. Антипаттерном можно назвать демонстрацию функцио-
нала одним человеком, например скрам-мастером.
23
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Ретроспектива
В долгосрочном плане ретроспективы (или сокращенно «ретро») являются самой важ-
ной практикой Scrum, ведь именно они позволяют адаптировать и настроить Scrum, делая
из него по-настоящему гибкий фреймворк для управления проектами.
• длина спринта: чем длиннее спринт, тем больше команда успевает сделать и тем
больше материала для обсуждения;
• размер команды: чем команда больше, тем больше надо времени, чтобы у каждого ее
члена была возможность высказаться и тем больше функционала команда успевает сделать;
• наличие проблем: со временем команда решает проблемы, и ретроспективы сокра-
щаются по времени.
Структура ретроспективы
24
Б. Вольфсон. «Гибкое управление проектами и продуктами»
25
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Артефакты
В Scrum определены три артефакта.
26
Б. Вольфсон. «Гибкое управление проектами и продуктами»
27
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Построение бизнес-модели
Наиболее подробно построение бизнес-моделей описано в работе Александра Остер-
вальдера (Alexander Osterwalder) и Ива Пинье (Yves Pigneur) «Построение бизнес-моде-
лей. Настольная книга стратега и новатора» (Business Model Generation: A Handbook for
Visionaries, Game Changers, and Challengers). Бизнес-модели «Канвас» представляют собой
способ визуализации бизнес-моделей, и их можно адаптировать к проектам по разработке
ПО (табл. 3.1).
Такую визуализацию лучше всего проводить с помощью стикеров на доске с участием
всей команды и заинтересованных лиц, например маркетологов и продавцов.
28
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Персоны
Практика анализа персон пришла в управление продуктами из практик User Experience
(опыт использования). Она заключается в описании пользователя создаваемого продукта как
реального персонажа с конкретными ценностями и целями.
Таблица 3.1.
Бизнес-модель в виде Lean Canvas
29
Б. Вольфсон. «Гибкое управление проектами и продуктами»
30
Б. Вольфсон. «Гибкое управление проектами и продуктами»
31
Б. Вольфсон. «Гибкое управление проектами и продуктами»
32
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Как видите, чем позднее планируется реализация того или иного функционала, тем
более крупные фрагменты функционала берутся. Отмечу, что это также согласуется полно-
стью с принципами KISS (Keep it simple, stupid – «Не усложняй, тупица») и YAGNI (You
аin’t gonna need it – «Вам это не понадобится»).
33
Б. Вольфсон. «Гибкое управление проектами и продуктами»
34
Б. Вольфсон. «Гибкое управление проектами и продуктами»
35
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Владелец продукта может либо воспользоваться своей интуицией и опытом для отне-
сения функционала к той или иной категории, либо собрать небольшую группу потенциаль-
ных потребителей (20–30 человек) и провести в ней опрос. Для оценки мы будем рассмат-
ривать отдельные истории пользователей либо целые эпики и задавать по каждой истории
пользователю два вопроса.
1. Как вы отнесетесь к наличию данной функциональности в продукте?
2. Как вы отнесетесь к отсутствию данной функциональности в продукте?
Кроме функциональных требований (историй пользователей), можно
проводить и анализ по нефункциональным требованиям и отображать их
соответствующим образом в журнале пожеланий продукта.
В качестве ответов опрашиваемому пользователю предлагаются следующие варианты
ответов:
• нравится;
• ожидаю этого;
• все равно;
• могу смириться с этим;
• не нравится это.
После такого опроса можно проводить анализ результатов с помощью следующей таб-
лицы (табл. 3.2).
Таблица 3.2.
Анализ результатов
Первые три категории для нашего анализа являются самыми интересными и дают
более глубокое понимание требований по нашему продукту:
• реализовывать требования, которые относятся к обязательным, необходимо до опре-
деленного предела, так как дальнейшие инвестиции в них не увеличат удовлетворенность
пользователей;
• вместо этого стоит сфокусироваться на линейных и привлекательных требованиях,
так как они позволят значительно повысить удовлетворенность клиента.
Таблица 3.3.
Суммы ответов пользователей
Таким образом, можно сделать выводы, к каким типам относятся те или иные функции
исследуемого продукта.
37
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Владелец продукта должен ставить перед собой и командой четкие и понятные цели,
для чего существует несколько критериев, которые собираются в английскую аббревиатуру
SMART («умный») (табл. 3.4).
Таблица 3.4.
Расшифровка SMART
Таблица 3.5.
Запись целей
38
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Таблица 3.6.
Измеримость целей
Недостижимые. При постановке таких задач заранее понятно, что исполнитель с ними
заведомо не справится. Например, нельзя за день нарисовать 1000 качественных макетов для
разных сайтов. Такие задачи перед подчиненными ставить нельзя.
Труднодостижимые. Для выполнения подобных задач исполнителю будет необхо-
димо использовать все свои знания и умения. Например, нарисовать десять вариантов макета
дизайна для сайта за день. Такие задачи команда должна решать, но не постоянно, иначе она
просто перегорит. Поручать подобные задачи следует прежде всего опытным и амбициоз-
ным сотрудникам, для которых они будут своеобразным вызовом. Чем труднее выполнить
поставленную задачу, тем значительнее чувство достигнутого.
Достижимые. Эти задачи точно соответствуют уровню знаний и навыков исполни-
теля. Например, нарисовать дизайн макета сайта по утвержденному наброску и брифу за
один день. Такие задачи необходимы для передышки между более сложными и выработки
уверенности в своих силах.
Легкодостижимые. Подобные задачи не соответствуют компетенции сотрудника, и
ему будет не очень интересно их выполнять. Например, нарисовать кнопочку для формы в
заданном стиле за день. Такие задачи желательно поручать только новым сотрудникам для
интеграции в команду.
39
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Таблица 3.7.
Срочность задач
40
Б. Вольфсон. «Гибкое управление проектами и продуктами»
SMART
41
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Лишняя функциональность
Может показаться, что большое количество функций является конкурентным преиму-
ществом, но почти всегда это не так. Более того, таким продуктом обычно сложно пользо-
ваться, сложно его разрабатывать, да еще его очень сложно поддерживать.
Если со стартапами все понятно, то для анализа проектов с жизненным циклом, дли-
тельность которых измеряется годами, можно рассмотреть следующую формулу стоимости
разработки и поддержки «фишки»:
42
Б. Вольфсон. «Гибкое управление проектами и продуктами»
43
Б. Вольфсон. «Гибкое управление проектами и продуктами»
44
Б. Вольфсон. «Гибкое управление проектами и продуктами»
45
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Этапы командообразования
Чтобы группа людей превратилась в сплоченную команду, она должна пройти
несколько этапов. Наиболее распространенной моделью командообразования является
модель Такмана.
Этапы командообразования
46
Б. Вольфсон. «Гибкое управление проектами и продуктами»
2. Бурление.
На этом этапе участники осознают свои цели и определяют вектор движения. Обра-
тите внимание, что векторы разнонаправлены между собой и с направлением, которое необ-
ходимо для достижения цели.
3. Нормализация.
Следующим этапом идет такой, когда члены команды притираются друг к другу и начи-
нают двигаться сонаправленно.
47
Б. Вольфсон. «Гибкое управление проектами и продуктами»
4. Функционирование.
На данном этапе команда становится самоуправляемой и способной оптимизировать
свою производительность, поэтому векторы, направленные к цели, удлиняются.
команды (и, в частности, скрам-мастера) является максимально быстрый переход между эта-
пами (табл. 4.1).
Таблица 4.1.
Приблизительное время для различных этапов командообразования
49
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Самоорганизация в командах
Давайте сначала четко определим, что не является самоорганизующейся командой и
что не входит в ее полномочия.
Во-первых, команда не может сама себе ставить цели, они всегда приходят извне. Как
правило, задачи спускаются сверху – от руководства или из отдела продаж.
Во-вторых, команда не определяет состав сама, она опять же формируется сверху.
Однако могу сказать, что на определенном этапе взросления, когда команда может объек-
тивно оценивать вклад участников, ей можно доверить даже самостоятельное формирова-
ние состава команды.
Что же может команда, если цель ей ставится сверху? Она может выбрать максимально
эффективный способ, которым будет достигать этой цели. Эффективность в данном случае
можно измерить сроком, составом и ценой работ. При этом команде приходится адаптиро-
ваться к ограничениям, которые заданы в проекте, и условиям окружающей среды, потому
что, как правило, механизмов влияния на них у команды нет.
Децентрализация и умение адаптироваться свойственны не только командам разра-
ботчиков. Посмотрите на колонию муравьев, как они строят муравейник и выполняют
повседневную работу. Такая же параллельная работа ведется и в гибких командах: кон-
троль и «власть» децентрализованы и распределены между членами команды. Соответ-
ственно, решения, из которых складывается конечный результат, принимаются каждым чле-
ном команды, разделяя ответственность, но не размывая ее между всеми.
Стили управления
В зависимости от этапа командообразования необходимы различные стили лидерства.
Попробуем использовать для этого модель ситуативного лидерства, которую разработали
Херси и Бленчард, и объединим ее с моделью Такмана.
50
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Команды уровня 1
Командам данного уровня требуется предписывающий стиль лидерства. Лидер должен
точно указывать, что команде необходимо сделать. Таким командам нужно выработать уве-
ренность, и они не могут на данном этапе стать настоящими Agile-командами.
Команды этого уровня еще не могут пробежать марафон, поэтому неплохо реализо-
вывать небольшие и несложные проекты. Такой подход позволяет получать положитель-
ные результаты достаточно часто, что дает возможность выработать уверенность в своих
силах. Для этого необходимо выбрать итерации достаточно маленького размера (не более
двух недель) и помогать команде изо дня в день.
Командам уровня 1 требуется указывать, какие улучшения необходимо делать. Как пра-
вило, начинать стоит с базовых инженерных практик, например непрерывной интеграции и
модульного тестирования.
Команды уровня 2
Команды этого уровня не могут стать гибкими, но хотят это сделать. Таким коман-
дам требуется продающий стиль лидерства. Команде необходимо ставить высокоуровневые
цели и задавать направление движения. Основной целью является повышение командных
качеств.
Эти команды могут стать гибкими, но им требуется сильный тренер или скрам-мастер,
который научит их вырабатывать свои решения и полагаться на них. Конечно, часть реше-
ний команды будут ошибочными. В этом нет ничего страшного, ведь именно на ошибках
учатся. Особое внимание нужно уделить ретроспективам как основному методу выработки
улучшений в Scrum.
Команды уровня 3
Команды данного уровня могут стать гибкими, но не хотят этого. Такой команде тре-
буется участвующий стиль лидерства. Ей нужно меньше ставить цели, потому что команде
необходимо опираться полностью на свои решения. Команда уже фактически является гиб-
кой, до этого состояния – всего один шаг.
Такие команды часто сосредоточены на тактических задачах, поэтому тренер или
скрам-мастер должен максимально внимательно относиться к стратегическим задачам и
долгосрочному планированию.
Команды уровня 4
Команды этого уровня хотят и могут стать (и часто являются) гибкими, и им необходим
делегирующий стиль лидерства.
Лидер не должен помогать принимать решения команде, но может помогать в выборе
методов поиска решений. Скрам-мастер должен сосредоточиться на максимизации произ-
водительности больше, чем на соблюдении сроков.
51
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Покер-планирование
Для планирования спринта необходимо иметь качественный журнал пожеланий, что
означает следующее:
• все элементы журнала пожеланий должны иметь уникальную числовую важность;
• самые важные элементы журнала пожеланий должны быть уточнены и понятны всей
команде и владельцу продукта;
• владелец продукта должен четко представлять, что будет реализовано в рамках каж-
дого элемента журнала пожеланий.
Основным результатом планирования спринта является журнал пожеланий спринта –
список задач, которые команда планирует реализовать в рамках спринта. Поскольку длина
спринта в Scrum жестко фиксирована, то команда определяет количество элементов журнала
пожеланий (объем работ), которые она может реализовать. Можно данную ситуацию отоб-
разить на классическом треугольнике управления проектами.
Для определения, какие элементы журнала пожеланий войдут в спринт, можно исполь-
зовать покер-планирование.
Покер-планирование (Planning poker) – консенсусная относительная оценка историй
пользователей командой. Этот вид оценки не входит в классический Scrum, но является пат-
терном для оценки историй пользователей.
52
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Покер-планирование
53
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Ход покер-планирования
После обсуждения истории пользователей начинается первая раздача, при которой все
участники команды выкладывают карты рубашкой вверх (на схеме скрам-мастер находится
в правом нижнем углу).
54
Б. Вольфсон. «Гибкое управление проектами и продуктами»
55
Б. Вольфсон. «Гибкое управление проектами и продуктами»
56
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Второй раунд
57
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Консенсусная оценка
58
Б. Вольфсон. «Гибкое управление проектами и продуктами»
59
Б. Вольфсон. «Гибкое управление проектами и продуктами»
60
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Диаграмма сгорания
Для мониторинга прогресса в Scrum используется специальный график – диаграмма
сгорания (Burndown Diagram). По горизонтальной оси на таком графике откладываются дни
спринта, а по вертикальной – количество оставшихся «пунктов» и/или закрытых историй
пользователей. Дополнительно строится идеальная диаграмма сгорания, которая показывает
запланированный ход работ.
Отставание от плана
62
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Опережение графика
В таком случае команде необходимо в журнал пожеланий спринта взять одну или
несколько дополнительных историй пользователей с высшим приоритетом, которые не
вошли в спринт.
63
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Доска задач
Самым наглядным инструментом мониторинга и управления внутри спринта явля-
ется доска задач, которая по функционалу похожа на аналогичный инструмент из кан-
бана. Однако, поскольку в Scrum имеются фиксированные итерации, доска по завершении
спринта «обнуляется» – с нее убираются все стикеры.
На стикерах указывается наименование истории пользователя, и они двигаются по
соответствующим состояниям во время спринта. В начале спринта все истории пользовате-
лей находятся в первом столбце, отсортированные вертикально по важности.
64
Б. Вольфсон. «Гибкое управление проектами и продуктами»
65
Б. Вольфсон. «Гибкое управление проектами и продуктами»
66
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Теории X и Y
Существуют две фактически противоположные друг другу теории в мотивации людей:
X и Y.
Теории X и Y
Теория X
Согласно теории X, люди работают, только чтобы получать зарплату. Думаю, все стал-
кивались с такими сотрудниками: пришел с утра, посидел до обеда, потом потерпел до
вечера и домой. Они не работают, а отбывают положенное время. Для них работа измеряется
часами, а не достигнутыми результатами.
67
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Теория Y
Теория Y гласит, что люди в принципе высокомотивированы на достижение резуль-
татов и сама работа приносит им удовольствие. Опять же всем нам знаком типаж людей
с большой самомотивацией. У них и вокруг них всегда кипит работа (передаю привет
моей команде), они успевают за день сделать не одно дело, и их производительность труда
намного выше среднего.
X+Y
Обычно руководитель работает на стыке обеих теорий, используя тот или иной подход
в зависимости от ситуации. В общем случае надо стараться работать по принципу теории Y,
зажигая людей, в крайнем – прибегать к методам теории X, четко объясняя, в чем именно
проблема.
Для работы в рамках Scrum команда должна состоять в основном из людей, которые
больше соответствуют теории Y, иначе команда не будет самоорганизованной и эффектив-
ной.
68
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Эффект наблюдателя
Скажи, как ты будешь измерять мою эффективность, и я
скажу, как я буду себя вести.
Э. Гольдратт
Чтобы узнать, посолен ли борщ, достаточно опустить в него два электрода, а затем
пустить по ним ток. Если появится запах хлора, значит, борщ уже посолен.
В физике есть такое понятие, как эффект наблюдателя: если над системой ведется
наблюдение, оно вносит изменение в ее поведение. Очень интересно этот эффект проявля-
ется в организации работы команд разработчиков (да и в любых производственных процес-
сах). Как только мы начинаем считать любые метрики, мы вносим изменения в поведение
команды и отдельных ее членов.
Не навреди
С точки зрения управления мерить в численном виде (вводить метрику) – идея, на пер-
вый взгляд, очень здравая. Мы получаем точные данные и на их основе производим необхо-
димые действия. Однако, к сожалению, не все так просто: как только мы вводим метрику,
поведение команды начинает меняться. Команда и каждый ее член начинают подстраиваться
под введенную нами метрику.
Далеко за примерами ходить не надо. Все знают понятие «индусский код»: как только
разработчикам начинают платить за количество написанных строчек кода, они начинают
писать больше кода, зачастую бессмысленного, забывают о рефакторинге, так как его делать
становится невыгодно, и т. д. Таким образом, наше начинание по замеру производительности
оборачивается против нас.
Можно попробовать сократить количество дефектов в продукте, для чего считать,
сколько ошибок сделал каждый разработчик. Лучших работников будем награждать бону-
сами, а к худшим применять санкции. Все просто и прозрачно. На деле получится по-дру-
гому: разработчики будут спорить по каждой ошибке с тестировщиками, появится боязнь
и желание избегать рисков. В результате мы получим отсутствие инициативы и нежелание
выполнять поставленные задачи (меньше задач – меньше ошибок).
Подойдем с другой стороны и будем считать, сколько ошибок находят тестировщики.
В этой ситуации также появятся косвенные эффекты, ведь каждый тестировщик будет рас-
ценивать малейшее отклонение как дефект.
Вывод из приведенных выше примеров простой: при введении метрик необходимо
руководствоваться прежде всего принципом «Не навреди».
Что делать
Проанализируйте, как измерения могут повлиять на поведение команды и отдельных
ее членов. Причем анализ надо проводить в первую очередь по поводу неочевидных аспек-
тов, которые могут проявиться не сразу. Подумайте, какие метрики могут послужить осно-
вой для обсуждений, например, на ретроспективах, если вы используете Scrum. Может быть,
ваши измерения в действительности никому не нужны и вы меряете просто потому, что
можете мерить?
69
Б. Вольфсон. «Гибкое управление проектами и продуктами»
70
Б. Вольфсон. «Гибкое управление проектами и продуктами»
(Макс – Мин) / 6.
71
Б. Вольфсон. «Гибкое управление проектами и продуктами»
72
Б. Вольфсон. «Гибкое управление проектами и продуктами»
73
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Нулевой спринт
О нулевом спринте обычно многие молчат или пишут совсем немного. Буквально год
или два назад наконец-то начали активно обсуждать эту фазу проекта, причем на данный
момент в основном разбирается продуктовая часть.
Главным документом в проекте, с которого обязательно стоит начать его разработку,
является видение проекта. Этот краткий документ описывает, что представляет собой про-
дукт, какой будет его аудиторией, основные фазы проекта, бизнес-модель для монетизации
и т. д. Словом, он заменяет целый пакет документов, который принято использовать в тяже-
ловесных методологиях. Для создания видения можно использовать инновационные игры,
разного рода мозговые штурмы и фреймворки.
Следующим этапом идет выявление персон и их активностей (вплоть до отдельных
историй пользователя), которые фактически являются легковесным и более визуальным
вариантом экторов и пользовательских сценариев. Уже традиционно данную активность
Scrum-команды реализуют в виде построения карт историй (Story Mapping), результатом
которого становятся доски и целые стены с визуализацией активностей в проекте.
74
Б. Вольфсон. «Гибкое управление проектами и продуктами»
75
Б. Вольфсон. «Гибкое управление проектами и продуктами»
76
Б. Вольфсон. «Гибкое управление проектами и продуктами»
«Вредные» клиенты
Гибкий подход подразумевает выстраивание по-настоящему партнерских отношений
с заказчиком. Необходимо выработать стратегию работы с «вредными» клиентами, ведь
построить с ними партнерские взаимоотношения чрезвычайно сложно.
Давайте подумаем, как дифференцировать заказчиков по «вредности» и как (и стоит
ли) работать с «вредными». Сначала определимся, кого считать «вредным» клиентом.
Обычно в отношении заказчиков используется термин «лояльность». В самом простом слу-
чае клиентов можно разделить на три группы: нелояльные, средние и лояльные.
Лояльный клиент доставляет меньше всего проблем, обычно делает заказ на большую
сумму, чем средний. К тому же он часто делает повторные заказы. Таких клиентов надо
холить и лелеять, для чего можно разработать программу повышения лояльности – от предо-
ставления скидок до специальных условий работы.
Значительную часть клиентов можно отнести к категории нормальных, или средних. С
ними не возникает особых проблем, но и чудес лояльности они не покажут.
Самым плохим вариантом являются нелояльные, или проблемные, клиенты. Для каж-
дой организации нелояльность заказчиков определяется по-разному. Во всех сферах дея-
тельности к таким клиентам относят тех, кто не соблюдает в той или иной форме догово-
ренности, и прежде всего это касается финансовой части. Если говорить про разработку, то
здесь стоит выделить заказчиков, которые сами срывают сроки: не предоставляют матери-
алы, не успевают проверять сделанную работу и пр.
Нелояльного клиента необходимо определить до появления проблем. Это можно сде-
лать, наведя справки и в процессе непосредственного общения. Далее нужно рассчитать воз-
можные риски – проблемы с оплатой, различные задержки. В самом простом случае следует
пометить в CRM, что с данным заказчиком могут быть проблемы.
Следует хорошо подумать, нужен ли вам этот клиент, ведь с ним не получится рабо-
тать на 100 % по Agile. Здесь подход должен быть комплексным: во внимание нужно при-
нять как стоимость и сроки проекта, так и возможные риски.
77
Б. Вольфсон. «Гибкое управление проектами и продуктами»
78
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Таблица 6.1.
Оценка вероятности и рисков
79
Б. Вольфсон. «Гибкое управление проектами и продуктами»
80
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Непрерывная интеграция
Практика непрерывной интеграции заключается в использовании специального про-
граммного обеспечения, которое получает свежую версию исходного кода проекта и произ-
водит сборку. При наличии проблем выводится и рассылается соответствующее сообщение.
Отмечу, что в сборку проекта обязательно входит запуск автоматических тестов. Побочным
продуктом являются разного рода отчеты о проекте, которые позволяют проводить анализ
его внутреннего качества.
Непрерывная интеграция является своеобразным скелетом экстремального програм-
мирования, на который затем добавляются «мускулы» в виде других практик.
81
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Такой подход называется разработкой через тестирование или разработкой через тесты
(Test Driven Development). Процесс работы разбивается на три этапа:
• красный – пишем неработающий тест;
• зеленый – минимальными усилиями заставляем тест работать;
• рефакторинг – устраняем дублирования и приводим код в порядок.
Для выбора кода, который следует покрыть тестами, можно использовать следующую
схему.
82
Б. Вольфсон. «Гибкое управление проектами и продуктами»
83
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Рефакторинг
Рефакторинг – это изменения исходного кода без изменения функциональности для
улучшения внутреннего качества (простота кода, гибкость архитектуры и т. д.). Для проведе-
ния рефакторинга желательно знать «запахи кода» и непосредственно приемы рефакторинга
(подробнее – в книге «Рефакторинг. Улучшение существующего кода» Мартина Фаулера).
84
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Парное программирование
При парном программировании код пишется двумя разработчиками за одним компью-
тером, причем один из разработчиков играет роль «пилота», а второй – «штурмана».
85
Б. Вольфсон. «Гибкое управление проектами и продуктами»
86
Б. Вольфсон. «Гибкое управление проектами и продуктами»
87
Б. Вольфсон. «Гибкое управление проектами и продуктами»
88
Б. Вольфсон. «Гибкое управление проектами и продуктами»
89
Б. Вольфсон. «Гибкое управление проектами и продуктами»
90
Б. Вольфсон. «Гибкое управление проектами и продуктами»
91
Б. Вольфсон. «Гибкое управление проектами и продуктами»
UML
Классическим подходом к описанию требований в виде модели является UML, кото-
рый позволяет описать буквально каждый аспект системы в визуальном виде. Однако такой
подход не является гибким:
• UML-диаграммы – это не конечный продукт, пользователям он не принесет ценность;
• UML-диаграммы быстро теряют актуальность при начале разработки;
• UML очень объемен (более десяти видов диаграмм, 900-страничное официальное
руководство) и избыточен, так как часть диаграмм фактически дублируют друг друга;
• UML описывает систему слишком подробно, часть знаний можно хранить и переда-
вать в устном виде либо в форме текста;
• UML неявно подразумевает водопадную модель разработки.
Если мы говорим о гибких процессах, то применение тех или иных
средств визуализации системы должно основываться на здравом смысле. Ни
одна диаграмма не заменит коммуникации в команде. Диаграммы подходят
для описания сложных бизнес-процессов со сложной логикой поведения.
Наталья Лукьянчикова, аналитик
92
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Процесс ICONIX
Одним из вариантов гибкого анализа требований (и частично моделирования) является
использование и адаптация процесса ICONIX.
ICONIX – это методология анализа требований, основанная на прецедентах использо-
вания. В рамках этого процесса используется небольшое подмножество UML, что делает его
более легковесным.
Сам процесс разработки продукта в ICONIX носит практически водопадный характер,
поэтому его необходимо адаптировать для итеративной методологии, к которой относится
Scrum.
Более подробно рассмотрим, какие диаграммы предлагает нам ICONIX и как будет
происходить процесс анализа требований и моделирования. В качестве примера возьмем
небольшое приложение по расчету кредита на сайте.
На первом этапе происходит анализ вариантов использования, который является свое-
образным аналогом построения карт историй.
93
Б. Вольфсон. «Гибкое управление проектами и продуктами»
94
Б. Вольфсон. «Гибкое управление проектами и продуктами»
95
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Диаграмма классов
Для примера разберем один из вариантов использования и опишем его более подробно
в виде диаграммы робастности, на которой будут отражены:
• граничные объекты – интерфейс взаимодействия с пользователями;
• котроллеры – бизнес-логика и различные алгоритмы;
96
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Диаграмма робастности
Последний пункт очень важен, ведь между анализом и архитектурой существует прак-
тически пропасть, которую эта диаграмма призвана заполнить.
97
Б. Вольфсон. «Гибкое управление проектами и продуктами»
После такого анализа можно описать подробности алгоритма или логики в диаграмме
последовательности.
98
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Диаграмма последовательности
99
Б. Вольфсон. «Гибкое управление проектами и продуктами»
100
Б. Вольфсон. «Гибкое управление проектами и продуктами»
101
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Получается, что аналитик как бы опережает команду на один спринт. У такого подхода
есть свои плюсы и минусы.
Преимущества и недостатки
102
Б. Вольфсон. «Гибкое управление проектами и продуктами»
103
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Прототипы
Для заказчика прототипы играют такую же важную роль, какую
диаграммы играют для команды, – особенно в том случае, когда именно
от аналитика поступает предложение, как воплотить в жизнь то, что хочет
заказчик
Ксения Колосова, руководитель проектов
Важным элементом работы системного аналитика является создание прототипа. В
зависимости от используемых бизнес-процессов и наличия специалистов прототип может
быть общим, отражая лишь функциональность, либо конкретным и даже интерактивным.
104
Б. Вольфсон. «Гибкое управление проектами и продуктами»
105
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Организационные структуры
Организационная структура (оргструктура) – это способ упорядочить сотрудников
организации для достижения ее целей. Прежде всего, оргструктура создается и поддержи-
вается для:
• координации деятельности работников;
• обозначения границ ответственности.
Хочу отметить, что оргструктура зависит от многих факторов и описанный здесь вари-
ант можно (и нужно) адаптировать в соответствии с окружением и бизнес-процессами орга-
низации. Очевидно также, что оргструктура – это не монолит, который остается на весь жиз-
ненный цикл компании: она меняется с течением времени и развитием организации.
Виды оргструктур. Кратко рассмотрим, какие организационные структуры суще-
ствуют и какие мы можем использовать для масштабирования Scrum.
Дивизионная оргструктура объединяет в дивизионы полный коллектив для разра-
ботки связанного семейства продуктов или организации работ по географическому при-
знаку.
Функциональная оргструктура объединяет в функциональные единицы (обычно
отделы) сотрудников одной специальности.
Командная (проектная) оргструктура объединяет в небольшую группу работников
разных специальностей для реализации проекта.
Матричная оргструктура представляет собой смесь функциональной и команд-
ной. В зависимости от степени участия/подчиненности/отчетности матричные оргструк-
туры бывают сильными, когда сотрудник больше относится к команде, и слабыми, когда
работник больше относится к функциональному отделу.
На разных уровнях компании могут использоваться различные виды организационных
структур в зависимости от потребностей.
106
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Scrum-команда: состав
Команда в Scrum состоит из небольшого количества людей – от пяти до девяти человек,
чтобы можно было осуществлять эффективные коммуникации. Один из членов команды ста-
новится скрам-мастером (SM), ответственным за процессы и социальный климат в команде.
Владелец продукта (PO) не является членом команды в прямом смысле этого слова, но
ставит команде цели с помощью требований в журнале пожеланий (BL).
Состав Scrum-команды
107
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Масштабирование Scrum
Небольшие команды чаще показывают хорошие результаты, чем большие, поэтому
необходимо по возможности вести разработку компактными командами. К сожалению,
часто бывает, что объем проекта и сроки его реализации просто не позволяют вести разра-
ботку 5–9 людьми и приходится задействовать несколько команд.
108
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Управление продуктами
Для масштабирования деятельности продуктовых команд владельцы продуктов
(Product Owner, PO) проводят Meta Scrum под руководством главного владельца продукта
(Chief Product Owner).
109
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Meta Scrum
110
Б. Вольфсон. «Гибкое управление проектами и продуктами»
111
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Распределенный Scrum
Следует отметить, что вышеописанные схемы подходят для организации распределен-
ной разработки. Для этого необходимо ввести региональные дивизионы и закрепить за ними
руководителя программы и главного владельца продукта.
Распределенный Scrum
112
Б. Вольфсон. «Гибкое управление проектами и продуктами»
113
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Активности тестировщиков
114
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Результаты опроса
На диаграмме видно, что в большинстве случаев тестировщиков в той или иной мере
не хватает, поэтому их работу необходимо максимально автоматизировать, чтобы на выпол-
нение тестов уходило минимум ручного труда.
115
Б. Вольфсон. «Гибкое управление проектами и продуктами»
116
Б. Вольфсон. «Гибкое управление проектами и продуктами»
117
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Виды потерь
Классически выделяются семь видов потерь:
• перепроизводство;
• ожидание;
• ненужная транспортировка;
• лишние этапы обработки;
• лишние запасы;
• ненужные перемещения;
• дефекты.
В самой популярной книге о производственной системе Toyota «Дао Toyota» авторы
обозначили восьмой вид потерь: нереализованный творческий потенциал сотрудников.
Традиционно выделяют также еще два вида потерь:
• му́ри (перегрузка);
• му́ра (неравномерность).
118
Б. Вольфсон. «Гибкое управление проектами и продуктами»
119
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Производственная система
«Тойоты» (Toyota Production System, TPS)
Ниже приведены 14 принципов TPS.
1. Философия долгосрочной перспективы: можно пойти на убытки для достижения
отдаленной цели.
2. Производственный поток должен быть непрерывным.
3. Канбан: производство по системе «точно вовремя» без промежуточных запасов.
4. Хейдзунка: равномерное распределение нагрузки на всех этапах технологического
процесса.
5. Андон и дзидока: автоматическая остановка производства с целью решения про-
блем.
6. Формализация накопленных знаний: достигнутое нужно делать новым стандартом.
7. Визуальный контроль: иногда простая лампочка эффективнее компьютерного мони-
тора.
8. Внедрять только проверенные технологии.
9. Воспитывать собственных лидеров, искренне исповедующих философию компании.
10. Формировать и воспитывать рабочие команды, в которых каждый искренне испо-
ведует философию компании.
11. Уважать и развивать партнеров-поставщиков.
12. Генти гаубицу: перед тем как начать разбираться в ситуации, увидеть все своими
глазами.
13. Немаваси: принимать коллективные решения только после согласия большинства,
но внедрять немедленно.
14. Хансей и кайзен: любой процесс можно постоянно анализировать и совершенство-
вать.
120
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Кайзен
Совершенствоваться не обязательно. Выживание – дело
добровольное.
Э. Деминг
Японское слово «кайзен» состоит из двух иероглифов, которые можно перевести как
«изменения, направленные на улучшения».
Кайзен
121
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Инструменты кайзена
Кроме философии и культуры, которые, безусловно, важны в долгосрочной перспек-
тиве, кайзен предлагает использовать набор инструментов для оптимизации производствен-
ных процессов. В этом разделе мы рассмотрим наиболее часто применяемые.
Пять «почему»
Самый простой инструмент, который может применяться даже в устной форме. Его
суть состоит в поиске коренных причин проблем (например, дефектов) и принятии мно-
гоуровневых контрмер. Для этого по отношению к проблеме задается пять раз вопрос
«Почему?», чтобы проникнуть в ее суть (табл. 11.1).
Таблица 11.1.
Пять «почему»
122
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Диаграммы Исикавы
Еще одним инструментом для анализа проблем, но уже на уровне организации в целом,
является диаграмма Исикавы. На ней также отображаются проблемы, но они заранее сгруп-
пированы по нескольким областям, например:
• методология;
• требования;
• разработка;
• контроль качества.
123
Б. Вольфсон. «Гибкое управление проектами и продуктами»
124
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Контрольные карты
Данный инструмент используется для выявления несистематических отклонений и
устранения вариаций. Для этого собираются данные и упорядочиваются, например, по вре-
мени. Затем вычисляется среднее значение и стандартное отклонение от него. В качестве
примера приведу контрольную карту по дефектам, которая показывает пользу от внедрения
инженерных практик.
Классическим применением является сравнение некоторых элементов системы по
выбранному показателю. Например, мы хотим определить, насколько наши проекты хорошо
тестируются. Для этого можно собрать простую статистику – количество дефектов в финаль-
ной версии продуктов в равных временных промежутках на одного разработчика – и постро-
ить по ним контрольную карту.
По ней видно, что проект № 9 имеет несистемные отклонения. Если количество дефек-
тов больше, чем при стандартных отклонениях, то необходимо выработать меры, прежде
всего процессные, для улучшения качества.
Контрольные карты бывают разных видов, например классические контрольные карты
Шухарта ((Госстандарт России, 1999) и (Уилер и др., 2009)). Различия касаются формул
и значений для выбора среднего значения и контрольных пределов. В контрольных кар-
тах Шухарта для определения предела используется не стандартное отклонение, а размах.
Существует также набор правил для трактовки контрольных карт, например правила Western
Electric и правила Нельсона.
Отдельно подчеркну, что нельзя использовать такие карты напрямую для оценки
сотрудников: большая часть проблем относится к процессам, и работники часто просто не
могут на эти причины повлиять.
125
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Диаграмма Парето
Этот инструмент позволяет выявить модули, которые содержат определенный процент
дефектов. Обычно получается соотношение, близкое к 20/80: 20 % модулей содержат 80 %
дефектов.
Именно на эти модули стоит обратить внимание:
• покрыть их дополнительно тестами;
• провести дополнительные инспекции кода.
Диаграмму Парето можно использовать для анализа модулей по дефектам, но можно
этим и не ограничиваться: аналогичный анализ можно провести по количеству вносимых
изменений.
126
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Диаграмма Парето
Итоги
127
Б. Вольфсон. «Гибкое управление проектами и продуктами»
В результате у Ройса получается совсем другая схема работы, нежели та, на которую
обычно ссылаются.
128
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Авторы Agile-манифеста
В феврале 2001 года в местечке под названием Сноуберд в штате Юта собрались 17
специалистов (консультантов и практиков), чтобы обсудить легковесные методики разра-
ботки. В результате родился документ «Манифест гибких методологий разработки» (Agile
Manifesto). Позволю себе привести список авторов манифеста и краткую информацию о них.
Кент Бек – создатель разработки через тестирование и экстремального программиро-
вания. Автор нескольких книг на эти темы и соавтор JUnit.
Майк Бидл – основатель и генеральный директор e-Architects Inc., консалтинговой
компании, которая специализируется на разработке распределенного ПО. Он также является
соавтором книги Scrum, Agile Software Development, написанной совместно с Кеном Швабе-
ром.
130
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Crystal Clear
Crystal Clear – это легковесная гибкая методология, созданная Алистером Кокбер-
ном. Она предназначена для небольших команд из 6–8 человек для разработки некритиче-
ских бизнес-приложений. Как и все гибкие методологии, Crystal Clear больше опирается на
людей, чем на процессы и артефакты.
Crystal Clear использует семь методов/практик, три из которых являются обязатель-
ными.
1. Частая поставка продукта.
2. Улучшения через рефлексию.
3. Личные коммуникации.
4. Чувство безопасности.
5. Фокусировка.
6. Простой доступ к экспертам.
7. Качественное техническое окружение.
Как видите, все практики характерны для семейства Agile-методологий. В графиче-
ском виде практики Crystal Clear можно изобразить таким образом.
131
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Жизненный цикл проекта включает в себя пять стадий (первые две фактически объ-
единяются).
1. Определение реализуемости.
2. Экономическое обоснование.
3. Создание функциональной модели.
132
Б. Вольфсон. «Гибкое управление проектами и продуктами»
4. Проектирование и разработка.
5. Реализация.
133
Б. Вольфсон. «Гибкое управление проектами и продуктами»
134
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Feature-driven development
Feature-driven development (функционально-ориентированная разработка) – методоло-
гия, созданная Джеффом Де Люка (Jeff De Luca). Разработка ведется в пять этапов.
1. Построение модели.
2. Создание списка функций.
3. Планирование реализации функций.
4. Создание архитектуры для функций.
5. Реализация функций.
Достоинством этой методологии следует считать изначальную поддержку больших
групп разработчиков, так как отдельные функции разрабатываются отдельными мини-
командами во главе с ведущим разработчиком. Разделение и координация происходят на
этапах 3–4.
135
Б. Вольфсон. «Гибкое управление проектами и продуктами»
ICONIX
ICONIX – это методология разработки программного обеспечения, сфокусированная
на анализе требований и моделировании. В рамках ICONIX используется подмножество
UML для анализа требований:
• диаграмма вариантов использования;
• диаграмма классов;
• диаграмма робастности;
• диаграмма последовательности.
Об использовании методологии ICONIX см. разд. «Процесс ICONIX» гл. 8.
136
Б. Вольфсон. «Гибкое управление проектами и продуктами»
137
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Принципы внедрения
Цикл Деминга
ShuHaRi
Внедрение методологии и практик можно разбить на три этапа. Важно, чтобы компа-
ния и отдельные команды их прошли, не застряв на одном из них. Названия:
138
Б. Вольфсон. «Гибкое управление проектами и продуктами»
139
Б. Вольфсон. «Гибкое управление проектами и продуктами»
140
Б. Вольфсон. «Гибкое управление проектами и продуктами»
141
Б. Вольфсон. «Гибкое управление проектами и продуктами»
142
Б. Вольфсон. «Гибкое управление проектами и продуктами»
143
Б. Вольфсон. «Гибкое управление проектами и продуктами»
144
Б. Вольфсон. «Гибкое управление проектами и продуктами»
145
Б. Вольфсон. «Гибкое управление проектами и продуктами»
146
Б. Вольфсон. «Гибкое управление проектами и продуктами»
147
Б. Вольфсон. «Гибкое управление проектами и продуктами»
148
Б. Вольфсон. «Гибкое управление проектами и продуктами»
149
Б. Вольфсон. «Гибкое управление проектами и продуктами»
150
Б. Вольфсон. «Гибкое управление проектами и продуктами»
151
Б. Вольфсон. «Гибкое управление проектами и продуктами»
152
Б. Вольфсон. «Гибкое управление проектами и продуктами»
153
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Неделя № 14 (завершение
«идеального» шестого спринта)
Цель: завершение «идеального» спринта.
1. Завершение шестого спринта.
2. Релиз продукта.
3. Post-mortem релиза в рамках ретроспективы: анализ релиз-берндауна.
154
Б. Вольфсон. «Гибкое управление проектами и продуктами»
Список литературы
• A Practical Guide to Feature-Driven Development [Текст] / Stephen Palmer, John Felsing.
• A Practical Guide to Seven Agile Methodologies, Part 2 [Электронный ресурс] / Rod
Coffin, Derek Lane. – http://www.devx.com/architect/article/32836/1954.
• Advanced Topics in Agile Planning [Электронный ресурс] / Cohn
Mike. – http://www.mountaingoatsoftware.com/system/presentation/file/132/Advanced-Topics-
Agile-Planning-Cohn-NDC2010.pdf?1276713148.
• Agile Development with the ICONIX Process: People, Process and Pragmatism [Текст] /
Rosenberg Doug, Stephens Matt и Collins-Cop Mark. – 2005.
• Agile Metrics [Текст] / Алименков Николай.
• Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process
[Текст] / Ambler Scott W. – 2002.
• Agile Project Management with Scrum [Текст] / Schwaber Ken.
• Agile Retrospectives: Making Good Teams Great [Текст] / Esther Derby, Diana Larsen.
• Agile Software Development with Scrum (Series in Agile Software Development) [Текст] /
Ken Schwaber, Mike Beedle. – 2001.
• Cause-effect diagrams [Текст] / Книберг Хенрик. – 2009.
• Crystal Clear – Alistair Cockburn (2005) [Электронный ресурс] / Björkholm Tomas. –
http://www.crisp.se/rd/Crystal_Clear.pdf.
• Crystal Clear: A Human-Powered Methodology for Small Teams [Текст] / Cockburn
Alistair. – 2004.
• DSDM: Business Focused Development [Текст] / DSDM Consortium.
• Kano Model – How to delight your customers [Электронный ресурс] / Phillips Lawrence
(Laurie). – http://www.slideshare.net/LawrencePhillips/kano-model-rev-1.
• Leading a Self-Organizing Team [Электронный ресурс] / Cohn Mike. – 2011. – http://
www.mountaingoatsoftware.com/presentations/142-leading-a-selforganizing-team.
• Prioritizing Your Product Backlog [Электронный ресурс] / Cohn
Mike. – http://www.mountaingoatsoftware.com/system/presentation/file/127/Prioritizing-
Product-Backlog-Cohn-ADP2010.pdf.
• QA in Agile [Электронный ресурс] / Алименков Николай. – 2008. – http://
www.slideshare.net/alimenkou/qa-in-agile.
• Retrospectives [Электронный ресурс] / Дмитриев Сергей. – 2011. – http://
www.slideshare.net/Blackie6/retrospectives-agiledays-2011.
• Scaling Agile to Work with Distributed Teams [Электронный ресурс] / Cohn
Mike. – http://www.mountaingoatsoftware.com/system/presentation/file/133/Scaling-Distributed-
Agile-Cohn-NDC2010.pdf.
• Scrum и Kanban: выжимаем максимум [Текст] / Книберг Хенрик и Скарин Матиас.
• Scrum и XP: заметки с передовой [Текст] / Книберг Хенрик.
• Scrum. Гибкая разработка ПО [Текст] / Кон Майк. – 2011.
• Small Hyper-Productive Teams [Электронный ресурс] / Алименков Николай. – 2011. –
http://www.slideshare.net/alimenkou/small-hyper-productive-teams-it-brunch-10150627.
• Test Driven Development for Embedded C [Текст] / Grenning James.
• The Enterprise and Scrum [Текст] / Schwaber Ken.
• The Pragmatic Programmer: From Journeyman to Master [Текст] / Andrew Hunt, David
Thomas. – 1999.
• Use Case Driven Object Modeling with UML: Theory and Practice [Текст] / Rosenberg
Doug, Stephens Matt. – 2007.
155
Б. Вольфсон. «Гибкое управление проектами и продуктами»