методологии agile, scrum, lean, bk

42
AGILE, SCRUM, LEAN Айрат Хасьянов среда, 23 октября 13 г.

Upload: -

Post on 28-Nov-2014

541 views

Category:

Documents


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: методологии Agile, Scrum, Lean, BK

AGILE, SCRUM, LEAN

Айрат Хасьянов

среда, 23 октября 13 г.

Page 2: методологии Agile, Scrum, Lean, BK

1.Разогрев — мир, в котором мы живем

2.Agile — методология? Сообщество? Философия?

3.Scrum — играем в Rugby!

4.Lean — причем здесь автомобили?

Примерный план

среда, 23 октября 13 г.

Page 3: методологии Agile, Scrum, Lean, BK

1. Авторитетное мнение

2. Программная инженерия

3. Методология

МИР, В КОТОРОМ МЫ ЖИВЕМ

среда, 23 октября 13 г.

Page 4: методологии Agile, Scrum, Lean, BK

...Менеджеры программных разработок — и в этом они не отличаются от других менеджеров, — чтобы преуспеть, должны овладеть основами менеджмента: работать с людьми и проявлять решительность, решать политические проблемы и придерживаться графика работ, поставлять продукт хорошего качества.

Carl Selinger

среда, 23 октября 13 г.

Page 5: методологии Agile, Scrum, Lean, BK

Разработка ПО ~ постройка звездолетовЭтим должны заниматься инженеры!Жизненный цикл продукта любой инженерии:

1. Проектирование

2. Создание образца

3. Тестирование

4. Производство

5. Сопровождение (эксплуатация)

Программная инженерия

среда, 23 октября 13 г.

Page 6: методологии Agile, Scrum, Lean, BK

Стоимость производства исчезающе мала!

1.Сложно: нет объективных законов механики! Тестирование продукта — единственный выход!

2. 80% программных проектов терпят крах!

3. Очень мало опыта!

Большая разница!

среда, 23 октября 13 г.

Page 7: методологии Agile, Scrum, Lean, BK

• 14 февраля 1946 — ENIAC - Начало

• 1965-1985 — Кризис

•ПО становится дороже железа

• 1000-и разработчиков на проект

•Ненадежно, приводит к порче имущества

•Первые случаи смерти из-за ошибок в ПО

Почему мало опыта?

среда, 23 октября 13 г.

Page 8: методологии Agile, Scrum, Lean, BK

1985-1989 — Поиск волшебной палочки

•Инструменты: ООП, CASE-средства

•Формальные методы из инженерных наук

•Понятие Методологии:

•Жизненный цикл

•Программный процесс

• 1986 — Fred Brooks «No Silver Bullet»: не будет 10х продуктивности за 10 лет, может, лет через 40...

Поиск универсального решения

среда, 23 октября 13 г.

Page 9: методологии Agile, Scrum, Lean, BK

1990-е — Интернет захватил власть над миром

XXI век — Легковесные методологии

Agile, Scrum, Lean и др.

Осознание

среда, 23 октября 13 г.

Page 10: методологии Agile, Scrum, Lean, BK

1. Авторитетное мнение

2. Идеи

3. Принципы

AGILE

среда, 23 октября 13 г.

Page 11: методологии Agile, Scrum, Lean, BK

А мы при разработке ПО используем фирменную

методолгоию "Отжайл" Она основана на принципе отжиманий от пола

Игорь Зиновьев

Agile — Гибкая разработка

среда, 23 октября 13 г.

Page 12: методологии Agile, Scrum, Lean, BK

1957 — IBM, Инкрементальная разработка

1974 — Edmonds, Адаптивный процесс (размышление, сотрудничество, обучение)

Февраль 2001 — Agile Manifetso

Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Stephen J. Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas

Это даже не методология!

среда, 23 октября 13 г.

Page 13: методологии Agile, Scrum, Lean, BK

1995 — Scrum (Sutherland, Schwaber)

1996 — Экстремальное программирование (Beck)

Ранние Agile методологии

среда, 23 октября 13 г.

Page 14: методологии Agile, Scrum, Lean, BK

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

Работающее программное обеспечение важнее, чем полная документация;

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

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

Основные идеи, значимость которых нивелирована

