эволюция методологий управления (водопад, rup, agile) ...

37
Эволюция методологий управления (водопад, RUP, agile) Дмитрий Башакин, Михаил Кумсков Учебный Центр Luxoft

Upload: wrider

Post on 15-Jun-2015

609 views

Category:

Business


1 download

TRANSCRIPT

Page 1: эволюция методологий управления (водопад, Rup, Agile)   башакин

Эволюция методологий управления (водопад, RUP, agile)

Дмитрий Башакин, Михаил КумсковУчебный Центр Luxoft

Page 2: эволюция методологий управления (водопад, Rup, Agile)   башакин

О докладчике

• Дмитрий Башакин ([email protected])• Михаил Кумсков ([email protected])• Luxoft, группа компаний IBS

• –эксперты Учебного Центра (www.Luxoft-Training.ru)

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)2

Page 3: эволюция методологий управления (водопад, Rup, Agile)   башакин

Разработка ПО – хаос неизбежен?

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)3

Page 4: эволюция методологий управления (водопад, Rup, Agile)   башакин

Кто виноват?Нет, не так: что делать?

Базис большинства проблем с проектами по разработке ПО:• Молодость отрасли – десятки лет• «Детская болезнь» – попытка подходить к ИТ-проектам

как к разновидности «классических» проектов

Причины уникальности программных проектов:• Сложность• Изменчивость• Непрофессионализм

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)4

Page 5: эволюция методологий управления (водопад, Rup, Agile)   башакин

Так что же, все-таки, делать?

• Знать и учитывать уникальность отрасли «разработка ПО»• Учиться

• Читать

• Слушать

• Пробовать

• There is no silver bullet*, но есть значительный индустриальный опыт, методологии и лучшие практики

• РИСКИ!

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)

*«Серебряной пули нет» (Фредерик Брукс, очерк, 1986)

5

Page 6: эволюция методологий управления (водопад, Rup, Agile)   башакин

Определения:Процесс и методология

• Процесс разработки программного обеспечения – это структура, согласно которой построена разработка ПО• Определяет набор выполняемых активностей и принципы их

увязывания в определенную систему

• Иерархия процессов

• Методология (от греч. μεθοδολογία – учение о способах) – система базисных принципов, методов, методик, способов и средств их реализации в организации и построении научно-практической деятельности людей

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)6

Page 7: эволюция методологий управления (водопад, Rup, Agile)   башакин

«Железный треугольник»

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)

Объем работ

Время Ресурсы

8

Page 8: эволюция методологий управления (водопад, Rup, Agile)   башакин

«Железный треугольник»

Алистэр Коуберн («Процесс как четвертое измерение», 2003):• «Некоторые из нас все же обнаруживают, что

участвуют в проектах, где все три вершины "железного треугольника" уже заданы. Например, нам говорят, что нужно разработать определенную функциональность за 18 месяцев с бюджетом 15 миллионов. Один из моих друзей постоянно получает задания, типа "у тебя есть четыре человека и три месяца, чтобы разработать вот такую функциональность". И, пусть с небольшими поправками, мы это делаем! »

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)9

Page 9: эволюция методологий управления (водопад, Rup, Agile)   башакин

«Железный треугольник»

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)

Объем работ

Время Ресурсы

Процесс

11

Page 10: эволюция методологий управления (водопад, Rup, Agile)   башакин

Процесс. И никакого страха!

«Правильный» процесс:• продуман и упорядочен• задокументирован• его знают и ему реально следуют• способствует улучшению ситуации• не является «обузой»

• поставлен процесс улучшения процесса

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)12

Page 11: эволюция методологий управления (водопад, Rup, Agile)   башакин

Модели процесса разработки ПО

Две основные модели построения процесс разработки ПО:• Водопадная (каскадная или последовательная) модель• Итеративная модель

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)13

Page 12: эволюция методологий управления (водопад, Rup, Agile)   башакин

Водопадная модель.Суть и условия возникновения

• Заимствована из классического производства• В ИТ возникла в среде, где:

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

• надежность ПО является критическим фактором

• Суть модели:• Этапы

• Переходы между этапами

• Артефакты

• Результат (продукт)

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)14

Page 13: эволюция методологий управления (водопад, Rup, Agile)   башакин

Водопадная модель.Графическое представление

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)

