SlideShare a Scribd company logo
1 of 45
Download to read offline
Эффективный процесс
разработки ПО на основе
    гибких подходов
     Шамрай Александр
Обзор методологий
Развитие процессов
   разработки ПО
                     Crystal, Scrum, XP,
                     FDD, Lean, Kanban


          Спираль, RAD, RUP

          Водопад
1970   1980   1990      2000      2010
Водопад
Требования

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

                  Реализация

                     Проверка



               Развертывание
Проблемы с моделью
• Публичные отчеты
  o 31% проектов было отменены до их завершения.
  o 53% проектов выехали больше чем за 189% от их первоначальной
    оценки.
  o Только 16% проектов были завершены в срок и в рамках бюджета.
  o Для крупных компаний, завершенные проекты поставляли только 42%
    от первоначально заложенных функций.

• Одни из основных причин
  o Отсутствие привлечения пользователей: 13% от всех проектов
  o Незаконченные требования и спецификации: 12% всех проектов
  o Меняющиеся требования и спецификации: 12% процентов всех
    проектов
Железный треугольник
                Фиксировано




                 Требования




                 Управление
                  на основе
                   плана




      Затраты                 График




                Управляемо
Качество в водопаде
      Фиксированные
      требования,
      сроки, затраты


         Качество
Водопад остается на
          плаву

• Модель решала возникающие проблемы
• Модель представлялась логичной и
  перспективной
• Она работала
• Она отражает реальность рынка
Итеративные процессы



Спираль   RAD   RUP
Спиральная модель
RAD
RUP
Адаптивные (гибкие)
     процессы
Agile-манифест
• Мы постоянно открываем для себя более
  совершенные методы разработки
  программного обеспечения, занимаясь
  разработкой непосредственно и помогая
  в этом другим. Благодаря проделанной работе
  мы смогли осознать, что:
  o Люди и взаимодействие важнее процессов и инструментов
  o Работающий продукт важнее исчерпывающей документации
  o Сотрудничество с заказчиком важнее согласования условий
    контракта
  o Готовность к изменениям важнее следования первоначальному
    плану
• То есть, не отрицая важности того, что справа,
  мы всѐ таки больше ценим то, что слева.
Принципы Agile
•   Наивысшим приоритетом для нас является удовлетворение
    потребностей заказчика, благодаря регулярной и ранней
    поставке ценного программного обеспечения.
•   Изменение требований приветствуется, даже на поздних
    стадиях разработки. Agile-процессы позволяют использовать
    изменения для обеспечения заказчику конкурентного
    преимущества.
•   Работающий продукт следует выпускать как можно чаще, с
    периодичностью от пары недель до пары месяцев.
•   На протяжении всего проекта разработчики и представители
    бизнеса должны ежедневно работать вместе.
•   Над проектом должны работать мотивированные
    профессионалы. Чтобы работа была сделана, создайте
    условия, обеспечьте поддержку и полностью доверьтесь им.
•   Непосредственное общение является наиболее практичным и
    эффективным способом обмена информацией как с
    самой командой, так и внутри команды.
Принципы Agile
• Работающий продукт — основной показатель прогресса.
• Инвесторы, разработчики и пользователи должны иметь
  возможность поддерживать постоянный ритм бесконечно.
  Agile помогает наладить такой устойчивый процесс
  разработки.
• Постоянное внимание к техническому совершенству и
  качеству проектирования повышает гибкость проекта.
• Простота — искусство минимизации лишней работы —
  крайне необходима.
• Самые лучшие требования, архитектурные и технические
  решения рождаются у самоорганизующихся команд.
• Команда должна систематически анализировать
  возможные способы улучшения эффективности и
  соответственно корректировать стиль своей работы.
XP
Scrum
Lean
Гибкие методологии
 Scrum   Scrum/XP       XP   Гибрид     Lean   Другое



           3%         12%

            5%
           6%
                                      50%



                24%
Железный треугольник
                 Фиксировано




        Требования




Сроки                Затраты




                               Управляемо
ROI
                     Водопад                                                        Agile

