SlideShare a Scribd company logo
Agile в    БОЛЬШИХ и              ОЧЕНЬ
БОЛЬШИХ            проектах
                     проектирование в Agile

          Михаил Заборов
  Руководитель направления     «Торговые сети»
          AgileDays, Екатеринбург, 2010
Очень большие
         проекты
Agenda



         Большие проекты


         Текущая работа

                           2/92
Говорим про
корпоративные системы:



                         3/92
Корпоративные (Enterprise)
           Системы

Прикладное программное обеспечение
предприятий и организаций

            Buzzword
                ERP / биллинг /
  банковские / торговые / складские системы
                      …



                                              4/92
В чем можно мерить размер?

? Объем данных
? Количество транзакций
? Объем изменений
? Длительность проекта
? Количество отчетов




                               5/92
Размеры систем
        1ТБ



              3млн


               10млн




    270млн




                       6/92
БОЛЬШИЕ проекты
                                 = от 10 – 15 чел. лет
                                                             t
0               4                 1 год
                мес.
    Маленькие          Средние            Наш размерчик!




                             Команда 5-10 человек




                                                      7/92
Жизнь успешных и
востребованных проектов
 после внедрения только
       начинается

              Высокая динамика
                     требований
                            8/92
30000

                    25000
Кол-во метаданных




                    20000

                    15000

                    10000

                    5000
                                            Начало работы
                       0
                            0       10        20        30   40   50    60        70
                                                                       Время (мес.)
                                Изменение    Создание



                                                                                      9/92
30000

                    25000
Кол-во метаданных




                    20000

                    15000

                    10000

                    5000
                                            Начало работы

                       0
                            0       10      20         30   40   50    60        70
                                                                      Время (мес.)
                                Изменение   Создание



                                                                                     10/92
Очень большие
         проекты
Agenda



         Большие проекты


         Текущая работа

                           11/92
ОЧЕНЬ БОЛЬШИЕ
    проекты      = от 40 – 100 чел. лет
                                           t
0   1 год           10 лет




              Команда 30-50 человек




                                   12/92
Как сюда впихнуть Agile?




                       13/92
А зачем нам вообще
              Agile?

Спросите этих
парней
      :-)




                             14/92
Нам важнее
Люди и их взаимодействие,
чем процессы и средства

Работающее ПО,
чем исчерпывающая документация

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

Реагирование на изменения, чем следование плану

                                              15/92
Удовлетворенность заказчика ранними и
      периодическими поставками ценного ПО

        Невысокая цена поздних внесений
        изменений в начальные требования

Максимальная вовлеченность самих разработчиков в
     процесс проектирования и дизайна системы.

   Непосредственное общение разработчиков с
               пользователями

   Отсутствие лишних артефактов, в частности,
              write-only документации

    Работающее и реально использующееся ПО
             http://agilemanifesto.org/principles.html   16/92
Командой в 40 чел управлять
очень сложно
Потери на коммуникации

Бутылочное горло

Проблемы синхронизации

Оптимальный размер
команды 5-7 человек

Про это нам и Agile говорит :-)


                                  17/92
Вывод – нужно делить
команды!




                       18/92
По каким принципам делить?




                             19/92
Component Team




                 20/92
Feature Team




               21/92
С чисто организационной точки
зрения по большому счету —
без разницы




                          22/92
Но кроме организационных
возникает очень много других
         проблем ...
            :-(


                          23/92
Сложность системы

Не лезет в одну голову
«оно так работает…»,почему — никто
не знает. Проблемы обучения
(персонал, пользователь).

Непредсказуемые последствия изменений
Ограничение развития. Поправили в одном месте —
отвалилось в совсем другом.


Стихийные внутренние связи
«Ничьи» и «общие» данные, коды и проч…
невозможно отследить и контролировать.


                                                  24/92
Производительность
Объемы данных
Подъем тестового стенда с реальными данными - 3 суток.


Масштабируемость
«В следующем году мы планируем увеличить бизнес вдвое»

Асинхронность взаимодействия
Критичные приложения ждут не критичные. Лишние блокировки

Железо
Увеличение аппаратных мощностей не спасает.
«в один прекрасный день оно не уложится в отведенное время»


                                                         25/92
Делить нужно не только
 команды, но и систему!




                          26/92
Карта приложения




         Крупные модули и
         API между ними
                       27/92
Tom Demarko




Закон Конвея
 Структура системы неизбежно
  повторяет структуру команд

Модули продукта инкапсулируются
внутри команды
                                  28/92
Component Team vs Feature Team




 И тут мы солидарны :-)


                           29/92
