2. Зачем это рассказывать?
2
Дифирамбов и
восторгов про Scrum ―
и так очень много
Критики тоже хватает
А вот описания
реального опыта, да
еще и «отечественного»
― очень мало
3. Примерный план
3
Три кита Scrum
коммуникации / самоорганизация / жесткий time-boxing
Среда внедрения
пара слов про Компанию и проектные команды
Принятие решения о переходе на Scrum
выбор методологии / как всех убедить / пропаганда
Перевод первых команд
выбор тренера / выбор команды / подбор параметров / внедрение
Опыт работы по методологии Scrum
Проблемы с: taskboard / Scrum-митингами / ретроспективами /
демонстрациями / соблюдением time-boxing-а // Nokia-тест
Перевод последующих команд, заключение
4. 4 Пара слов про Scrum
Общая схема
Терминология
Три «фишки»
Литература
5. О термине
5
Scrum – термин из Регби
«схватка», которая назначается для возобновления игры
(аналог «вбрасывания» в хоккее)
команды выстраиваются друг напротив друга по три линии,
а мяч вбрасывается в центр
6. Как тикает Scrum-механизм
6
Daily Scrum Meeting
Демонстрация
Ретроспектива
Ведет
Product Owner
Sprint Planning
(PO + команда)
7. Терминология
7
XP Scrum
User stories Product backlog,
Sprint backlog
Planning game Sprint planning,
Planning poker
Iteration Sprint
Standup Meeting Daily Scrum Meeting
Представитель Product Owner
заказчика в команде
8. Терминология: Scrum-мастер,
8
Product Owner, Scrum Lord
Поросята (pigs) – активные участники в решении задач (разработчики,
бизнес-архитекторы, DBA, тестировщики), образуют команду
в команде не предполагается специальных ролей за исключением
вспомогательной: Scrum Master (организация meeting-ов, устранение помех) –
всегда по совместительству!
Цыплята (chickens) – те, кто вовлечены в процесс, но не выполняют
проектных заданий (выносятся за пределы команды):
Product Owner – замена Project Manager-а, отвечает за продукт, не программист
Scrum Lord – тот, кто учит команду Scrum-у, следит за соблюдением правил
9. Терминология:
9
taskboard, burndown chart
остаток что делаем что выполнено график «сгорания» работ
sprint backlog сегодня за sprint (точки ставятся после каждого scrum
meeting-а)
Если всё
сделано
досрочно, то
новые задачи
берутся отсюда
10. Терминология:
10
Product Backlog
ID Name Imp Es t How to demo Notes
1 Депозит 30 5 Залогиниться, открыть Требуются UML-
карточку депозита, диаграммы
положить $10, открыть последовательности
карточку баланса и проведения операции.
проверить, что остаток Про шифрование пока
увеличился на $10 не беспокоиться
2 Просмотр 10 8 Залогиниться, кликнуть Использовать
истории на «Транзакции». постраничный
собственных Выполнить дипозит, вывод больших
вернуться к
транзакций таблиц. Дизайн – по
транзакциям и
аналогии со
проверить, что
выполненная операция справочником
показывается пользователей
11. Терминология:
11
Sprint Planning, Planning Poker
При оценке трудоемкости
используется дискретная шкала
(см. картинку)
Каждый участник команды
независимо дает оценку
трудоемкости задачи
Разногласия обсуждают,
процедуру повторяют (пока все
не сойдутся на приблизительно
одной цифре)
«0» – эта «задача» уже решена
«?» – нет никаких идей (вообще)
«чашка кофе» – требуется перерыв
12. Терминология:
12
Actual Velocity, Focus Factor
Скорость разработки (Actual Velocity) – количество реализованных Story
Points за Sprint
Focus factor – отношение скорости
разработки к потраченным чел.-дням
Как правило, Focus factor оценивается исходя из опыта предыдущего Sprint-а
13. Три ключевых фишки Scrum: №1
13
Эффективные коммуникации
Устные – самые эффективные
Достигается за счет общего участия в Daily
Scrum Meeting-ах, планировании,
ретроспективе, демонстрации
Обеспечивает хорошее и качественное
распространение информации
Повышает вовлеченность членов команды
14. Три ключевых фишки Scrum: №2
14
Самоорганизующаяся команда
Помогает «не убить» самомотивацию
Обеспечивает автоматическую подстройку под обстоятельства
Подталкивает членов команды к кросс-функциональности
Разгружает управляющее звено от принятия лишних решений
15. Три ключевых фишки Scrum: №3
15
Жесткий time-boxing
Заключается в следующем:
дата окончания итерации жестко
фиксируется и не переносится
t
объем работ на итерацию тоже Ограниченный
фиксируется и должен снизу объем
соблюдаться работ
время daily scrum meeting-ов
жестко фиксируется в рамках
итерации
Отход от этого – это форс-мажор
(бывает, но не должно быть чаще, чем Фиксированные начало и окончание
раз в 4-5 итераций)
Обеспечивает предсказуемый,
управляемый и абсолютно
прозрачный ход проекта
16. Литература
16
Доступна бесплатно в электронном
виде:
http://www.infoq.com/minibooks/
scrum-xp-from-the-trenches
Стала для нас своего рода библией
Scrum и сильно помогла
18. www.custis.ru
18
Создание приложений enterprise-уровня на
заказ
полный цикл, начиная от предпроектного обследования, заканчивая
внедрением и спопровождением
большинство проектов имеют достаточно долгую историю развития
(самые долгожители: уже почти 10 лет)
В данный момент:
90 человек (всего в Компании) / 9 проектных команд
от 3 до 12 человек каждая / в среднем – 6 человек в команде
Заказчики:
ТС «Спортмастер» / Центральный аппарат Банка России /
ЕРКЦ г. Саратова и др. городов / Собинбанк / Депаратамент
образования Москвы / …
19. Scrum-команды
19
Дата
Команда Состав Технологии
перехода
12 чел. DBMS Oracle, Oracle Portal,
Fus ion- начало Java (JSF + Hibernate + Swing
• 2 аналитика
Dokofr сентября 2007 + …), C++, …
• 2 инженера
6 чел. D B MS O racle, P L/ Q L,
S
конец M4, .Net, D elphi
R adey • 1 аналитик
сентября 2007
• 1 инженер
.Net (1.1 – 3.5), AS P .Net, LINQ,
конец 5 чел.
TechEvol D B MS O racle, MyS QL
сентября 2007 • все разработчики
7 чел. D B MS O racle, P L/ Q L, M4,
S
конец X ML, .Net
TN-S hop • 1 аналитик
октября 2007
• 3 инженера
5 чел. D B MS O racle, P L/ Q L, M4,
S
начало X ML, .Net
TN-MDM • 1 аналитик
марта 2008
• 1 инженер
20. 20 Принятие решения…
Что выбрать?
Начальство против!
А народ?!
21. Что выбрать
21
eXtreme Programming (XP)
Scrum
Feature Driven Development (FDD)
OpenUP
…
Scrum, дополненный практиками из XP
22. Семейство Agile-методологий
22
Уровень процессов Еще есть:
• ASD
Управление
проектами SCRUM Взаимодейств. FDD • Crystal Clear
команд, • DSDM
Индикация • Lean
прогресса
Управление • AUP
проектом Самоорг. команда, Требования,
Daily Meetings, Итерации,
Дизайн по месту Unit-тесты
Стандарт
кодирования,
Code review
Кодирование XP Жесткость
процессов
Анархия Водопад
23. Как убедить начальство
23
Больше всего напрягала
самоорганизация:
активные vs. пассивные
индивидуальные планы развития
орг. структура внутри проекта
персональная ответственность
система компенсации
Сильно помогли «Scrum and XP from the
trenches» и наличие тренера/консультанта
24. А народ Scrum – это круто!
24
о б ерия нер
ит ему ый т н
ел дов ре
е!
е
ьш
зн – к н енн лез
ол
о
ла ма п
ьн
ш
пр есь
В
иг
ач
Вот тока не надо
заливать…
Внутренний семинар, разговоры за
«рюмкой чая», совместное изучение
«Scrum and XP from the trenches»
25. 25 Перевод первых команд
Выбор тренера
Кого 1-ого «под нож»?
Подбор параметров
Как переходить?!
26. АГА! Я подсёк
Выбор тренера клиента!
26
искали 2 месяца
выбора почти нет
зато то, что есть,
весьма высокого уровня!
УРА! Мы нашли
Считаем, что нам повезло! тренера!
27. Выбор пионеров Я – Scrum.
27
Я тебя спасу!
много
ярких
лидеров
«слабые»
всё гладко много проблем
За что?!
У меня всё
было Ок!
28. Подбор параметров
28
Большинство команд начинали с:
длина итерации – две недели (10 раб. дней)
единица оценки трудоемкости – идеальные человеко-
часы (или человеко-дни для крупных задач)
способ оценки трудоемкости – Planning Poker
Focus-factor – 0.5
Scrum-мастер – самовыдвиженец
время начала Scrum-митинга – в 12:00 или 15:00
Сейчас все команды используют 2-х недельные
итерации, а Focus-factor разниться от 0.4 до 0.65
29. Как внедрять
29
Главное – быстро!
Консультации с лидерами Итерация №0 Итерация №1
и руководством команды (2 недели) (2 недели)
(примерно 1 неделя)
! ! ! ! ! ! !
Планирование Демо Планирование
Ретро
Тренинг
(весь день для всей команды)
! – присутствие тренера
30. 30 Опыт использования Scrum
Сложности с
Taskboard
Scrum-митингами
Ретроспективой
Демонстрацией
Time-boxing-ом
Nokia-тест
31. Одна команда, несколько
31
проектов/модулей
Ложные предрассудки:
2. несколько проектов/модулей для одной Scrum-команды –
это плохо
3. смешивать в одной итерации работы по разным
проектам/модулям – нельзя
Всё отлично работает (переключаться даже интересно!)
главное – чтобы Product Owner был один!
Но есть проблемы с достижением кросс-
функциональности в командах, где раньше была
специализация по проектам/модулям
попробуйте сделать несколько «моно-продуктовых»
итераций
32. Taskboard
32
Оценка трудоемкости мешает при выполнении задачи
пишите оценку трудоемкости с другой стороны стикера
Стикеры отклеиваются и падают
используйте магниты или пробковые доски
Сделать то-то…
20 sp
33. - На Scrum-митинг
Scrum-митинги становись!
- Что делал вчера?!
33
На Scrum-митинге присутствуют
не все (опоздания)
выбор времени митинга
не используйте штрафы
Scrum-митинг превращается
в отчет перед Scrum-мастером
разъяснительная работа
со временем проходит
Scrum-митинг затягивается,
переходит в обсуждения
«карандашик»
песочные часы
34. Ретроспектива
34
Важная практика:
2. точка подстройки процесса!
3. снятие напряженностей и
недомолвок
Либо вообще про нее
забывают (по началу)
пригласить опытного ведущего
Либо вырождается в
формальность (со временем)
менять ведущих
расширять круг тем
читать умные книжки
35. Демонстрация
35
Тяжело обеспечить присутствие
заказчика на демо
проще подстроиться
раз в пару итераций ездить на
площадку к заказчику
Демонстрация затягивается из-за
тех. проблем
тупо готовиться
Делали-делали, а сделали не то
писать how-to-demo
зарисовывать vision
36. Time-boxing
36
Что делать, если у команды не хватает самомотивации для
соблюдения жесткого time-boxing-а:
чем выше активный интерес к проекту «со стороны», тем
выше (само)мотивация внутри команды:
на митингах
на демо
иногда на Scrum-митингах
Не штрафовать!
Полезно немного
не успевать («прессинг»)
37. Критерии: Scrum / не-Scrum ?
37
Процесс достаточно гибкий и Я – скрипач
адаптивный али нет?
Адаптация и кастомизация в
процессе работы по Scrum
зачастую уводят слишком
далеко от канонической
трактовки…
Каковы критерии, что это всё
еще Scrum?
Какие принципы являются
ключевыми? Т.е. что нельзя
нарушать?
38. Nokia-тест
38
QCon London 2006: Jeff Sutherland «Scrum and not-Scrum»
http://www.infoq.com/interviews/jeff-sutherland-scrum-rules
Nokia использует Scrum
Nokia консультирует Jeff
В результате родился
«тест»
39. Nokia-тест: итеративность
39
У вас итерации фиксированы, т.е. начинаются в
определенное время и заканчиваются в назначенное
время?
Длина итерации не превышает 6 недель?
В конце итерации вы имеете работающее ПО?
Вам не нужна детальная спецификация для того, чтобы
начать итерацию?
Важно иметь работающее ПО в конце итерации: вы
проводите тестирование во время процесса разработки?
Если все ответы – «ДА», то это итеративный
процесс в полном смысле этого слова
40. Nokia-тест: Scrum-ность
40
У вас есть Product Owner, т.е. есть кто-то, кто представляет
заказчика и работает с вами?
Если у вас есть Product Owner, ведет ли он Product Backlog, т.е.
список «фич», которые нужно запрограммировать?
Приоритезирован ли он по важности для заказчика? Есть ли
оценка трудоемкости по каждому пункту?
Строите ли вы график сгорания работ (burndown chart) во время
итерации, чтобы видеть, сколько работы осталось, и успеваете
ли вы к концу итерации?
Во время итерации команда работает по принципу
самоорганизации, т.е. менеджеры не вмешиваются в работу
команды по ходу итерации?
Если и здесь все «ДА», то это Scrum
41. 41 Заключение
Перевод последующих команд
Пробуйте!
Контакты
42. Перевод последующих команд
42
Помогайте страждущим Не давите на скептиков
а то начнут «самопалить» сами придут
43. Не бойтесь попробовать!
43
Scrum может быть хорошим дополнением к вашим
навыкам, приемам,
know-how, практикам
Разгружает
management
Обеспечивается
прозрачность
Повышает
вовлеченность и
интерес к работе
большинству программистов очень нравится!
44. Рады будем пообщаться!
44
Приходите в гости!
Давайте обмениваться опытом!
Сами с интересом бы посмотрели как оно у других
Бибичев Андрей
andrew@custis.ru
www.custis.ru