Scrum и XP: заметки с передовой.

Yes, we did! Предисловие Джефа Сазерленда. Предисловие Майка Кона. Предисловие — Эй! А Scrum-то работает! Отказ от ответственности. Зачем я это написал. Так что же такое Scrum? Как мы работаем с product backlog’ом. Дополнительные поля для user story. Как мы ориентируем product backlog на бизнес. Как мы готовимся к планированию спринта. Как мы планируем спринт. Почему без product owner’а не обойтись. Почему качество не обсуждается. Планирование спринта, которое никак не заканчивается. Распорядок встречи по планированию спринта. Определяем длину спринта. Определение цели спринта. Выбор историй, которые войдут в спринт. Как product owner может влиять на то, какие истории попадут в спринт? Как команда принимает решение о том, какие истории включать в спринт? Планирование, основанное на интуиции. Планирование, основанное на методе оценки производительности. Какую технику мы используем для планирования? Почему мы используем учетные карточки. Критерий готовности. Оценка трудозатрат с помощью игры в planning poker. Уточнение описаний историй. Разбиение историй на более мелкие истории. Разбиение историй на задачи. Выбор времени и места для ежедневного Scum’а. Когда пора остановиться. Технические истории. Как мы используем систему учёта дефектов для ведения product backlog’а. Свершилось! Планирование спринта закончено! Как мы доносим информацию о спринте до всех в компании. Как мы создаем sprint backlog. Формат sprint backlog’а. Как работает доска задач. Пример 1 — после первого ежедневного Scrum’а. Пример 2 — еще через пару дней. Тревожные сигналы на доске задач. Эй, как насчет отслеживания изменений? Как мы оцениваем: в днях или часах? Как мы обустроили комнату команды. Уголок обсуждений. Усадите команду вместе. Не подпускайте product оwnеrа слишком близко. Не подпускайте менеджеров и тренеров слишком близко. Как мы проводим ежедневный Scrum. Как мы обновляем доску задач. Как быть с опоздавшими. Как мы поступаем с теми, кто не знает, чем себя занять. Как мы проводим демо. Почему мы настаиваем на том, чтобы каждый спринт заканчивался демонстрацией. Памятка по подготовке и проведению демо. Что делать с «недемонстрируемыми» вещами. Как мы проводим ретроспективы. Почему мы настаиваем на том, чтобы все команды проводили ретроспективы. Как мы проводим ретроспективы. Как учиться на чужих ошибках. Изменения. Быть или не быть. Типичные проблемы, которые обсуждают на ретроспективах. «Нам надо было больше времени потратить на разбиение историй на подзадачи». «Очень часто беспокоят извне». «Мы взяли огромный кусок работы, а закончили только половину». «У нас в офисе бардак и очень шумно». Отдых между спринтами. Как мы планируем релизы и составляем контракты с фиксированной стоимостью. Определяем свою приёмочную шкалу. Оцениваем наиболее важные истории. Прогнозируем производительность. Сводим всё в план релиза. Корректируем план релиза. Как мы сочетаем Scrum с XP. Парное программирование. Разработка через тестирование (TDD). TDD и новый код. TDD и существующий код. Эволюционный дизайн. Непрерывная интеграция (Continuous integration). Совместное владение кодом (Collective code ownership). Информативное рабочее пространство. Стандарты кодирования. Устойчивый темп / энергичная работа. Как мы тестируем. Скорее всего, вам не избежать фазы приёмочного тестирования. Минимизируйте фазу приёмочного тестирования. Повышайте качество, включив тестировщиков в Scrum-команду. Тестировщик — это «последняя инстанция». Чем занимается тестировщик, когда нечего тестировать? Повышайте качество — делайте меньше за спринт! Стоит ли делать приёмочное тестирование частью спринта? Соотношение спринтов и фаз приёмочного тестирования. Подход № 1: «Не начинать новые истории, пока старые не будут готовы к реальному использованию». Подход № 2: «Начинать реализовывать новые истории, но наивысшим приоритетом ставить доведение старых до ума». Неправильный подход: «Клепать новые истории». Не забывайте об ограничении системы. Возвращаясь к реальности. Как мы управляем несколькими Scrum-командами. Сколько сформировать команд. Виртуальные команды. Оптимальный размер команды. Синхронизировать спринты или нет? Почему мы ввели роль «тимлида». Как мы распределяем людей по командам. Нужны ли узкоспециализированные команды? Подход № 1: команды, специализирующиеся на компонентах. Подход № 2: универсальные команды. Стоит ли изменять состав команды между спринтами? Участники команды с частичной занятостью. Как мы проводим Scrum-of-Scrums. Scrum-of-Scrums уровня продукта. Scrum-of-Scrums уровня компании. Чередование ежедневных Scrum'ов. «Пожарные» команды. Разбивать product backlog или нет? Подход первый: Один product owner — один backlog. Подход второй: Один product owner — несколько backlog'ов. Подход третий: Несколько product owner’ов — несколько backlog’ов. Параллельная работа с кодом. Ретроспектива для нескольких команд. Как мы управляем географически распределёнными командами. Оффшорная разработка. Члены команды, работающие дома. Памятка ScrumMaster’а. В начале спринта. Каждый день. В конце спринта. Заключительное слово. Список рекомендованной литературы. Об авторе. 1. 2. 3. 4. 5. 6. 7.