Введение в lean и agile

93
Lean и Agile Никита Филиппов

Upload: kirill-rubinshteyn

Post on 13-Jan-2015

10.999 views

Category:

Technology


0 download

DESCRIPTION

Презентация Никиты Филиппова (Scrumtrek) с вебинара для сообщества Смартсорсинг (http://smartsourcing.ru/events/scrumwebinar072011)

TRANSCRIPT

Page 1: Введение в Lean и Agile

Lean и Agile

Никита Филиппов

Page 2: Введение в Lean и Agile

Филиппов Никита

• ScrumTrek• Agile Coach• Управляющий партнер

• В прошлом• Программист, менеджер

проектов, методолог

Page 3: Введение в Lean и Agile

Agenda

• Мир современных процессов разработки ПО

• Проблемы в разработке ПО• Lean

– Kanban • Agile

– Scrum

Page 4: Введение в Lean и Agile

Henrik Kniberg 4

Lean

XPScrum

Agile

TDD

KanbanContinuous Integration

RUP

Что это за фигня?

Pair programming

Refactoring

Page 5: Введение в Lean и Agile

ЧЕМУ МЫ НАУЧИЛИСЬ?

Page 6: Введение в Lean и Agile

Каскадная модель (Waterfall)• Заказчик знает чего

хочет• Разработчик знает,

как разработать • Ничего не поменяется

Page 7: Введение в Lean и Agile

Большинство проектов неуспешны

Henrik Kniberg 7

Успешные проекты в 1994: 15% Среднее значение выхода за бюджет и сроки: ≈170%

Успешные проекты в 2004: 34% Среднее значение выхода за бюджет и сроки: ≈70%

The Standish Group исследовало более 40 000 проектов в течении 10 лет.

Источник:http://www.softwaremag.com/L.cfm?Doc=newsletter/2004-01-15/Standishhttp://www.infoq.com/articles/Interview-Johnson-Standish-CHAOS

План: €1,000,000

Факт : €2,700,000

План: €1,000,000

Факт: €1,700,000

Page 8: Введение в Lean и Agile

Дефекты в самом процессе

• Влияние длины спецификации на сроки• Влияние избыточной детализации на сроки• Влияние изменения требований на сроки• Влияние мнения со стороны на сроки со

стороны

Источник: How to avoid impact from irrelevant and misleading info on your cost estimates, Simula research labs estimation seminar, Oslo, Norway, 2006

Page 9: Введение в Lean и Agile

Ненужная функциональность

Функциональность, используемая в типичной системе

Standish Group Study Report

Всегда7%

Часто13%

Иногда16%

Редко19%

Никогда45%

Функциональность

Слож

ност

ь

Цена

# функций в системе

Page 10: Введение в Lean и Agile

Чему мы научилисьУспешные проекты в 1994: 15%

Среднее значение выхода за бюджет и сроки: ≈170%

Успешные проекты в 2004: 34% Среднее значение выхода за бюджет и сроки: ≈70%

ТОП 5 ПРИЧИН УСПЕХА: 1. Вовлечение заказчика2. Поддерживающий менеджмент

от руководства3. Ясные бизнес цели4. Управление скоупом5. Гибкий процесс

СрокиСтоимость

Функциональность(features)

Quality

«Делая проекты итеративным процессом , решалось много проблем, которые не решал водопадный процесс требующий полное проектирование «СВЕРХУ»»

“Главная причина [для улучшений]что проекты стали меньшего размера.”

Не существует серебряной пули но Гибкие методологии очень близки к этому определению

Jim JohnsonГлава Standish Group

Page 11: Введение в Lean и Agile

С чем приходилось бороться

• Требования меняются (change requests)• Качеством жертвуют • Люди увольняются• Системы невозможно поддерживать из-за

сильной зависимости человек-модуль/система

• Проблемы интеграции подсистем • Общаемся с заказчиком через документ

Page 12: Введение в Lean и Agile

Agile разработка• Заказчик понимает о продукте по

мере самой разработки, как он должен выглядеть.

• Разработчики принимают решения о том, как разработать исходя из потребностей заказчика

• Все может меняться с течением времени

Page 13: Введение в Lean и Agile

Взаимодействие и документация

Agile:

Page 14: Введение в Lean и Agile

Манифест гибкой разработки

• Люди и взаимодействия важнее чем процессы и инструменты

• Работающий код важнее совершенной документации

• Сотрудничество с заказчиком важнее контрактных обязательств

• Реакция на изменения важнее следования плану

www.agilemanifesto.org

Page 15: Введение в Lean и Agile

Agile-подход

• Итеративность– Движемся к цели короткими шагами

• Инкрементальность– В конце каждой итерации законченный продукт– Возможность получить обратную связь,

скорректировать и обработать ожидания заказчика

Page 16: Введение в Lean и Agile
Page 17: Введение в Lean и Agile

Lean Бережливая разработка ПО

• Lean - aдаптация TPS в США и Европе• Бережливая разработка ПО – адаптация TPS

в разработке ПО (и шире в ИТ)

Том ПоппендикМэри Поппендик

Page 18: Введение в Lean и Agile

Основные Принципы Лин

• Сформировать поток работ• Контролировать объем единичной работы• Снижать вариативность• Ограничивать количество одновременно

выполняющейся работы (Work In Progress)• Уничтожать потери

Page 19: Введение в Lean и Agile

7 потерьПроизводственная Система Toyota

Бережливая разработка ПО

Запасы Недоделанная работа

Перепроизводство Ненужная функциональность

Излишняя обработка Повторное изучение (relearning)

Перевозка Передача (handoff)

Движения Переключение между задачами

Ожидание Ожидание

Дефекты Дефекты

Page 20: Введение в Lean и Agile

Lean Agile

Lean

Agile

Scrum

XPKanban

FDD, DSDM,

OpenUP etc…

Page 21: Введение в Lean и Agile

Материалы для изучения

Page 22: Введение в Lean и Agile

Case studies

• http://www.infoq.com/news/2010/08/agile-lean-validation-studies

Page 23: Введение в Lean и Agile

Agile World (1)

• IBM – http://www.infoq.com/presentations/dancing-agil

e-elephant• Microsoft

– http://www.ademiller.com/tech/reports/agility_and_the_inconceivably_large.pdf

• Nokia– http://agilesoftwaredevelopment.com/files/Scrum

%20in%20Multiproject%20Environment.pdf

Page 25: Введение в Lean и Agile

http://scrumtrek.ru/company/clients/

Page 26: Введение в Lean и Agile

Цель Agile и Lean

• Создать процесс со стабильными поставками

• Обеспечить прозрачность между Бизнесом и Разработкой

• Самое важное заказчику, как можно быстрее• Постоянно улучшать процесс в контексте

своей компании (нет универсального процесса)

Page 27: Введение в Lean и Agile

ОТ ФИЛОСОФИИ К ПРАКТИКАМ

Page 28: Введение в Lean и Agile
Page 29: Введение в Lean и Agile

Роли в Scrum: Product Owner

• Цель: Развивать продукт/проект с максимальной доходностью (пользой)

• Ответственность:

• Представляет интересы заказчика и заинтересованных лиц

• Формирует и координирует Backlog

• Отвечает за Product Vision

• Управляет датой релиза и его содержанием

Page 30: Введение в Lean и Agile

Кем Product Owner не является

• Не Руководитель разработки– Не влияет на решения по архитектуре– Не назначает задачи– Не оценивает

Page 31: Введение в Lean и Agile

Роли в Scrum: TEAM

• Самоорганизованная / самоуправляемая

- Коллективно принимают решения

- Сами координируют и организуют свою работу

• Кросс-функциональная

Page 32: Введение в Lean и Agile

Роли в Scrum: ScrumMasterЦель: Поддерживать «здоровье» команды, сделать команду самоорганизующейся

Ответственность:

• Фасилитирует (модерирует) митинги

• Поддерживает прозрачность, доверие и взаимную ответственность

• Устраняет внешние препятсвия

• Отвечает за процесс

• Коммуникационный лидер

Page 33: Введение в Lean и Agile

Кем ScrumMaster не является

• Не технический лидер команды– Не назначает задачи

• Не менеджер проекта– Не принимает решения в отрыве от команды– Не назначает задачи

Page 34: Введение в Lean и Agile

БАКЛОГ ПРОДУКТА

Page 35: Введение в Lean и Agile

Product Backlog

• Список всей известной работы (features)

• Фичи из баклога планируются на итерации

• За баклог отвечает Product Owner

Page 36: Введение в Lean и Agile

Баклог

Page 37: Введение в Lean и Agile

Баклог продукта

• Приоритезированный список– Истории, баги, технологические улучшения,

открытые вопросы• Более приоритетные элементы баклога

определены детальнее• PO приоритезирует список• Все могут добавлять элементы баклога

Page 38: Введение в Lean и Agile

ПРОЦЕСС РАБОТЫ

Page 39: Введение в Lean и Agile

Планирование релиза

Планирование итерации

Скрам (стендап)

ДемонстрацияРетроспектива

Page 40: Введение в Lean и Agile

ПЛАНИРОВАНИЕ РЕЛИЗА

Page 41: Введение в Lean и Agile

Планирование релиза

Page 42: Введение в Lean и Agile

Планирование релиза

Page 43: Введение в Lean и Agile

Планирование релиза

Page 44: Введение в Lean и Agile

Планирование релиза

Итерация 1

Итерация 2

Итерация 3

Итерация 4

Планирование релиза

Page 45: Введение в Lean и Agile

Velocity = 14

5 3 5 2 5 2 1 8 5 5 3 8 2

1 2 3 4

Планирование релиза

Page 46: Введение в Lean и Agile

Release BurnUp Chart• Предсказать, когда будет выполнен объем

работ

Планирование релиза

Page 47: Введение в Lean и Agile

ПЛАНИРОВАНИЕ ИТЕРАЦИИ

Page 48: Введение в Lean и Agile

Планирование итерации

Plan

ning

Poke

r Backlog

Планирование итерации

Page 49: Введение в Lean и Agile

TaskBoard Планирование итерации

Page 50: Введение в Lean и Agile

Длительность итерации

• Количество задач– ~20-40 задач

• Частота изменений требований– За итерацию требования не меняются

• Возможность получить значимый результат – ~ 10 Историй

© ScrumTrek.ru, 2008

Планирование итерации

Page 51: Введение в Lean и Agile

РАБОТА ВНУТРИ ИТЕРАЦИИ

Page 52: Введение в Lean и Agile

Работа внутри итерации: Доска задач

© scrumtrek.ru

TO DO In progress Done

Page 53: Введение в Lean и Agile

© scrumtrek.ru

TO DO In progress Done

Работа

по приоритета

м

Работа внутри итерации: Доска задач

Page 54: Введение в Lean и Agile

© ScrumTrek.ru, 2008Daily Scrum

Скрам (стендап)

Page 55: Введение в Lean и Agile

Daily SCRUM meeting

• Цель митинга: поделиться информацией• Не предназначен для решения проблем!• Его ведет один человек (ScrumMaster)• Аудитория – команда• Все проблемы становятся видны сразу• Вопросы

– Что ты сделал вчера?– Что ты будешь делать сегодня?– Какие у тебя проблемы?

Скрам (стендап)

Page 56: Введение в Lean и Agile

Скрам (стендап)

Page 57: Введение в Lean и Agile

Demo Демонстрация

Page 58: Введение в Lean и Agile
Page 59: Введение в Lean и Agile
Page 60: Введение в Lean и Agile

SMART-цели

• Specific – Конкретный / Понятный• Measurable – Измеримый • Achievable – Достижимый • Relevant – Обоснованный / Соответствующий• Time-bound – Ограниченный по времени

Page 61: Введение в Lean и Agile

KANBAN – ИНСТРУМЕНТ ДЛЯ НЕ ИТЕРАТИВНОЙ РАЗРАБОТКИ

Page 62: Введение в Lean и Agile

Цели Kanban

• Визуализировать поток работ• Ограничить количество незавершенной

работы (работы в процессе)• Снизить среднее время выполнения задач• Искать потери, чтобы улучшать процесс

Page 63: Введение в Lean и Agile

Баклог РазработкаОчередь Тестирование Готово!

2 3 2В прогрессе Готово

12

34

56

78

A10

11

PO

Page 64: Введение в Lean и Agile

Баклог РазработкаОчередь Тестирование Готово!

2 3 2В прогрессе Готово

1

234

56

78

A10

11

PO

Page 65: Введение в Lean и Agile

Баклог РазработкаОчередь Тестирование Готово!

2 3 2В прогрессе Готово

1

234

56

78

A10

11

PO

Page 66: Введение в Lean и Agile

Баклог РазработкаОчередь Тестирование Готово!

2 3 2В прогрессе Готово

1

2

3

4

56

78

A10

11

PO

Page 67: Введение в Lean и Agile

Баклог РазработкаОчередь Тестирование Готово!

2 3 2В прогрессе Готово

123

4

5

6

78

A10

11

PO

?

Page 68: Введение в Lean и Agile

Баклог РазработкаОчередь Тестирование Готово!

2 3 2В прогрессе Готово

1

3

2

4

78

A10

11

PO ?5

6

Page 69: Введение в Lean и Agile

1

Баклог РазработкаОчередь Тестирование Готово!

2 3 2В прогрессе Готово

3

2

478

A10

11

5

6

PO

Page 70: Введение в Lean и Agile

1

Баклог РазработкаОчередь Тестирование Готово!

2 3 2В прогрессе Готово

3

247

8A10

11

5

6

PO

Page 71: Введение в Lean и Agile

Баклог РазработкаОчередь Тестирование Готово!

2 3 2В прогрессе Готово

3

2478

A10

11

5

6

1PO

Page 72: Введение в Lean и Agile

Поиск по вакансиям

Devprom:10241

Заказчик: Пупкин В.

Анализ: 11/03/11Разработка: 18/03/11Тест: 22/03/11

Срок: 24/03/11Приоритет:

Page 73: Введение в Lean и Agile

Баклог РазработкаОчередь Тестирование Готово!

2 3 2В прогрессе Готово

1

2

3

4

5

6

7

AA

A

BUG

POА-а-а-а!!!

Page 74: Введение в Lean и Agile

Анализ

6

BUG

– Баг из «СРОЧНО!»– Приоритетные– Риск нарушения сроков

– Остальные в порядке очередности поступления

ПРИОРИТЕТ Разработка

!

Page 75: Введение в Lean и Agile

ДЕКОМПОЗИЦИЯ В KANBAN

Page 76: Введение в Lean и Agile

АналитикаОчередь Разработка Тестирование2 3 2

В прогрессе Готово В прогрессе Готово В прогрессе Готово

2

Page 77: Введение в Lean и Agile

АналитикаОчередь Разработка Тестирование2 3 2

В прогрессе Готово В прогрессе Готово В прогрессе Готово

2

Page 78: Введение в Lean и Agile

АналитикаОчередь Разработка Тестирование2 3 2

В прогрессе Готово В прогрессе Готово В прогрессе Готово

2

Page 79: Введение в Lean и Agile

АналитикаОчередь Разработка Тестирование2 3 2

В прогрессе Готово В прогрессе Готово В прогрессе Готово

2

BUG

BUG

Page 80: Введение в Lean и Agile

АналитикаОчередь Разработка Тестирование2 3 2

В прогрессе Готово В прогрессе Готово В прогрессе Готово

2

BUGBU

G

Page 81: Введение в Lean и Agile

ПУЛЬС ПРОЕКТА: КАДЕНЦИИ

Page 82: Введение в Lean и Agile

Каденции

Итерации week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8

Sprint 1

Plan & commit Review(release?)

Каденции week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8

Planning cadence (2w)

Sprint 2

Retrospective

Release cadence (1w)

Retrospectives (4w)

События week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8

Planning (on demand)

Release (on demand)

Retrospectives (on demand)

By Henrik Kniberg

Page 83: Введение в Lean и Agile

Различные способы лимитировать WIP

Sprint 1 Sprint 2 Sprint 3 Sprint 4

Big item

Big item

Scrum• Не указывается WIP • Таймбоксинг итерации

Kanban• Указывается WIP• Можно комбинировать

большие и малые истории

WIP limit = 3 items

Velocity = 15 story points

Page 84: Введение в Lean и Agile

Оценка

Задачи Фичи1. Не оценивать. Просто посчитать.

2. Оценивать в T-shirt

1. Без задач

2. Не оценивать задачи, просто сосчитать

3. Оценит задачи в днях1d

2d0.5d

4. Оценить задачи в часах

12h8h4h

S M LЧасы?

Дни?Недели?

S ML

3. Оценивать в story-points

1sp2sp

5sp

4. оценивать в идеальных человеко-днях

1d3d

6d

”типичный”Kanban

”типичный”Scrum

Page 85: Введение в Lean и Agile

2009-08-29

orem ipsum dolor sit amet, nse ctetur adi pis cing elit nisl

2009-09-01

orem ipsum dolor sit amet, co nse ctetur adi pis cing elit nisl

2009-09-02

orem ipsum dolor sit

amet, nse ctetur adi

pis elit nisl

Analysis Development Acceptance ProdNext

Definition of Done:•Customer accepted•Ready for production

Ongoing Done

Definition of Done:• Code clean & checked in on trunk• Integrated & regression tested• Running on UAT environment

Ongoing DoneOngoing Done

Definition of Done:• Goal is clear• First tasks defined• Story split (if necessary)

2 3 3 2

Feature / story

= completed

= blocked

= who is doing this right now

2009-08-20 2009-09-30

(description)

• Panicfeatures(should be swarmed and kept moving. Interrupt other work and break WIP limits as necessary)

• Priority features• Hard deadline features

(only if deadline is at risk)• Oldest features

2009-09-03ipsum dolor sit amet, co nse ctetur adi pis cing elit nisl

2009-09-02

orem ipsum dolor sit amet, co nse

2009-08-27

orem ipsum dolor sit

amet, ctetur adi pis

cing elit nisl

2009-08-27

orem ipsum dolor sit amet, adi pis cing elit nisl

2009-08-20

orem olor sit amet, co nse ctetur adi pis cing elit nisl

2009-08-30

orem ipsum dolor sit amet, co adi pis cing elit nisl

2009-09-08

2009-08-20

orem ipsum dolor sit

amet, co nse ctetur

adi pis cing elit nisl

2009-08-25

2009-08-22orem ipsum dolor sit amet, co

2009-08-25

orem ipsum dolor sit ctetur adi pis cing elit nisl

Task / defectHard deadline(if applicable)Date when added to

board

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit

amet, co nse ctetur

orem ipsum dolor sit

amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

(description)

(description)

(description)Why

(description)

Who is analyzing / testing right now

= priority

= panic

What to pull first

xxxx kjd dj d xxx

Пример канбанHenrik Kniberg www.crisp.se/kanban/example

version 1.22009-11-16

(description)

orem ipsum dolor sit amet, co nse ctetur

2009-08-26

orem adi pis cing elit nisl

orem ipsum dolor sit amet, co nse ctetur

=task =defect

Page 86: Введение в Lean и Agile

Внедрение

• Shu – следуй процессу• Ha – адаптируй• RI – забудь о процессе

Page 87: Введение в Lean и Agile

Итог

• Scrum и Kanban – инструмент снижения рисков и повышения прозрачности

• Процесс может строиться в виде итераций либо потока

• Поток ограничивается для повышения пропускной способности либо по timebox либо по WIP

• Должен постоянно улучшаться, чтобы отвечать текущим реалиям

• Лучше начинать с «книжных вариантов» и потом адаптировать.

Page 88: Введение в Lean и Agile

Материалы для изучения

Page 90: Введение в Lean и Agile

• Succeeding with Agile by Mike Cohn

Page 91: Введение в Lean и Agile

• Элияху Голдрат «Цель: процесс непрерывного совершествования»

Page 92: Введение в Lean и Agile

Мэрри Поппиндик: «Бережливая разработка ПО»

Page 93: Введение в Lean и Agile

Вопросы

• Детальнее на наших тренингахhttp://Scrumtrek.ru

• Конференции http://Agiledays.ru • Skype: nikita_filippov• @nfilippov• http://Blog.scrumtrek.ru • [email protected]

• Спасибо !