А как теперь эти команды
    синхронизировать?




                           30/92
Agile предлагает
 Scrum of Scrum




                   31/92
Мы пошли другим путем




                        32/92
Команды максимально
независимы и с минимальной
синхронизацией




                             33/92
Критерии деления команд
       и системы




                      34/92
Процессы разработки модулей
- проектирования, технической
поддержки, документирования, выпуска
версий, тестирования -
не должны зависеть друг от
друга
- за исключением изменения API




                                       35/92
Физические границы должны быть просты
и понятны
по данным,
исполняемым модулям,
исходным кодам и т.д.


Нет общих данных
владелец данных всегда известен


Нет общих экземпляров исполняемых
модулей
в том числе библиотек

                                    36/92
Должна быть возможность:

Разместить модули на
разные аппаратные мощности

Иметь различные стратегии
резервного копирования

Иметь off-line связь между модулями

Выполнить модули в разных технологиях.


                                         37/92
Модуль:

Может быть продан
отдельно

Имеет самостоятельную ценность
а не только в месте с другими продуктами

Может устанавливаться с
продуктами других производителей


                                           38/92
Как делить?




              39/92
Гради Буч




«Внутрикомпонентная
 связь обычно сильнее,
чем связь между компонентами»

                                40/92
Например, по организационно
        й структуре
 автоматизируемого объекта

                  Совет
                директоров

Розница   Опт    Закупки     Логистика   Финансы




                                            41/92
Связи между отделами слабее, чем внутри
отделов
Регламенты взаимодействия, локальная группа с которой
проще договариваться

Замкнутая предметная область
Проще обучать сотрудников, осуществлять тестирование
и поддержку


Проще внедрять
Локализованное внедрение


Проще общаться с «верхним» руководством
заказчика
понятно, с какой областью идет работа. Общее руководство
у всех пользователей
                                                        42/92
Этого достаточно?
Agile               Agile

                             Agile




        Agile



                              43/92