Требования




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


                                                                                                Итерация3
                                                                                                - оплата
                              Реализация                                            Итерация2
                                                                                    - оплата


                                                                      Итерация1 -
                                           Проверка
                                                                      оплата


                                                      Развертывание
                                                         Оплата
Работа с требованиями
Product Owner
Роль Product Owner
• The Product Owner is the one and only person
  responsible for managing the Product Backlog and
  ensuring the value of the work the team performs.
  This person maintains the Product Backlog and
  ensures that it is visible to everyone.
                     Ken Schwaber “Scrum Guide”
ЖЕЛАТЕЛЬНЫЕ
     ХАРАКТЕРИСТИКИ
•   Дальновидный
•   Лидер и часть команды
•   Дипломат
•   Уполномоченные и ответственный
Взаимодействия
• Работа с командой
  o Член команды

• Работа со Scrum Master
  o Product Owner – что делаем
  o Scrum Master – как делаем

• Работа с заинтересованными лицами
  o Заказчик
  o Пользователь
  o Отделы продаж, маркетинга, обслуживания и т.д.
Масштабирование роли

                                                                            Главный
                                                                            Product
                                                                             Owner
Product Owner   Product Owner   Product Owner
      A          B - Главный          C
                                                             Product        Product        Product
                                                              Owner          Owner          Owner
                                                           подсистемы 1   подсистемы 2   подсистемы 3

 Команда А       Команда B       Команда C
                                                Product      Product        Product
                                                 Owner        Owner          Owner
                                                модуля 1     модуля 2       модуля 3
Видение продукта
Желаемые качества

• Общее и унифицированное
• Обширное и увлекающее
• Определять функции
Журнал продукта
Качества журнала
            продукта

•   В достаточной степени подробный
•   Позволяет оценить
•   Обновляемый
•   Имеет приоритет
Выявление и описание
       элементов
• Заполнять журнал вместе с командой и
  заинтересованными лицами
• Описывать элементы в достаточной для
  реализации детализации
• Использовать темы для группировки и
  структурирования требований
Поддержка журнала
       продукта
• Новые элементы выявляются и описываются, уже
  существующие изменяются или удаляются по
  необходимости.
• Журнал продукта имеет приоритеты. Наиболее
  важные в настоящее время элементы находятся
  сверху.
• Самые приоритетные элементы готовятся к
  предстоящему планированию Спринта: они
  декомпозируются и уточняются.
• Команда устанавливает размеры для элементов
  журнала продукта.
Декомпозиция
                элементов
                      Устанавливать тему и
                       описание встречи
                                                 Выбирать
                                              пользователей из
                                                  домена
Я как корпоративный
                        Устанавливать
  пользователь хочу
                      участников встречи
  создавать встречи
                                             Выполнять рассылку
                                                уведомлений
                      Указывать важность
                           встречи
Размер элементов
Размер элемента
0                 Сделано   Сделано
1                 XS        Очень маленькая
2                 S         Маленькая
3                 M         Средняя
5                 L         Большая
8                 XL        Очень большая
13                XXL       Вдвойне большая
20                XXXL      Огромная
Покер планирования
Варианты использования
Что такое вариант
         использования?
• Вариант использования – это спецификации
  набора действий, выполняемых
  системой, который дает заметный
  результат, который, как правило, значим для
  одного или нескольких субъектов или других
  заинтересованных сторон системы.
• Понятия:
  o   Основное действующее лицо
  o   Предварительные условия
  o   Основной поток
  o   Альтернативные потоки
Пример – основной
            поток
• Вариант использования – Регистрация курса
• Действующие лица:
  o Основное – Студент
1. Поток событий
  1.   РЕГИСТРАЦИЯ. Студент вводит имя и пароль и система проверяет
       зарегистрирован ли студент.
  2.   СОЗДАНИЕ ГРАФИКА. Система отображает доступные функции для
       студента. Это три функции: создать график, изменить график, удалить
       график. Студент выбирает «создать график».
  3.   ВЫБОР КУРСА. Система получает список доступных курсов и отображает
       его для студента. Студент выбирает максимум 4-ре основных курса и два
       дополнительных из представленного системой списка. Студент может
       удалять или добавлять курсы из списка пока он их не сохранил.
  4.   СОХРАНЕНИЕ ГРАФИКА. После завершения выбора необходимых курсов
       студент выполняет сохранения графика. Система проверяет правильно
       ли выбраны курсы и отображает их студенту в виде списка с уникальным
       идентификационным номером и с подтверждением сохранения. После
       подтверждения студентом сохранения система сохраняет график.
