SlideShare a Scribd company logo
1 of 45
Эффективный процесс
разработки ПО на основе
    гибких подходов
      Шамрай Александр
    a.shamray@cmcons.com
Обзор методологий
Развитие процессов
   разработки ПО
                     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

Способы создания качественного программного продукта
Способы создания качественного программного продуктаСпособы создания качественного программного продукта
Способы создания качественного программного продукта
Ingria. Technopark St. Petersburg
 
Новые времена. Трансформация офиса управления проектами
Новые времена. Трансформация офиса управления проектамиНовые времена. Трансформация офиса управления проектами
Новые времена. Трансформация офиса управления проектами
Александр Шамрай
 
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
guest09c59b06
 

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
 
Управление изменениями и релизами: один или два процесса?
Управление изменениями и релизами: один или два процесса?Управление изменениями и релизами: один или два процесса?
Управление изменениями и релизами: один или два процесса?
 
Управление релизами в системе управления ИТ
Управление релизами в системе управления ИТУправление релизами в системе управления ИТ
Управление релизами в системе управления ИТ
 
Превращая создание продукта в конкурентное преимущество: Системный инжиниринг
Превращая создание продукта в конкурентное преимущество: Системный инжинирингПревращая создание продукта в конкурентное преимущество: Системный инжиниринг
Превращая создание продукта в конкурентное преимущество: Системный инжиниринг
 
Управление разработкой продукта
Управление разработкой продуктаУправление разработкой продукта
Управление разработкой продукта
 
Управление разработкой продукта
Управление разработкой продуктаУправление разработкой продукта
Управление разработкой продукта
 
Способы создания качественного программного продукта
Способы создания качественного программного продуктаСпособы создания качественного программного продукта
Способы создания качественного программного продукта
 
Новые времена. Трансформация офиса управления проектами
Новые времена. Трансформация офиса управления проектамиНовые времена. Трансформация офиса управления проектами
Новые времена. Трансформация офиса управления проектами
 
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
 
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
 
Тьюториал "Введение в системную инженерию" (15 января 2013)
Тьюториал "Введение в системную инженерию" (15 января 2013)Тьюториал "Введение в системную инженерию" (15 января 2013)
Тьюториал "Введение в системную инженерию" (15 января 2013)
 
Управляем ИТ процессами вместе с Naumen Service Desk
Управляем ИТ процессами вместе с Naumen Service DeskУправляем ИТ процессами вместе с Naumen Service Desk
Управляем ИТ процессами вместе с Naumen Service Desk
 
Наводим порядок в КТД. Информационное обеспечение процесса подготовки произво...
Наводим порядок в КТД. Информационное обеспечение процесса подготовки произво...Наводим порядок в КТД. Информационное обеспечение процесса подготовки произво...
Наводим порядок в КТД. Информационное обеспечение процесса подготовки произво...
 
3-D Конструктор управления
3-D Конструктор управления3-D Конструктор управления
3-D Конструктор управления
 
Управление изменениями. Заметки на полях
Управление изменениями. Заметки на поляхУправление изменениями. Заметки на полях
Управление изменениями. Заметки на полях
 

Similar to Эффективный процесс разработки ПО на основе гибких подходов

Алексей Шалдышев — Проектное управление
Алексей Шалдышев — Проектное управлениеАлексей Шалдышев — Проектное управление
Алексей Шалдышев — Проектное управление
Daria Oreshkina
 
вольфсон основы Agile
вольфсон   основы Agileвольфсон   основы Agile
вольфсон основы Agile
Magneta AI
 
плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14
IKonkov
 
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
Методы управления проектами с коротким циклом - Agile от практиков_InnoTrain_...
Анастасия Виноградова
 
Практические аспекты разработки ПО #2
Практические аспекты разработки ПО #2Практические аспекты разработки ПО #2
Практические аспекты разработки ПО #2
Denis Umnov
 

Similar to Эффективный процесс разработки ПО на основе гибких подходов (20)

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

More from Александр Шамрай

Организация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSОрганизация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFS
Александр Шамрай
 
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Александр Шамрай
 
Организация процессов разработки на основе TFS
Организация процессов разработки на основе TFSОрганизация процессов разработки на основе TFS
Организация процессов разработки на основе TFS
Александр Шамрай
 
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Александр Шамрай
 

More from Александр Шамрай (20)

Azure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребностиAzure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребности
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестирование
 
Azure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольAzure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контроль
 
Организация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSОрганизация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFS
 
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
 
Cовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиCовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработки
 
Управление запросами к продукту на основе Team Foundation Server
Управление запросами к продукту на основе Team Foundation ServerУправление запросами к продукту на основе Team Foundation Server
Управление запросами к продукту на основе Team Foundation Server
 
Практическое руководство IBM RTC 3 - Использование отчетности и виджетов
Практическое руководство IBM RTC 3 - Использование отчетности и виджетовПрактическое руководство IBM RTC 3 - Использование отчетности и виджетов
Практическое руководство IBM RTC 3 - Использование отчетности и виджетов
 
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
 
Практическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Практическое руководство IBM RTC 3 - Управление проектами жизненного циклаПрактическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Практическое руководство IBM RTC 3 - Управление проектами жизненного цикла
 
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
 
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
 
Практическое руководство IBM RTC 3 - Управление заданиями Web client
Практическое руководство IBM RTC 3  - Управление заданиями Web clientПрактическое руководство IBM RTC 3  - Управление заданиями Web client
Практическое руководство IBM RTC 3 - Управление заданиями Web client
 
Практическое руководство IBM RTC 3 - Управление заданиями Eclipse client
Практическое руководство IBM RTC 3  - Управление заданиями Eclipse clientПрактическое руководство IBM RTC 3  - Управление заданиями Eclipse client
Практическое руководство IBM RTC 3 - Управление заданиями Eclipse client
 
Практическое руководство IBM RTC 3 - Установка и поддержка
Практическое руководство IBM RTC 3  - Установка и поддержкаПрактическое руководство IBM RTC 3  - Установка и поддержка
Практическое руководство IBM RTC 3 - Установка и поддержка
 
Сквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFSСквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFS
 
Организация процессов разработки на основе TFS
Организация процессов разработки на основе TFSОрганизация процессов разработки на основе TFS
Организация процессов разработки на основе TFS
 
Отчеты в TFS VSO  и практики аналитики
Отчеты в TFS VSO  и практики аналитикиОтчеты в TFS VSO  и практики аналитики
Отчеты в TFS VSO  и практики аналитики
 
Организация работы с требованиями и документацией в TFS
Организация работы с требованиями и документацией в TFSОрганизация работы с требованиями и документацией в TFS
Организация работы с требованиями и документацией в TFS
 
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
 

Эффективный процесс разработки ПО на основе гибких подходов

  • 1. Эффективный процесс разработки ПО на основе гибких подходов Шамрай Александр a.shamray@cmcons.com
  • 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