среда, 23 октября 13 г.

Page 15: методологии Agile, Scrum, Lean, BK

Удовлетворение клиента за счёт ранней и бесперебойной поставки ценного ПО;

Приветствие изменения требований, даже в конце разработки;

Частая поставка рабочего ПО;

Тесное, ежедневное общение заказчика с разработчиками на протяжении всего проекта;

Agile принципы 1

среда, 23 октября 13 г.

Page 16: методологии Agile, Scrum, Lean, BK

Проектом занимаются мотивированные личности, обеспеченные условиями, поддержкой и доверием;

Передача информации путем личного общения;

Работающее ПО — лучший измеритель прогресса;

Возможность поддержания постоянного темпа на неограниченное время;

Agile принципы 2

среда, 23 октября 13 г.

Page 17: методологии Agile, Scrum, Lean, BK

Внимание на улучшение мастерства и качественную разработку;

Простота — искусство не делать лишней работы;

Работа над формированием КОМАНДЫ;

Постоянная адаптация к изменяющимся обстоятельствам.

Agile принципы 3

среда, 23 октября 13 г.

Page 18: методологии Agile, Scrum, Lean, BK

Адаптируйте Ваш процесс под Ваши условия;

Используйте подходящий инструмент (trac, redmine, teamer, pivotal tracker, Oracle и пр.);

Создавайте наилучшие программы с наименьшим необходимым числом функций;

Советы

среда, 23 октября 13 г.

Page 19: методологии Agile, Scrum, Lean, BK

среда, 23 октября 13 г.

Page 20: методологии Agile, Scrum, Lean, BK

1. Авторитетное мнение

2. Описание процесса

3. Принципы

SCRUM

среда, 23 октября 13 г.

Page 21: методологии Agile, Scrum, Lean, BK

Наши манагеры используют гибкую методологию. Называется «Scream»

Scrum — Agile методология

среда, 23 октября 13 г.

Page 22: методологии Agile, Scrum, Lean, BK

1986 — Hirotaka Takeuchi и Ikujiro Nonaka сравнили разработку ПО и рэгби

1991 — DeGrace и Stahl "Wicked Problems, Righteous Solutions" (scrum)

1995 — Sutherland и Schwaber - статья на воркшопе конференции OOPSLA'95

История

среда, 23 октября 13 г.

Page 23: методологии Agile, Scrum, Lean, BK

Scrum — описание процесса

среда, 23 октября 13 г.

Page 24: методологии Agile, Scrum, Lean, BK

Sprint — инкремент, 1-4 недельный этап поставки

Product Backlog — ранжированный по приоритетам список требований

Sprint Backlog — требования попавшие в Sprint;

Daily Scrum — командная сверка статуса проекта;

Burn down — график оставшейся работы в Sprint Backlog.

Артефакты Scrum

среда, 23 октября 13 г.

Page 25: методологии Agile, Scrum, Lean, BK

Scrum Team — Разработчики, Product Owner и Scrum Master

Scrum Master — менеджер проекта

Product Owner — спонсор, представляет заинтересованных лиц проекта;

Daily Scrum — командная сверка статуса проекта;

Team — Scrum Team + остальные участники работ над проектом.

Роли в Scrum

среда, 23 октября 13 г.

Page 26: методологии Agile, Scrum, Lean, BK

Каждые 7-30 дней

Что делать в Sprint'е

Подготовка Sprint Backlog с временем работ, участвует вся команда

8-часовой лимит:

4 часа на определение приоритетов

4 часа набросок плана для Sprint'а => Sprint Backlog;

Sprint Planning Meeting

среда, 23 октября 13 г.

Page 27: методологии Agile, Scrum, Lean, BK

В конце каждого Sprint'а

Обзор завершенных и незавершенных работ

the Demo для заинтересованных лиц

Незавершенная работа не демонстрируется

4-часовой лимит

Sprint Review Meeting

среда, 23 октября 13 г.

Page 28: методологии Agile, Scrum, Lean, BK

Обсуждение прошедшего Sprint'а

Постоянные усовершенствования процесса

Что было правильно?

Что следует улучшить?

3-часовой лимит

Sprint Retrospective

среда, 23 октября 13 г.

Page 29: методологии Agile, Scrum, Lean, BK