Пример –
 альтернативные потоки
2. Альтернативные потоки
  1.   ИЗМЕНЕНИЕ ГРАФИКА. Из основного шага СОЗДАНИЕ ГРАФИКА, когда
       студент имеет уже сохраненные графики. Система получает и
       отображает сохраненные графики и позволяет их использовать как
       отправную точку для редактирования графика. Вариант использования
       возвращается на шаг ВЫБОР КУРСА.
  2.   УДАЛЕНИЕ КУРСА ИЗ ГРАФИКА. Из основного шага СОЗДАНИЕ
       ГРАФИКА, когда студент выбирал курс и выбирает его удаление.
       Система спрашивает подтверждение удаление. После подтверждения
       студентом удаления, система удаляет курс из графика.
  3.   УДАЛЕНИЕ СУЩЕСТВУЮЩЕГО ГРАФИКА. Из основного шага СОЗДАНИЕ
       ГРАФИКА, когда студент имеет сохраненные графики и выбирает
       удаление одного из него. Система отображает содержимое график и
       спрашивает подтверждение удаление. После подтверждения студентом
       удаления, система удаляет график.
  4.   НЕОПРЕДЕЛЕННЫЙ ПОЛЬЗОВАТЕЛЬ. Из основного шага
       РЕГИСТРАЦИЯ, когда система не может найти введенные имя и
       пароль, она отображает ошибку.
  5.   ВЫХОД. Система в любой момент времени позволяет студенту выйти.
       Если студент редактирует график система отображает
       предупреждение о несохраненной информации и ожидает
       подтверждения выхода.
Формирование
   элементов журнала

          Главный поток
                          Альтернативный    User
                              поток 1      story 2


 User                     Альтернативный    User
story 1                                    story 3
                              поток 2

                          Альтернативный    User
                                           story 4
                              поток 3
Масштабирование Agile
©2010 Leffingwell, LLC.
Reproduced with permission
Вопросы?

More Related Content

What's hot

Управление качеством ПО. От общего к частному.
Управление качеством ПО. От общего к частному.Управление качеством ПО. От общего к частному.
Управление качеством ПО. От общего к частному.Vladimir Kalenov
 
Инжиниринг требований
Инжиниринг требованийИнжиниринг требований
Инжиниринг требованийSQALab
 
Requirement management
Requirement managementRequirement management
Requirement managementSoftmart
 
Управление изменениями и релизами: один или два процесса?
Управление изменениями и релизами: один или два процесса?Управление изменениями и релизами: один или два процесса?
Управление изменениями и релизами: один или два процесса?Cleverics
 
Управление релизами в системе управления ИТ
Управление релизами в системе управления ИТУправление релизами в системе управления ИТ
Управление релизами в системе управления ИТSoftmart
 
Тьюториал "Введение в системную инженерию" (15 января 2013)
Тьюториал "Введение в системную инженерию" (15 января 2013)Тьюториал "Введение в системную инженерию" (15 января 2013)
Тьюториал "Введение в системную инженерию" (15 января 2013)Anatoly Levenchuk
 
Управление разработкой продукта
Управление разработкой продуктаУправление разработкой продукта
Управление разработкой продуктаAlexey Filimonov
 
Управление разработкой продукта
Управление разработкой продуктаУправление разработкой продукта
Управление разработкой продуктаAlexey Filimonov
 
Способы создания качественного программного продукта
Способы создания качественного программного продуктаСпособы создания качественного программного продукта
Способы создания качественного программного продуктаIngria. Technopark St. Petersburg
 