К сожалению, нет :-(




                       44/92
Деление на
         крупные модули
Agenda



         Большие проекты


         Текущая работа

                           45/92
Дело в том, каждый модуль –
    это все еще            БОЛЬШОЙ
    проект                        = от 10 – 15 чел. лет
                                                                t
0               4                    1 год
                мес.
    Маленькие           Средние              Наш размерчик!




                       Команда 5-10 человек


                                                        46/92
Как получить то, что
 действительно нужно
    пользователю ?



                       47/92
Agile предлагает
 инкрементальный
     дизайн:




                   48/92
49/92
В реальности задачи в
разных итерациях сильно
  связаны между собой
Приходится переделывать ранее
         сделанное

                            50/92
http://alistair.cockburn.us/Incremental+versus+iterative+development
http://alistair.cockburn.us/Incremental+means+adding%2c+iterative+means+reworking


Алистер Коберн
вводит различие между
итеративной и
инкрементальной
разработкой

                                                                              51/92
52/92
53/92
Основное отличие

Инкрементальная разработка –
добавление нового (add onto)

Итеративная — переделывание
(rework) ранее сделанного

                               54/92
Для действительно БОЛЬШИХ[*]
   СИСТЕМ большой разницы
             нет
            :-(
[*]   Время итерации 2-3 недели,
        время проекта 7-8 лет

                                   55/92
Как из этого:
             Путем постоянного
               переделывания



  Получить
  вот это:                   ?
                             56/92
Для этого и этого этапа

                                Опять
                              инкремент



 А иногда и для этого
   http://lobasev.ru/2008/01/blog-post.html   57/92
При разработке короткими
итерациями мы работаем с
небольшим куском системы




                       58/92
59/92
Где гарантия, что
 мы получим то,
    что нужно?


                    60/92
61/92
62/92
В народном творчестве
     это находит
   свое отражение:


                        63/92
http://thekonst.net/ru/propaganda/291




                                        64/92
Нужна общая картина




                      65/92
66/92
При проектировании ИС
     такая картина —
модель предметной области
                       aka Domain Mоdel
               На самом деле
               конечно модель
                  системы




                                     67/92
Признаки качественной модели
  Простая

  Лаконичная
  обозримая



  Понятная заказчику
  ключевому пользователю



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


                               68/92
Признаки качественной модели
Что на картинке, то и в системе…

Достаточно формальная

Эскиз, а не детальная спецификация




                                     69/92
Признаки качественной модели

Отражает действительность
(близка к предметной области)




Зависит от контекста




                                70/92
Модель предметной области –
  составляет существенную
        часть Vision

         Назначение и границы модуля
         Основные пользователи
         Основные функции



                                 71/92
Bonus

 Можно оценить реализуемость проекта


 Можно оценить объем работ




                                        72/92
На этом
проектирование
закончено?




                 73/92
Практически…




               74/92
Деление на
         крупные модули
Agenda



         Модель предметной
         области

         Текущая работа

                          75/92
Мы часто пишем детальные
постановки на кусок системы




                          76/92
Пишем непосредственно перед
          стартом разработки
             Протокол                Постановка



Выясняем                  Пишем и          Разрабатываем, тестируем
детальные                согласуем                     ,
требования              постановку                 отгружаем




  Sprint 1        Sprint 2 Sprint 3          Sprint 4 Sprint 5

                                                                 77/92
Согласуем с заказчиком




Заказчику понятно, что для него будет
               сделано
                                        78/92
Постановка не содержит
технических деталей
                    не спецификация




   В терминах пользователей
                                79/92
Не успевает «протухать»



                   через год




       Ситуация не успела поменяться
Заказчик и разработчики все еще в контексте
                                        80/92
Проектирование методом
     «Набегающей волны»
По аналогии с планированием методом набегающей волны
(Rolling Wave Planning)


                             Snorkeling
                                 &
                            Scuba Diving

                                   Питер Хрущка
                                                       81/92
И это Agile?




               82/92
Удовлетворенность заказчика ранними и
      периодическими поставками ценного ПО

        Невысокая цена поздних внесений
        изменений в начальные требования

Максимальная вовлеченность самих разработчиков в
     процесс проектирования и дизайна системы.

   Непосредственное общение разработчиков с
               пользователями

   Отсутствие лишних артефактов, в частности,
              write-only документации

    Работающее и реально использующееся ПО

            Да, конечно!                        83/92
Bonus
 Легче вводить новых людей в проект


 Есть история принятых решений


 Возможность выявить недопонимание,
до начала разработки


 Заказчик вовлекается в принятие
решений

                                       84/92
А   как иначе?




                 85/92
Это значит, больше
  Мы собираемся                        никакого
попробовать кое-что             планирования, никакой            Так вот как
                                документации. Просто                            Твоя
под названием «Agile                                                 это
                                начинайте писать код и                         школа.
программирование».                                               называется.
                                     жаловаться.




 Скотт Адамс (Scott Adams)
 Источник: http://dilbertru.blogspot.com/2007/11/20071166.html



                                                                                86/92
Деление на
крупные модули

Модель предметной
области

Детальная
постановка
                 87/92
Про это мы уже рассказывали




                        88/92
http://www.custis.ru/docs/publishing/secr-2008/2008-10-22-analyst-in-agile-show.pdf




                                                                                      89/92
Базовая методология-
    Планы счетов




                       90/92
91/92
Спасибо!

    team.custis.ru


                     92/92

More Related Content

PPTX
Архитектура и agile
PDF
ВМЕСТЕ: ТЕОРИЯ ОГРАНИЧЕНИЙ (TOC) И LEAN - обзор. Одед Коуэн и Елена Федурко-К...
PDF
Проектирование больших ИС в Agile (статья)
PDF
Проектирование больших ИС в Agile
PDF
Качество продукта через управление проектом
PDF
Тестирование в Agile для больших команд: путь трансформации
PPTX
TDD для интеграции с БД легко и просто!
PPT
CCPM DBR Vebinar 28 01 2010
Архитектура и agile
ВМЕСТЕ: ТЕОРИЯ ОГРАНИЧЕНИЙ (TOC) И LEAN - обзор. Одед Коуэн и Елена Федурко-К...
Проектирование больших ИС в Agile (статья)
Проектирование больших ИС в Agile
Качество продукта через управление проектом
Тестирование в Agile для больших команд: путь трансформации
TDD для интеграции с БД легко и просто!
CCPM DBR Vebinar 28 01 2010

Similar to Agile в больших и очень больших проектах (20)

PPTX
C. Кайгородцев: Docsvision - эволюция СЭД.
PPT
Why Drupal. Виктор Левандовский.
PDF
Корпоративные ИС: как управлять изменениями, чтобы отвечать требованиям бизнеса"
PPTX
О разработке сайтов в целом
PDF
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
PPTX
Опыт госпроектов и взаимодействия с корпоративными структурами
PPTX
Сотрудничество с корпорациями: рецепты из практики
PDF
Practice of enterprice development ProfsoUX-2017
PPTX
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
PDF
We're all DevOps [RU]
PPT
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
PDF
Консалтех. Масштабируй изменения!
PDF
Новые требования к ECM - ответы российских разработчиков
PDF
DevOps от и до - что, зачем и почему
PPSX
Александр Муравлев, Спортмастер - Искусство создания эффективных процессов
PDF
10 лет развития продукта: чему можно научиться (Сергей Рыжиков)
PPT
CompanyMedia4You - Нити управления
PPTX
Рабочие группы. Новая функциональность системы электронного документооборота...
PPTX
изменения в проекте. что делать с постоянным притоком пожеланий заказчика
PPTX
Developmentmanage3.0
C. Кайгородцев: Docsvision - эволюция СЭД.
Why Drupal. Виктор Левандовский.
Корпоративные ИС: как управлять изменениями, чтобы отвечать требованиям бизнеса"
О разработке сайтов в целом
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
Опыт госпроектов и взаимодействия с корпоративными структурами
Сотрудничество с корпорациями: рецепты из практики
Practice of enterprice development ProfsoUX-2017
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
We're all DevOps [RU]
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
Консалтех. Масштабируй изменения!
Новые требования к ECM - ответы российских разработчиков
DevOps от и до - что, зачем и почему
Александр Муравлев, Спортмастер - Искусство создания эффективных процессов
10 лет развития продукта: чему можно научиться (Сергей Рыжиков)
CompanyMedia4You - Нити управления
Рабочие группы. Новая функциональность системы электронного документооборота...
изменения в проекте. что делать с постоянным притоком пожеланий заказчика
Developmentmanage3.0
Ad

More from CUSTIS (20)

PDF
Три истории микросервисов, или MSA для Enterprise
PPTX
Долгоживущие ИТ в динамичном ритейле
PDF
Будущее уже наступило: от Agile к бирюзовым организациям
PDF
Как выбрать для проекта практики проектирования и работы с требованиями
PDF
Диаграммы учета как средство для наглядного и целостного отображения правил у...
PPTX
Agile — ответ на вызовы третьей промышленной революции
PPTX
Опыт построения микросервисной архитектуры в цифровом банке
PDF
Золотая лихорадка MSA: почему нам не подошли микросервисы?
PPT
Барьеры микросервисной архитектуры
PPTX
Три истории микросервисов
PPTX
От монолитных моделей предметной области — к модульным
PPTX
Проблемы управления правами доступа к информационным системам крупной торгово...
PDF
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
PPTX
Agile и управление знаниями в ИТ-проектах
PDF
State of the .Net Performance
PPTX
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
PDF
Опыт применения метода ATAM для оценки архитектуры
PPTX
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
PPTX
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
PPTX
Process и Case Management в информационной системе: от автоматизации As Is к ...
Три истории микросервисов, или MSA для Enterprise
Долгоживущие ИТ в динамичном ритейле
Будущее уже наступило: от Agile к бирюзовым организациям
Как выбрать для проекта практики проектирования и работы с требованиями
Диаграммы учета как средство для наглядного и целостного отображения правил у...
Agile — ответ на вызовы третьей промышленной революции
Опыт построения микросервисной архитектуры в цифровом банке
Золотая лихорадка MSA: почему нам не подошли микросервисы?
Барьеры микросервисной архитектуры
Три истории микросервисов
От монолитных моделей предметной области — к модульным
Проблемы управления правами доступа к информационным системам крупной торгово...
Будущее omni-channel маркетинга: инструменты, кейсы и цифры
Agile и управление знаниями в ИТ-проектах
State of the .Net Performance
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Опыт применения метода ATAM для оценки архитектуры
Гибридный подход к управлению правами доступа: когда стандартного IDM не хватает
Собираем кубик Рубика: восстановление архитектурного описания корпоративной р...
Process и Case Management в информационной системе: от автоматизации As Is к ...
Ad

Agile в больших и очень больших проектах