Требования

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

Реализация

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

Эксплуатация

15

Page 14: эволюция методологий управления (водопад, Rup, Agile)   башакин

Водопадная модель.Достоинства

• Простота и понятность• Очевидность для людей из «классического бизнеса»• На каждом этапе формируется законченный набор

проектной документации, полный и согласованный• Работы разных этапов могут выполнять разные команды, в

т.ч. территориально распределенные• Полнота документирования требований позволяет

провести качественное тестирование• Если проект успешен, затраты на него будут минимальны

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)16

Page 15: эволюция методологий управления (водопад, Rup, Agile)   башакин

Водопадная модель.Проблемы

• Хорошо работает для систем с известными и стабильными требованиями

• В реальных проектах часто возникает потребность в возврате к предыдущим этапам с целью:• учета изменений в требованиях

• уточнения или пересмотра ранее принятых решений

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)17

Page 16: эволюция методологий управления (водопад, Rup, Agile)   башакин

Водоворот

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)

Требования

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

Реализация

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

Эксплуатация

18

Page 17: эволюция методологий управления (водопад, Rup, Agile)   башакин

Основное противоречие

• Изменения – враг разработчиков ПО

• Однако изменения – неотъемлемая часть бизнеса заказчика и самого процесса разработки ПО

• Как сделать так, чтобы изменения приветствовались проектной командой и не создавали угрозу успешному завершению проекта?

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)20

Page 18: эволюция методологий управления (водопад, Rup, Agile)   башакин

Итеративная модель

• Итеративная, эволюционная, спиральная, …• Мартин Фаулер (2004): «Итеративную разработку

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

• Как съесть слона?

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)21

Page 19: эволюция методологий управления (водопад, Rup, Agile)   башакин

Итеративная модель.Основные принципы

• Жизненный цикл разработки ПО – последовательность относительно коротких частей (итерации)

• Итерация – маленький «водопад»• Требования – стабильность в рамках итерации• Результат – работоспособная версия системы с

дополнительной функциональностью (инкремент)• Поставка результата Заказчику, учет его отклика для

планирования следующей итерации• Завершение процесса – продукт удовлетворяет Заказчика

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)22

Page 20: эволюция методологий управления (водопад, Rup, Agile)   башакин

Итеративная модель.Графическое представление

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)23

Page 21: эволюция методологий управления (водопад, Rup, Agile)   башакин

Итеративная модель.Первая реализация

Спиральная модель Барри Боема (1988):

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)24

Page 22: эволюция методологий управления (водопад, Rup, Agile)   башакин

Итеративная модель.Достоинства (1)

• Цена внесения изменений существенно ниже• Вероятность успеха существенно выше• Не нужно формулировать все требования до начала

разработки• Можно приоритезировать требования• Можно начать пользоваться системой рано• Можно оперативно корректировать развитие проекта

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)25

Page 23: эволюция методологий управления (водопад, Rup, Agile)   башакин

Итеративная модель.Достоинства (2)

• Можно рано адресовать технологические риски• Ключевая функциональность тестируется лучше всего• Сохраняется высокий уровень документирования• «Заставляет» использовать автоматизированное

тестирование• Спонсор может защитить свои средства от перерасхода

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)26

Page 24: эволюция методологий управления (водопад, Rup, Agile)   башакин

Что такое RUP (1)

1. Методология разработки ПО. Лучшие практики:• Итеративность

• Архитектуро-центричность, компонентность

• Движущая сила – требования в форме прецедентов использования (use cases)

• Активное использование визуального моделирования

• Постоянная проверка качества

• Управление изменениями

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)27

Page 25: эволюция методологий управления (водопад, Rup, Agile)   башакин

Что такое RUP (2)

2. Процессный продукт• Описание ролей и активностей

• Шаблоны и примеры заполнения артефактов

• Руководства по выполнению активностей

• Настраиваемость

3. Интегрированный набор инструментальных средств

4. Руководства по инструментам

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)28

Page 26: эволюция методологий управления (водопад, Rup, Agile)   башакин

Сводная диаграмма

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)32

Page 27: эволюция методологий управления (водопад, Rup, Agile)   башакин

Итеративная модель(классика) – что не так?

• Потеря полноты и согласованности проектной документацией