Impediment — препятствие для члена команды

Sashimi — отчет, который иногда делают

Planning Poker — Sprint planning meeting как покер

Point Scale — система оценки сложности (s, m, L, XL)

Definition of Done — условие завершения проекта

Другие артефакты

среда, 23 октября 13 г.

Page 30: методологии Agile, Scrum, Lean, BK

Planning Poker

среда, 23 октября 13 г.

Page 31: методологии Agile, Scrum, Lean, BK

1. Авторитетное мнение

2. История

3. Принципы

LEAN — БЕРЕЖЛИВАЯ РАЗРАБОТКА

среда, 23 октября 13 г.

Page 32: методологии Agile, Scrum, Lean, BK

Береженного Бог бережет!

Бережливое производство

среда, 23 октября 13 г.

Page 33: методологии Agile, Scrum, Lean, BK

Япония, 1945 Проблемы крупносерийного производства

Тoyota — Production System, Тайити Оно

Mary Poppendieck, Tom Poppendieck — 22 принципа

История

среда, 23 октября 13 г.

Page 34: методологии Agile, Scrum, Lean, BK

Разработка ненужного функционала;

Простои при разработке;

“Излишние запасы” в требованиях;

Бюрократизация процесса;

Неэффективное внутреннее взаимодействие.

Исключение лишних затрат

среда, 23 октября 13 г.

Page 35: методологии Agile, Scrum, Lean, BK

Короткие циклы разработки: цикл Деминга (Plan, Do, Check, Act)

Раннее тестирование;

Полное покрытие кода модульными тестами;

Непрерывная интеграция и постоянный контакт с заказчиком;

Рефакторинг - постоянное улучшение кода;

Культура постоянного совершенствования.

Делать правильно с первого раза

среда, 23 октября 13 г.

Page 36: методологии Agile, Scrum, Lean, BK

Делегирование принятия решений на по возможности нижний уровень орг. структуры;

Если проект встречается с трудностями, разработчикам предоставляются инструменты для оценки и улучшения своей работы;

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

Люди, выполняющие работу, должны САМИ определять детали выполнения работы!

Делегирование полномочий и поддержка тех, кто добавляет ценность

среда, 23 октября 13 г.

Page 37: методологии Agile, Scrum, Lean, BK

Проект - больше, чем список заданий. Работа должна быть интересной!

Каждый проект учит участников чему-то новому!

Если команда не вовлечена в проект и не жаждет его успешного завершения, мы отказываемся от проекта!

Мотивация команды

среда, 23 октября 13 г.

Page 38: методологии Agile, Scrum, Lean, BK

Мыслить широко;

действовать мало;

промахиваться быстро;

учиться стремительно.

Разделение всеми разработчиками принципов бережливого производства

среда, 23 октября 13 г.

Page 39: методологии Agile, Scrum, Lean, BK

Использовать готовое решение, если оно есть при разработке;

Писать артефакты проекта так, чтобы их можно было использовать в другом проекте;

По возможности использовать артефакты, созданные ранее в новых проектах.

Повторное использование компонентов

среда, 23 октября 13 г.

Page 40: методологии Agile, Scrum, Lean, BK

Локальная оптимизация часто приводит к ухудшению глобальной оптимизации;

Лучшее - враг хорошего: прежде чем тратить время на оптимизацию, убедитесь, что оптимизируемый фрагмент кода действительно является узким местом.

Принцип Кента Бека: “Заставьте программу работать; заставьте ее работать верно; затем, сделайте ее быстрой!”.

Запрет локальной оптимизации

среда, 23 октября 13 г.

Page 41: методологии Agile, Scrum, Lean, BK

http://agilemanifesto.org/

http://blog.htc-cs.ru/post/lean_programming.aspx

http://www.scrum.org/

http://www.scrum.org/

http://members.cox.net/risingl1/Articles/IEEEScrum.pdf

Frederick P. Brooks, The Mythical Man-Month: Essays on Software Engineering

ПОЛЕЗНЫЕ ССЫЛКИ

среда, 23 октября 13 г.

Page 42: методологии Agile, Scrum, Lean, BK

Спасибо за внимание!

Айрат Хасьянов

среда, 23 октября 13 г.