Scrum
Scrum! Lovely scrum! Lovely scrum!




        Eduard (@index01d) Antsupov, 2012
Команда
●   Зовут x01d
●   Появились в августе 2010 г.
●   8 человек в штате
●   3 ключевых программиста
●   3-5 проектов в работе одновременно
●   Еда обходится в полтора раза дороже аренды офиса!
●   Друзей много
●   Но нам мало

● Фриланс (http://lookubra.x01d.com/)
● Сбор и анализ данных в сети интернет (мы много
  знаем про OAuth-протокол v1-2, DOM, открытые API и
  методы сбора и анализа данных из социальных сетей,
  обнаружение групп, деревья решений, фильтрацию
  документов...)
● Интеграция социальных сетей в сайты и веб-сервисы
Начало. Нет методологии.



Nokia 6120

18 кв. м
Постановка задачи. ТЗ. Водопад.
Постановка задачи. ТЗ. Водопад.

                          Потом всё поменяли
                          Можно было не вырабатывать




Страшно
ошибиться
                                            Делали долго...
                                            Получилось не то

            Не успели :
            (

                                          ПАНИКА и УЖАС!
Scrum! - The New Product Development Game
Методология гибкой
    разработки
Набор инструментов
    управления
   разработкой
Фреймворк для
разработки сложных
продуктов и систем
Роли
●   Product Owner
●   Scrum Master
●   Scrum Team
●   ...
●   Users
Product Owner
Владелец продукта. Представляет
      интересы заказчика.
Product Owner
Владелец продукта. Представляет
      интересы заказчика.
Product Owner
● Определяет набор функционала ПО
● Устанавливает приоритеты
● Устанавливает дату релиза

● Даёт обратную связь
● Обеспечивает связь заказчиков и
  исполнителей
● Принимает результат
Команда
3-9 человек, самоорганизуется,
     кроссфункциональна
Команда
3-9 человек, самоорганизуется,
     кроссфункциональна
Команда
● Декомпозирует пользовательские истории
  на задачи
● Оценивает сложность
● Разрабатывает продукт
● Контролирует качество
● Улучшает процесс разработки
● Демонстрирует работу Product Owner'у
Scrum Master
  Лидер команды. Защитник Scrum.
Защитник команды. Решает проблемы.
Scrum Master
  Лидер команды. Защитник Scrum.
Защитник команды. Решает проблемы.
Scrum Master
●   Устраняет препятствия
●   Предотвращает перерывы в разработке
●   Помогает команде
●   Следит за процессом
Мы делаем продукт.
Продукт представляет
собой список функций,
 который называется
       backlog
Backlog'ом владеет
  Product Owner
Продукт описывается в
      терминах
  пользовательских
       историй
Product owner
 расставляет задачам
приоритеты по степени
      важности
Команда оценивает
 сложность задач
Результат: Список
    оцененных и
отсортированных по
  важности задач
Спринт
● Обычно короткий (от 2-х до 4-х недель)
● Жёстко ограничен по времени
● Начинается с планирования (Planning
  Meeting)
● Заканчивается ретроспективой
● Сопровождается ежедневными
  совещаниями (daily meeting)
Планирование спринта (Planning
meeting)
● Участвуют все
● Длится 4-8 часов
● Выбираются первые n задач из Backlog'a
● Определяется цель спринта
● Обсуждаются способы достижения цели
● Команда формирует Sprint Backlog
● Истории из Backlog'a разбиваются на
  подзадачи
● Формируется расписание спринта
Sprint Backlog не
изменяется в процессе
       спринта!
Planning Poker
Доска (task board)
Доска (task board)
Митинг (Daily Scrum)
●   Участвует команда
●   Длится 15-20 минут
●   Что сделано?
●   Что мешает продвижению спринта?
●   Что будет сделано?
Демонстрация
● Участвуют все
● Озвучивается цель
● Демонстрируется инкремент функционала
● Бизнес-ориентация (что сделано, вместо
  как сделано!)
● Обмен отзывами
● Демонстрируйте недемонстрируемое!
● How-to-demo
Ретроспектива
●   Главное - проводить :)
●   Длится 1-3 часа
●   Участвуют все
●   Неформальная встреча
●   Каждый высказывается
●   Никто не перебивает
●   Что хорошего?
●   Что можно улучшить?
●   Анализ производительности
●   Подведение итогов
Производительность и
прогнозирование
● График успеваемости (BurnDown-
  диаграмма)
● Фокус-фактор
BurnDown-диаграмма (график
успеваемости)
Фокус-фактор
Фокус-фактор
3 кита Scrum
● Эффективные коммуникации
● Жёсткий TimeBoxing
● Самоорганизующаяся команда
Позитив
● Прототип в процессе разработки
  превращается в продукт
● Оперативная реакция на обратную связь
● Предсказуемая производительность
● Возможность определить процент
  готовности проекта
● Простые метрики
● => меньше риски
● Разгружает менеджмент
● Повышает настроение и мотивацию в
  команде :)
Проблемы
● Коммуникация удаленных членов
  команды
● Бизнес-процессы заказчика
● Кроссфункциональность и постоянство
  состава команды
● Небольшие команды
● Слабая документированность продукта
Nokia-тест: итеративность
● Итерации фиксированы?
● Длина итерации не превышает 6 недель?
● В конце итерации вы имеете работающее
  ПО?
● Вам не нужна детальная спецификация,
  чтобы начать итерацию?
● Вы проводите тестирование во время
  разработки? (важно иметь работающее
  ПО)
Nokia-тест: Scrum
● У вас есть Product Owner?
● Если у вас есть P.O., ведет ли он Backlog
  (cписок фич, которые нужно
  запрограммировать)? Приоритеты?
  Оценка сложности?
● Строите ли вы burndown-диаграмму?
● Команда работает по принципу
  самоорганизации?
Must read.
●   Wiki читать не нужно.
●   Там много воды
●   И мало дела
●   И бесполезно
Must read.
● Практика внедрения Scrum: трудности и пути их
  преодоления // Бибичев Андрей, 15 апреля 2008 г.
Must read.
● Scrum и XP: заметки с передовой // Хенрик Книберг,
  InfoQ
Must read.
● Succeeding with Agile // Addison-Wesley, Mike Cohn,
  2010
Здесь должны быть
  ваши вопросы
 Да, это точная информация.
           100%
О чём я забыл
●   Планирование релиза
●   Связь с XP и TDD
●   Масштабирование Scrum
●   Организация тестирования

Lovely scrum