• Поздняя определенность бюджета проекта• «Разбухание» методологии• Сложность внедрения методологии• Итеративный процесс существенно дороже «водопада»

• Доработка артефактов всегда дороже разработки «с нуля»

• Затраты на рефакторинг

• Больше усилий на управление

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)34

Page 28: эволюция методологий управления (водопад, Rup, Agile)   башакин

Плата за универсализм

• Проекты любого уровня сложности и масштаба• Проекты любого уровня ответственности• Команды любого размера и распределенности• Команды любого уровня профессионализма и

сработанности • Отношения с Заказчиком любого уровня формализма /

доверия и «прозрачности»• Произвольная степень вовлеченности Заказчика в процесс

разработки и судьбу проектаCopyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)

35

Page 29: эволюция методологий управления (водопад, Rup, Agile)   башакин

И что теперь?Нужна гибкость!

Алистэр Коуберн («Процесс как четвертое измерение», 2003):• «Секрет в том, что существует еще одна вершина,

которую пока еще не оценили по достоинству: процесс разработки. (…) Вторая часть этого "секрета" состоит в том, что это ни для кого не секрет. (…) старожилы часто рассказывали мне, как они давным-давно использовали то, что сейчас называется "гибкими методологиями", чтобы выполнить невыполнимый проект в срок »

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)36

Page 30: эволюция методологий управления (водопад, Rup, Agile)   башакин

Суть гибких методологий

• Зачем платить за универсализм? Ключевые моменты:• отказ от избыточного формализма

• исполнение проекта• (относительно) небольшой …

• самоорганизующейся командой …

• состоящей из высокопрофессиональных специалистов …

• «широкого профиля» …

• работающих «плечом к плечу» …

• (скорее всего) уже не первый год

• принятие изменений как неотъемлемой части разработки ПОCopyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)

37

Page 31: эволюция методологий управления (водопад, Rup, Agile)   башакин

«Облегченные»«тяжелые» методологии

• RUP XP – 2002, совместная разработка Object Mentor Inc. и Rational Software Corporation

• 2 варианта RUP начиная с версии 7.0:• RUP для больших проектов (Classic RUP)

• RUP для небольших проектов (RUP for Small Projects)

• 2 варианта MSF начиная с версии 4.0:• MSF для процесса CMMI

• MSF для Agile Development

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)38

Page 32: эволюция методологий управления (водопад, Rup, Agile)   башакин

Выбор методологии

• Любая методология может привести к неудаче и, в конечном счете, к провалу проекта

• Выход:• Учет специфики конкретного проекта

• Выбор оптимальной методологии (если возможно), или

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

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)39

Page 33: эволюция методологий управления (водопад, Rup, Agile)   башакин

Сильные стороны классических итеративных методологий (RUP)

• Применимость в более широком диапазоне ситуаций («любой проект»)

• Внимание проработке архитектуры• Внимание документированию требований и отслеживанию

связей требований с другими артефактами• Внимание моделированию

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)41

Page 34: эволюция методологий управления (водопад, Rup, Agile)   башакин

Сильные стороны гибких методологий

• Внимание «человеческому фактору» (отношения, коммуникации, мотивация, лидерство)

• Гибкость• Главное для всех в команде – успех проекта (а не успех

выполнения отдельной задачи)• Упор на постоянное взаимодействие с Заказчиком• Самоорганизация и самоуправление команд• Кроссфункциональность членов команд• Минимизация количества и объема артефактов

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)42

Page 35: эволюция методологий управления (водопад, Rup, Agile)   башакин

Обратить внимание:инженерные практики XP

• Рефакторинг• Test Driven Development• Непрерывная интеграция• Коллективное владение кодом• Парное программирование

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)43

Page 36: эволюция методологий управления (водопад, Rup, Agile)   башакин

Обратить внимание:Управленческие практики Scrum• Ежедневные краткие статусные митинги• Демонстрация результатов итерации Заказчику• Внутренний анализ хода итерации в команде

(ретроспектива)• Ревью хода итерации совместно с Заказчиком• Оценка оставшихся трудозатрат

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)44

Page 37: эволюция методологий управления (водопад, Rup, Agile)   башакин

Спасибо!

Вопросы?

Copyright © 2009 Учебный Центр Luxoft (www.Luxoft-Training.ru)45