Превращая создание продукта в конкурентное преимущество: Системный инжиниринг
Превращая создание продукта в конкурентное преимущество: Системный инжинирингПревращая создание продукта в конкурентное преимущество: Системный инжиниринг
Превращая создание продукта в конкурентное преимущество: Системный инжинирингIT Weekend
 
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?SQALab
 
Наводим порядок в КТД. Информационное обеспечение процесса подготовки произво...
Наводим порядок в КТД. Информационное обеспечение процесса подготовки произво...Наводим порядок в КТД. Информационное обеспечение процесса подготовки произво...
Наводим порядок в КТД. Информационное обеспечение процесса подготовки произво...Диалог Информационные Технологии
 
Новые времена. Трансформация офиса управления проектами
Новые времена. Трансформация офиса управления проектамиНовые времена. Трансформация офиса управления проектами
Новые времена. Трансформация офиса управления проектамиАлександр Шамрай
 
08 364 Implement Vir Wp Ru 1
08 364 Implement Vir Wp Ru 108 364 Implement Vir Wp Ru 1
08 364 Implement Vir Wp Ru 1guest09c59b06
 
3-D Конструктор управления
3-D Конструктор управления3-D Конструктор управления
3-D Конструктор управленияКоммандКор
 
Управление изменениями. Заметки на полях
Управление изменениями. Заметки на поляхУправление изменениями. Заметки на полях
Управление изменениями. Заметки на поляхCleverics
 

What's hot (20)

Управление качеством ПО. От общего к частному.
Управление качеством ПО. От общего к частному.Управление качеством ПО. От общего к частному.
Управление качеством ПО. От общего к частному.
 
L3 requirements
L3 requirementsL3 requirements
L3 requirements
 
Инжиниринг требований
Инжиниринг требованийИнжиниринг требований
Инжиниринг требований
 
Agile At Scale
Agile At ScaleAgile At Scale
Agile At Scale
 
Sep reqm-lec2
Sep reqm-lec2Sep reqm-lec2
Sep reqm-lec2
 
Requirement management
Requirement managementRequirement management
Requirement management
 
Управление изменениями и релизами: один или два процесса?
Управление изменениями и релизами: один или два процесса?Управление изменениями и релизами: один или два процесса?
Управление изменениями и релизами: один или два процесса?
 
Управление релизами в системе управления ИТ
Управление релизами в системе управления ИТУправление релизами в системе управления ИТ
Управление релизами в системе управления ИТ
 
Тьюториал "Введение в системную инженерию" (15 января 2013)
Тьюториал "Введение в системную инженерию" (15 января 2013)Тьюториал "Введение в системную инженерию" (15 января 2013)
Тьюториал "Введение в системную инженерию" (15 января 2013)
 
Управление разработкой продукта
Управление разработкой продуктаУправление разработкой продукта
Управление разработкой продукта
 
Управление разработкой продукта
Управление разработкой продуктаУправление разработкой продукта
Управление разработкой продукта
 
Способы создания качественного программного продукта
Способы создания качественного программного продуктаСпособы создания качественного программного продукта
Способы создания качественного программного продукта
 
Превращая создание продукта в конкурентное преимущество: Системный инжиниринг
Превращая создание продукта в конкурентное преимущество: Системный инжинирингПревращая создание продукта в конкурентное преимущество: Системный инжиниринг
Превращая создание продукта в конкурентное преимущество: Системный инжиниринг
 
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
 
Наводим порядок в КТД. Информационное обеспечение процесса подготовки произво...
Наводим порядок в КТД. Информационное обеспечение процесса подготовки произво...Наводим порядок в КТД. Информационное обеспечение процесса подготовки произво...
Наводим порядок в КТД. Информационное обеспечение процесса подготовки произво...
 
Управляем ИТ процессами вместе с Naumen Service Desk
Управляем ИТ процессами вместе с Naumen Service DeskУправляем ИТ процессами вместе с Naumen Service Desk
Управляем ИТ процессами вместе с Naumen Service Desk
 
Новые времена. Трансформация офиса управления проектами
Новые времена. Трансформация офиса управления проектамиНовые времена. Трансформация офиса управления проектами
Новые времена. Трансформация офиса управления проектами
 
08 364 Implement Vir Wp Ru 1
08 364 Implement Vir Wp Ru 108 364 Implement Vir Wp Ru 1
08 364 Implement Vir Wp Ru 1
 
3-D Конструктор управления
3-D Конструктор управления3-D Конструктор управления
3-D Конструктор управления
 
Управление изменениями. Заметки на полях
Управление изменениями. Заметки на поляхУправление изменениями. Заметки на полях
Управление изменениями. Заметки на полях
 

Similar to Microsoft ALM VS&TFS 2012 (Семинары. А.Шамрай)

Работа с требованиями в условиях Agile трансформации
Работа с требованиями в условиях Agile трансформацииРабота с требованиями в условиях Agile трансформации
Работа с требованиями в условиях Agile трансформацииAndrii Mandrika
 
Георгий Баркан Разработка тиражируемого продукта. Преимущества бизнес-модели
Георгий Баркан Разработка тиражируемого продукта. Преимущества бизнес-моделиГеоргий Баркан Разработка тиражируемого продукта. Преимущества бизнес-модели
Георгий Баркан Разработка тиражируемого продукта. Преимущества бизнес-моделиТранслируем.бел
 
Роль аналитика в негибких методологиях разработки
Роль аналитика в негибких методологиях разработкиРоль аналитика в негибких методологиях разработки
Роль аналитика в негибких методологиях разработкиDevDay
 
Agile scrum - гибкое управление проектами
Agile   scrum - гибкое управление проектамиAgile   scrum - гибкое управление проектами
Agile scrum - гибкое управление проектамиMikhail Sofonov, PMP, P2M, PRINCE2
 
РИК: Управление качеством проекта
РИК: Управление качеством проектаРИК: Управление качеством проекта
РИК: Управление качеством проектаKursrik
 
Бизнес-анализ в мобильной разработке
Бизнес-анализ в мобильной разработкеБизнес-анализ в мобильной разработке
Бизнес-анализ в мобильной разработкеAlekhin Sasha
 
Алексей Шалдышев — Проектное управление
Алексей Шалдышев — Проектное управлениеАлексей Шалдышев — Проектное управление
Алексей Шалдышев — Проектное управлениеDaria Oreshkina
 
григорьев андрей, юмисофт, основные ошибки ведения It проектов - от документа...
григорьев андрей, юмисофт, основные ошибки ведения It проектов - от документа...григорьев андрей, юмисофт, основные ошибки ведения It проектов - от документа...
григорьев андрей, юмисофт, основные ошибки ведения It проектов - от документа...New Business Idea
 
3 кейса провала и успеха внедрения Agile
3 кейса провала и успеха внедрения Agile3 кейса провала и успеха внедрения Agile
3 кейса провала и успеха внедрения AgileAskhat Urazbaev
 
Описание содержания проекта
Описание содержания проектаОписание содержания проекта
Описание содержания проектаYury Kupriyanov
 
вольфсон основы Agile
вольфсон   основы Agileвольфсон   основы Agile
вольфсон основы AgileMagneta AI
 
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...Анастасия Виноградова
 
плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14IKonkov
 
Практические аспекты разработки ПО #2
Практические аспекты разработки ПО #2Практические аспекты разработки ПО #2
Практические аспекты разработки ПО #2Denis Umnov
 
Продуктсорсинг - меняем аутсорсинг или как вместе с заказчиком создавать клас...
Продуктсорсинг - меняем аутсорсинг или как вместе с заказчиком создавать клас...Продуктсорсинг - меняем аутсорсинг или как вместе с заказчиком создавать клас...
Продуктсорсинг - меняем аутсорсинг или как вместе с заказчиком создавать клас...SQALab
 
Обзор Feature-Driven Development и Domain-Driven Design
Обзор Feature-Driven Development и Domain-Driven DesignОбзор Feature-Driven Development и Domain-Driven Design
Обзор Feature-Driven Development и Domain-Driven DesignAndrey Bibichev
 
Ingria mobile B2B
Ingria mobile B2BIngria mobile B2B
Ingria mobile B2BInfoShell
 
Работа с требованиями в Agile
Работа с требованиями в AgileРабота с требованиями в Agile
Работа с требованиями в AgileISsoft
 

Similar to Microsoft ALM VS&TFS 2012 (Семинары. А.Шамрай) (20)

Работа с требованиями в условиях Agile трансформации
Работа с требованиями в условиях Agile трансформацииРабота с требованиями в условиях Agile трансформации
Работа с требованиями в условиях Agile трансформации
 
Георгий Баркан Разработка тиражируемого продукта. Преимущества бизнес-модели
Георгий Баркан Разработка тиражируемого продукта. Преимущества бизнес-моделиГеоргий Баркан Разработка тиражируемого продукта. Преимущества бизнес-модели
Георгий Баркан Разработка тиражируемого продукта. Преимущества бизнес-модели
 
Роль аналитика в негибких методологиях разработки
Роль аналитика в негибких методологиях разработкиРоль аналитика в негибких методологиях разработки
Роль аналитика в негибких методологиях разработки
 
Agile scrum - гибкое управление проектами
Agile   scrum - гибкое управление проектамиAgile   scrum - гибкое управление проектами
Agile scrum - гибкое управление проектами
 
Media5 new style prez
Media5 new style prezMedia5 new style prez
Media5 new style prez
 
РИК: Управление качеством проекта
РИК: Управление качеством проектаРИК: Управление качеством проекта
РИК: Управление качеством проекта
 
Бизнес-анализ в мобильной разработке
Бизнес-анализ в мобильной разработкеБизнес-анализ в мобильной разработке
Бизнес-анализ в мобильной разработке
 
Алексей Шалдышев — Проектное управление
Алексей Шалдышев — Проектное управлениеАлексей Шалдышев — Проектное управление
Алексей Шалдышев — Проектное управление
 
григорьев андрей, юмисофт, основные ошибки ведения It проектов - от документа...
григорьев андрей, юмисофт, основные ошибки ведения It проектов - от документа...григорьев андрей, юмисофт, основные ошибки ведения It проектов - от документа...
григорьев андрей, юмисофт, основные ошибки ведения It проектов - от документа...
 
3 кейса провала и успеха внедрения Agile
3 кейса провала и успеха внедрения Agile3 кейса провала и успеха внедрения Agile
3 кейса провала и успеха внедрения Agile
 
Описание содержания проекта
Описание содержания проектаОписание содержания проекта
Описание содержания проекта
 
вольфсон основы Agile
вольфсон   основы Agileвольфсон   основы Agile
вольфсон основы Agile
 
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
 
плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14
 
Практические аспекты разработки ПО #2
Практические аспекты разработки ПО #2Практические аспекты разработки ПО #2
Практические аспекты разработки ПО #2
 
Введение в Agile
Введение в AgileВведение в Agile
Введение в Agile
 
Продуктсорсинг - меняем аутсорсинг или как вместе с заказчиком создавать клас...
Продуктсорсинг - меняем аутсорсинг или как вместе с заказчиком создавать клас...Продуктсорсинг - меняем аутсорсинг или как вместе с заказчиком создавать клас...
Продуктсорсинг - меняем аутсорсинг или как вместе с заказчиком создавать клас...
 
Обзор Feature-Driven Development и Domain-Driven Design
Обзор Feature-Driven Development и Domain-Driven DesignОбзор Feature-Driven Development и Domain-Driven Design
Обзор Feature-Driven Development и Domain-Driven Design
 
Ingria mobile B2B
Ingria mobile B2BIngria mobile B2B
Ingria mobile B2B
 
Работа с требованиями в Agile
Работа с требованиями в AgileРабота с требованиями в Agile
Работа с требованиями в Agile
 

Microsoft ALM VS&TFS 2012 (Семинары. А.Шамрай)

  • 1. Эффективный процесс разработки ПО на основе гибких подходов Шамрай Александр
  • 3. Развитие процессов разработки ПО Crystal, Scrum, XP, FDD, Lean, Kanban Спираль, RAD, RUP Водопад 1970 1980 1990 2000 2010
  • 4. Водопад Требования Проектирование Реализация Проверка Развертывание
  • 5. Проблемы с моделью • Публичные отчеты o 31% проектов было отменены до их завершения. o 53% проектов выехали больше чем за 189% от их первоначальной оценки. o Только 16% проектов были завершены в срок и в рамках бюджета. o Для крупных компаний, завершенные проекты поставляли только 42% от первоначально заложенных функций. • Одни из основных причин o Отсутствие привлечения пользователей: 13% от всех проектов o Незаконченные требования и спецификации: 12% всех проектов o Меняющиеся требования и спецификации: 12% процентов всех проектов
  • 6. Железный треугольник Фиксировано Требования Управление на основе плана Затраты График Управляемо
  • 7. Качество в водопаде Фиксированные требования, сроки, затраты Качество
  • 8. Водопад остается на плаву • Модель решала возникающие проблемы • Модель представлялась логичной и перспективной • Она работала • Она отражает реальность рынка
  • 11. RAD
  • 12. RUP
  • 14. Agile-манифест • Мы постоянно открываем для себя более совершенные методы разработки программного обеспечения, занимаясь разработкой непосредственно и помогая в этом другим. Благодаря проделанной работе мы смогли осознать, что: o Люди и взаимодействие важнее процессов и инструментов o Работающий продукт важнее исчерпывающей документации o Сотрудничество с заказчиком важнее согласования условий контракта o Готовность к изменениям важнее следования первоначальному плану • То есть, не отрицая важности того, что справа, мы всѐ таки больше ценим то, что слева.
  • 15. Принципы Agile • Наивысшим приоритетом для нас является удовлетворение потребностей заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения. • Изменение требований приветствуется, даже на поздних стадиях разработки. Agile-процессы позволяют использовать изменения для обеспечения заказчику конкурентного преимущества. • Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцев. • На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе. • Над проектом должны работать мотивированные профессионалы. Чтобы работа была сделана, создайте условия, обеспечьте поддержку и полностью доверьтесь им. • Непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри команды.
  • 16. Принципы Agile • Работающий продукт — основной показатель прогресса. • Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм бесконечно. Agile помогает наладить такой устойчивый процесс разработки. • Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта. • Простота — искусство минимизации лишней работы — крайне необходима. • Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд. • Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы.
  • 17. XP
  • 18. Scrum
  • 19. Lean
  • 20. Гибкие методологии Scrum Scrum/XP XP Гибрид Lean Другое 3% 12% 5% 6% 50% 24%
  • 21. Железный треугольник Фиксировано Требования Сроки Затраты Управляемо
  • 22. ROI Водопад Agile Требования Проектирование Итерация3 - оплата Реализация Итерация2 - оплата Итерация1 - Проверка оплата Развертывание Оплата
  • 25. Роль Product Owner • The Product Owner is the one and only person responsible for managing the Product Backlog and ensuring the value of the work the team performs. This person maintains the Product Backlog and ensures that it is visible to everyone. Ken Schwaber “Scrum Guide”
  • 26. ЖЕЛАТЕЛЬНЫЕ ХАРАКТЕРИСТИКИ • Дальновидный • Лидер и часть команды • Дипломат • Уполномоченные и ответственный
  • 27. Взаимодействия • Работа с командой o Член команды • Работа со Scrum Master o Product Owner – что делаем o Scrum Master – как делаем • Работа с заинтересованными лицами o Заказчик o Пользователь o Отделы продаж, маркетинга, обслуживания и т.д.
  • 28. Масштабирование роли Главный Product Owner Product Owner Product Owner Product Owner A B - Главный C Product Product Product Owner Owner Owner подсистемы 1 подсистемы 2 подсистемы 3 Команда А Команда B Команда C Product Product Product Owner Owner Owner модуля 1 модуля 2 модуля 3
  • 30. Желаемые качества • Общее и унифицированное • Обширное и увлекающее • Определять функции
  • 32. Качества журнала продукта • В достаточной степени подробный • Позволяет оценить • Обновляемый • Имеет приоритет
  • 33. Выявление и описание элементов • Заполнять журнал вместе с командой и заинтересованными лицами • Описывать элементы в достаточной для реализации детализации • Использовать темы для группировки и структурирования требований
  • 34. Поддержка журнала продукта • Новые элементы выявляются и описываются, уже существующие изменяются или удаляются по необходимости. • Журнал продукта имеет приоритеты. Наиболее важные в настоящее время элементы находятся сверху. • Самые приоритетные элементы готовятся к предстоящему планированию Спринта: они декомпозируются и уточняются. • Команда устанавливает размеры для элементов журнала продукта.
  • 35. Декомпозиция элементов Устанавливать тему и описание встречи Выбирать пользователей из домена Я как корпоративный Устанавливать пользователь хочу участников встречи создавать встречи Выполнять рассылку уведомлений Указывать важность встречи
  • 36. Размер элементов Размер элемента 0 Сделано Сделано 1 XS Очень маленькая 2 S Маленькая 3 M Средняя 5 L Большая 8 XL Очень большая 13 XXL Вдвойне большая 20 XXXL Огромная
  • 39. Что такое вариант использования? • Вариант использования – это спецификации набора действий, выполняемых системой, который дает заметный результат, который, как правило, значим для одного или нескольких субъектов или других заинтересованных сторон системы. • Понятия: o Основное действующее лицо o Предварительные условия o Основной поток o Альтернативные потоки
  • 40. Пример – основной поток • Вариант использования – Регистрация курса • Действующие лица: o Основное – Студент 1. Поток событий 1. РЕГИСТРАЦИЯ. Студент вводит имя и пароль и система проверяет зарегистрирован ли студент. 2. СОЗДАНИЕ ГРАФИКА. Система отображает доступные функции для студента. Это три функции: создать график, изменить график, удалить график. Студент выбирает «создать график». 3. ВЫБОР КУРСА. Система получает список доступных курсов и отображает его для студента. Студент выбирает максимум 4-ре основных курса и два дополнительных из представленного системой списка. Студент может удалять или добавлять курсы из списка пока он их не сохранил. 4. СОХРАНЕНИЕ ГРАФИКА. После завершения выбора необходимых курсов студент выполняет сохранения графика. Система проверяет правильно ли выбраны курсы и отображает их студенту в виде списка с уникальным идентификационным номером и с подтверждением сохранения. После подтверждения студентом сохранения система сохраняет график.
  • 41. Пример – альтернативные потоки 2. Альтернативные потоки 1. ИЗМЕНЕНИЕ ГРАФИКА. Из основного шага СОЗДАНИЕ ГРАФИКА, когда студент имеет уже сохраненные графики. Система получает и отображает сохраненные графики и позволяет их использовать как отправную точку для редактирования графика. Вариант использования возвращается на шаг ВЫБОР КУРСА. 2. УДАЛЕНИЕ КУРСА ИЗ ГРАФИКА. Из основного шага СОЗДАНИЕ ГРАФИКА, когда студент выбирал курс и выбирает его удаление. Система спрашивает подтверждение удаление. После подтверждения студентом удаления, система удаляет курс из графика. 3. УДАЛЕНИЕ СУЩЕСТВУЮЩЕГО ГРАФИКА. Из основного шага СОЗДАНИЕ ГРАФИКА, когда студент имеет сохраненные графики и выбирает удаление одного из него. Система отображает содержимое график и спрашивает подтверждение удаление. После подтверждения студентом удаления, система удаляет график. 4. НЕОПРЕДЕЛЕННЫЙ ПОЛЬЗОВАТЕЛЬ. Из основного шага РЕГИСТРАЦИЯ, когда система не может найти введенные имя и пароль, она отображает ошибку. 5. ВЫХОД. Система в любой момент времени позволяет студенту выйти. Если студент редактирует график система отображает предупреждение о несохраненной информации и ожидает подтверждения выхода.
  • 42. Формирование элементов журнала Главный поток Альтернативный User поток 1 story 2 User Альтернативный User story 1 story 3 поток 2 Альтернативный User story 4 поток 3