SlideShare a Scribd company logo
1 of 27
ИТ-субботник
    Омск
6 апреля 2013




                Архитектура в Agile
                          проекте

                            Максим Юнусов

                    E-mail: myunusov@luxoft.com
                               Skype: myunusov
Докладчик
 Java разработчик и архитектор компании Luxoft
 Консультант по анализу и проектированию ПО
 Тренер
 – Курсы по программированию на языке Java
 – Курсы подготовки архитекторов
 – Курсы по различным методологиям и практикам разработки
   ПО
 – Курсы по продуктам и методологии Rational
Исторический экскурс
Архитектура в классическом понимании
Архитектура -
это базовая организация системы,
воплощенная в ее компонентах, их отношениях между
  собой и с окружением,
а также принципы, определяющие проектирование и
  развитие системы
                                        [IEEE 1471]


Ключевой принцип RUP («Дух RUP»)

создавать архитектурный каркас как можно раньше
Agile-манифест разработки ПО
 Люди и взаимодействие важнее процессов и инструментов
 Работающий продукт важнее исчерпывающей
 документации
 Сотрудничество с заказчиком важнее согласования
 условий контракта
 Готовность к изменениям важнее следования
 первоначальному плану




                          http://agilemanifesto.org/iso/ru/
Архитектура в “раннем” Agile
 Большое и Подробное Предварительное
 Проектирование




                          «Отлить в граните»
Архитектура в “раннем” Agile
(продолжение)
 Рефакторинг
 Реактивный подход
 «Решим эти проблемы позже» (“fix-it-later”)

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



           [Оуэр (Auer) и Бек (Beck) (Auer и Beck, 1996)]
Миф о рефакторинге
 Рефакторинг сделает вам архитектуру




Исправление архитектурных проблем на поздних фазах
проекта (после написания кода) стоит в сотни раз
дороже, чем на этапе первичного конструирования
системы
Проблемы
 неизбежная неразбериха на старте
 катастрофические «авралы» с
 массовым рефакторингом и
 переделками практически на каждой
 очередной итерации
 реюз – безусловное зло
 низкое качество продукта   («работает, и
 ладно»)
 «эффект автобуса»
Принципы дизайна

          S (SRP) Принцип единственной обязанности
          O (OCP) Принцип открытости/закрытости
          L (LSP) Принцип подстановки Лискоу
          I (ISP) Принцип разделения интерфейса
          D (DIP) Принцип инверсии зависимостей
Архитектура в “развитом” Agile


термин "архитектура" передает идею основных
        архитектура
  элементов системы, тех ее частей, которые трудно
  изменить. Они являются фундаментом, на котором
  изменить
  можно построить все остальное

     [Статья "Проектирования больше нет?", Мартин Фаулер 2004 г.]




          loan архитектура ?
          инкрементальная архитектура ?
Процесс
Архитектурные взаимодействия в Agile
 проектах
   Предварительное
    планирование
   Доска задач и баклог
   Участие в спринте
   Работающая система




[James Madison http://www.infoq.com/articles/agile-architecture]
Предварительное планирование
 принимает основные решения по аппаратному и
 программному обеспечению
 определяет важные шаблоны проектирования на
 высоком на детальном уровне
 определяет основные возможности для повторного
 использования компонентов и сервисов
 создает высокоуровневые диаграммы
 описывает атрибуты качества
 определяет каналы взаимодействия встречаясь с
 заинтересованными лицами (stakeholders), чтобы понять
 их проблемы и показать им основное техническое
 направление
Описывает атрибуты качества
Атрибуты качества представляют формальное выражение факторов
качества ПО




Внешние факторы                          Внутренние факторы

Могут быть обнаружены                    Понятны только для
пользователями                           профессионалов
Факторы качества по Бертрану Мейеру
Качества ценные в Agile

 Модульность              Тестируемость
 Простота                 Ясность




                VS
Определяет важные шаблоны
проектирования на высоком и на
детальном уровне

 базируясь на нефункциональных требованиях и
 архитектурных мотивах


Примеры
 –   Паттерны DDD
 –   DSL
 –   Onion
 –   MVP
 –   DCI
Определяет основные возможности для
повторного использования компонентов
и сервисов

 «Горизонтальное» разделение труда
 Ключевые механизмы
 Архитектурный «довесок» к Scrum (stand-up) митингу
Принимает основные решения по
аппаратному и программному обеспечению
(hardware and software)

 в основном используя существующие корпоративные
  стандарты
 приводит “доказательства правильности концепции”
  (proofs-of-concept) при необходимости использования
  новых продуктов
 “работает только простое”
Создает высокоуровневые диаграммы




                        UML sketch
Групповое ревью (Inspection, team review)
 С некоторой периодичностью вся команда собирается перед
 проектором и оценивает новые архитектурные решения


 –Повышается эффективность ревью за счет количества
 рецензентов
 –Способствует передаче знаний и взаимному обучению
 –Обеспечивает приятие архитектурных решений всей командой
 (commit от каждого разработчика)




         "Коллективный архитектор"
Доска задач и баклог
 Архитектор должен посещать ранние сессии по
 определению задач на доске (storyboarding) и добавлять
 архитектурные user story, которые задают фундамент
 или определяют архитектурное направление
 Архитектор должен посещать последующие сессии по
 определению задач на доске между спринтами, чтобы
 вносить архитектурные user story, которые
 «настраивают» архитектуру или корректируют
 нежелательные отклонения
 Архитектор должен работать с product owner-ом, чтобы
 приоритезировать эти истории и построить их в
 соответствии с бизнес функциональностью в спринтах
Архитектурный баклог




   Ключевые механизмы
   Часть задач может быть не выполнена,
   рекомендуется их приоритезация
Участие в спринте
 Доверяй команде
 Ad-hoc ревью
 Участие в реализации оправданно, если спринт сошел с
  верного пути в архитектурном или другом смысле
Спасибо за внимание!




E-mail: myunusov@luxoft.com
Skype: myunusov

More Related Content

What's hot

ITGM #5. What Is Enterprise Architecture [1.0, RUS]
ITGM #5. What Is Enterprise Architecture [1.0, RUS]ITGM #5. What Is Enterprise Architecture [1.0, RUS]
ITGM #5. What Is Enterprise Architecture [1.0, RUS]Alex V. Petrov
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]Alex V. Petrov
 
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]Alex V. Petrov
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 
Domain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияDomain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияCUSTIS
 
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...CUSTIS
 
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...Alex V. Petrov
 
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]Alex V. Petrov
 
Использование html-прототипов для реверсивного анализа требований: ЗА и ПРОТИВ
Использование html-прототипов для реверсивного анализа требований: ЗА и ПРОТИВИспользование html-прототипов для реверсивного анализа требований: ЗА и ПРОТИВ
Использование html-прототипов для реверсивного анализа требований: ЗА и ПРОТИВSQALab
 
SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]
SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]
SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]Alex V. Petrov
 
Архитектурное описание для корпоративных и инженерных информационных систем
Архитектурное описание для корпоративных и инженерных информационных системАрхитектурное описание для корпоративных и инженерных информационных систем
Архитектурное описание для корпоративных и инженерных информационных системMarcus Akoev
 
Бизнес и системный анализ весна 2013 лекция 7
Бизнес и системный анализ весна 2013 лекция 7Бизнес и системный анализ весна 2013 лекция 7
Бизнес и системный анализ весна 2013 лекция 7Technopark
 
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]Alex V. Petrov
 
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]Alex V. Petrov
 
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...Alex V. Petrov
 
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]Alex V. Petrov
 
Архитектура - это что?
Архитектура - это что?Архитектура - это что?
Архитектура - это что?SQALab
 
CEE-SECR 2015. Systems Engineering for Software Engineers in Top-Ranking Tech...
CEE-SECR 2015. Systems Engineering for Software Engineers in Top-Ranking Tech...CEE-SECR 2015. Systems Engineering for Software Engineers in Top-Ranking Tech...
CEE-SECR 2015. Systems Engineering for Software Engineers in Top-Ranking Tech...Alex V. Petrov
 
Cradle. Знакомство с Demo проектом
Cradle. Знакомство с Demo проектомCradle. Знакомство с Demo проектом
Cradle. Знакомство с Demo проектомYulia Madorskaya
 

What's hot (20)

ITGM #5. What Is Enterprise Architecture [1.0, RUS]
ITGM #5. What Is Enterprise Architecture [1.0, RUS]ITGM #5. What Is Enterprise Architecture [1.0, RUS]
ITGM #5. What Is Enterprise Architecture [1.0, RUS]
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
 
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
HTP. Business Requirements Elicitation & Documentation [1.01, RUS]
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
Domain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияDomain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требования
 
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
 
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
DEV Labs 2013. Can C++ Code Effeciency Be Comparable to That of Middle-Level ...
 
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
ITGM #5. System Duality and Its Practical Effect on Business Analysis [1.0, RUS]
 
Использование html-прототипов для реверсивного анализа требований: ЗА и ПРОТИВ
Использование html-прототипов для реверсивного анализа требований: ЗА и ПРОТИВИспользование html-прототипов для реверсивного анализа требований: ЗА и ПРОТИВ
Использование html-прототипов для реверсивного анализа требований: ЗА и ПРОТИВ
 
SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]
SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]
SPb BA & SA Night. Stakeholder Management Essentials [1.01, RUS]
 
Архитектурное описание для корпоративных и инженерных информационных систем
Архитектурное описание для корпоративных и инженерных информационных системАрхитектурное описание для корпоративных и инженерных информационных систем
Архитектурное описание для корпоративных и инженерных информационных систем
 
Бизнес и системный анализ весна 2013 лекция 7
Бизнес и системный анализ весна 2013 лекция 7Бизнес и системный анализ весна 2013 лекция 7
Бизнес и системный анализ весна 2013 лекция 7
 
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
ISUCT & BSUIR. Successful Communication of the Process Architecture [1.0, RUS]
 
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
SPb BA & SA Night. Learning a New Business Domain [1.01, RUS]
 
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
REQ Labs 2014. Smart Business Modelling: A Key to Success in Enterprise Autom...
 
Emergency changes
Emergency changesEmergency changes
Emergency changes
 
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
UML2. Eleven Trivial Tips for BPMN Modellers [1.01, RUS]
 
Архитектура - это что?
Архитектура - это что?Архитектура - это что?
Архитектура - это что?
 
CEE-SECR 2015. Systems Engineering for Software Engineers in Top-Ranking Tech...
CEE-SECR 2015. Systems Engineering for Software Engineers in Top-Ranking Tech...CEE-SECR 2015. Systems Engineering for Software Engineers in Top-Ranking Tech...
CEE-SECR 2015. Systems Engineering for Software Engineers in Top-Ranking Tech...
 
Cradle. Знакомство с Demo проектом
Cradle. Знакомство с Demo проектомCradle. Знакомство с Demo проектом
Cradle. Знакомство с Demo проектом
 

Similar to Архитектура в Agile проекте

«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...
«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...
«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...Andrew Shapiro
 
«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...
«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...
«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...Nikita Filippov
 
Rational Unified Processes Overview
Rational Unified Processes OverviewRational Unified Processes Overview
Rational Unified Processes OverviewVladimir Ivanov
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахSQALab
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахMaxim Tsepkov
 
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьОтветственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьCUSTIS
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиSQALab
 
Architecture Lifecycle Management In The Share Point World
Architecture Lifecycle Management In The Share Point WorldArchitecture Lifecycle Management In The Share Point World
Architecture Lifecycle Management In The Share Point WorldIvan Padabed
 
Основные альфы системной инженерии (Systems engineering Essence)
Основные альфы системной инженерии (Systems engineering Essence)Основные альфы системной инженерии (Systems engineering Essence)
Основные альфы системной инженерии (Systems engineering Essence)Anatoly Levenchuk
 
Семинар ФКН: современные подходы к разработке ПО - часть 1
Семинар ФКН: современные подходы к разработке ПО - часть 1Семинар ФКН: современные подходы к разработке ПО - часть 1
Семинар ФКН: современные подходы к разработке ПО - часть 1Andrii Gakhov
 
Мой доклад с пленарного заседания II Научно-практической конференции "Актуаль...
Мой доклад с пленарного заседания II Научно-практической конференции "Актуаль...Мой доклад с пленарного заседания II Научно-практической конференции "Актуаль...
Мой доклад с пленарного заседания II Научно-практической конференции "Актуаль...Sergey Orlik
 
Software People 2010
Software People 2010Software People 2010
Software People 2010Sergey Orlik
 
А.Левенчук -- SysArchi
А.Левенчук -- SysArchiА.Левенчук -- SysArchi
А.Левенчук -- SysArchiAnatoly Levenchuk
 
Архитектура ПО: управляя самым важным
Архитектура ПО: управляя самым важнымАрхитектура ПО: управляя самым важным
Архитектура ПО: управляя самым важнымCUSTIS
 
А.Левенчук -- основные альфы системной инженерии в Essence
А.Левенчук -- основные альфы системной инженерии в EssenceА.Левенчук -- основные альфы системной инженерии в Essence
А.Левенчук -- основные альфы системной инженерии в EssenceAnatoly Levenchuk
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...RIF-Technology
 
Внедрение CASE-технологий
Внедрение CASE-технологийВнедрение CASE-технологий
Внедрение CASE-технологийОтшельник
 
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...Yury Vetrov
 

Similar to Архитектура в Agile проекте (20)

«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...
«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...
«Шустрый» дизайн: подходы к декомпозиции проектирования взаимодействия в Agil...
 
«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...
«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...
«Шустрый дизайн: подходы к декомпозиции задач проектирования UI в Agile-коман...
 
Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)
 
Rational Unified Processes Overview
Rational Unified Processes OverviewRational Unified Processes Overview
Rational Unified Processes Overview
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектах
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектах
 
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьОтветственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиями
 
Architecture Lifecycle Management In The Share Point World
Architecture Lifecycle Management In The Share Point WorldArchitecture Lifecycle Management In The Share Point World
Architecture Lifecycle Management In The Share Point World
 
Основные альфы системной инженерии (Systems engineering Essence)
Основные альфы системной инженерии (Systems engineering Essence)Основные альфы системной инженерии (Systems engineering Essence)
Основные альфы системной инженерии (Systems engineering Essence)
 
Семинар ФКН: современные подходы к разработке ПО - часть 1
Семинар ФКН: современные подходы к разработке ПО - часть 1Семинар ФКН: современные подходы к разработке ПО - часть 1
Семинар ФКН: современные подходы к разработке ПО - часть 1
 
Мой доклад с пленарного заседания II Научно-практической конференции "Актуаль...
Мой доклад с пленарного заседания II Научно-практической конференции "Актуаль...Мой доклад с пленарного заседания II Научно-практической конференции "Актуаль...
Мой доклад с пленарного заседания II Научно-практической конференции "Актуаль...
 
Software People 2010
Software People 2010Software People 2010
Software People 2010
 
Urban
UrbanUrban
Urban
 
А.Левенчук -- SysArchi
А.Левенчук -- SysArchiА.Левенчук -- SysArchi
А.Левенчук -- SysArchi
 
Архитектура ПО: управляя самым важным
Архитектура ПО: управляя самым важнымАрхитектура ПО: управляя самым важным
Архитектура ПО: управляя самым важным
 
А.Левенчук -- основные альфы системной инженерии в Essence
А.Левенчук -- основные альфы системной инженерии в EssenceА.Левенчук -- основные альфы системной инженерии в Essence
А.Левенчук -- основные альфы системной инженерии в Essence
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
 
Внедрение CASE-технологий
Внедрение CASE-технологийВнедрение CASE-технологий
Внедрение CASE-технологий
 
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
 

More from LuxoftTraining

Адаптивный дом
Адаптивный домАдаптивный дом
Адаптивный домLuxoftTraining
 
Basic networking course
Basic networking courseBasic networking course
Basic networking courseLuxoftTraining
 
Лучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM RationalЛучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM RationalLuxoftTraining
 
Gobov denys (it arena 2015)
Gobov denys (it arena 2015)Gobov denys (it arena 2015)
Gobov denys (it arena 2015)LuxoftTraining
 
Remigiusz dudek exploratorytests_testwarez2014
Remigiusz dudek exploratorytests_testwarez2014Remigiusz dudek exploratorytests_testwarez2014
Remigiusz dudek exploratorytests_testwarez2014LuxoftTraining
 
От бизнес-систем к информационным системам: переход шаг за шагом
От бизнес-систем к информационным системам: переход шаг за шагомОт бизнес-систем к информационным системам: переход шаг за шагом
От бизнес-систем к информационным системам: переход шаг за шагомLuxoftTraining
 
Kumskov it arena-lviv-2014-10-03
Kumskov it arena-lviv-2014-10-03Kumskov it arena-lviv-2014-10-03
Kumskov it arena-lviv-2014-10-03LuxoftTraining
 
Рекомендации по проведению экспертной оценки Lt
Рекомендации по проведению экспертной оценки LtРекомендации по проведению экспертной оценки Lt
Рекомендации по проведению экспертной оценки LtLuxoftTraining
 
Awinning culture33rddegree
Awinning culture33rddegreeAwinning culture33rddegree
Awinning culture33rddegreeLuxoftTraining
 
Awinning culture33rddegree
Awinning culture33rddegreeAwinning culture33rddegree
Awinning culture33rddegreeLuxoftTraining
 
Waterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияWaterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияLuxoftTraining
 
Веб-служба на базе Workflow foundation
Веб-служба на базе Workflow foundationВеб-служба на базе Workflow foundation
Веб-служба на базе Workflow foundationLuxoftTraining
 
Soft labs. достижима ли в c++ эффективность языка среднего уровня
Soft labs. достижима ли в c++ эффективность языка среднего уровняSoft labs. достижима ли в c++ эффективность языка среднего уровня
Soft labs. достижима ли в c++ эффективность языка среднего уровняLuxoftTraining
 
Презентация доклада Лавриненко
Презентация доклада ЛавриненкоПрезентация доклада Лавриненко
Презентация доклада ЛавриненкоLuxoftTraining
 
Secr презентация дружинина
Secr презентация дружининаSecr презентация дружинина
Secr презентация дружининаLuxoftTraining
 
Secr презентация гардиенков
Secr презентация гардиенковSecr презентация гардиенков
Secr презентация гардиенковLuxoftTraining
 
Опыт Объектно Ориентированного подхода в Бизнес-Анализе
Опыт Объектно Ориентированного подхода в Бизнес-АнализеОпыт Объектно Ориентированного подхода в Бизнес-Анализе
Опыт Объектно Ориентированного подхода в Бизнес-АнализеLuxoftTraining
 
Концепция построения процесса тестирования в Agile проектах: 3+1
Концепция построения процесса тестирования в Agile проектах: 3+1Концепция построения процесса тестирования в Agile проектах: 3+1
Концепция построения процесса тестирования в Agile проектах: 3+1LuxoftTraining
 

More from LuxoftTraining (20)

Адаптивный дом
Адаптивный домАдаптивный дом
Адаптивный дом
 
Basic networking course
Basic networking courseBasic networking course
Basic networking course
 
Take a sip of sip
Take a sip of sipTake a sip of sip
Take a sip of sip
 
Лучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM RationalЛучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM Rational
 
Gobov denys (it arena 2015)
Gobov denys (it arena 2015)Gobov denys (it arena 2015)
Gobov denys (it arena 2015)
 
Remigiusz dudek exploratorytests_testwarez2014
Remigiusz dudek exploratorytests_testwarez2014Remigiusz dudek exploratorytests_testwarez2014
Remigiusz dudek exploratorytests_testwarez2014
 
От бизнес-систем к информационным системам: переход шаг за шагом
От бизнес-систем к информационным системам: переход шаг за шагомОт бизнес-систем к информационным системам: переход шаг за шагом
От бизнес-систем к информационным системам: переход шаг за шагом
 
Kumskov it arena-lviv-2014-10-03
Kumskov it arena-lviv-2014-10-03Kumskov it arena-lviv-2014-10-03
Kumskov it arena-lviv-2014-10-03
 
Рекомендации по проведению экспертной оценки Lt
Рекомендации по проведению экспертной оценки LtРекомендации по проведению экспертной оценки Lt
Рекомендации по проведению экспертной оценки Lt
 
Awinning culture33rddegree
Awinning culture33rddegreeAwinning culture33rddegree
Awinning culture33rddegree
 
Awinning culture33rddegree
Awinning culture33rddegreeAwinning culture33rddegree
Awinning culture33rddegree
 
Waterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияWaterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестирования
 
Веб-служба на базе Workflow foundation
Веб-служба на базе Workflow foundationВеб-служба на базе Workflow foundation
Веб-служба на базе Workflow foundation
 
Soft labs. достижима ли в c++ эффективность языка среднего уровня
Soft labs. достижима ли в c++ эффективность языка среднего уровняSoft labs. достижима ли в c++ эффективность языка среднего уровня
Soft labs. достижима ли в c++ эффективность языка среднего уровня
 
Vs vs. charles
Vs vs. charlesVs vs. charles
Vs vs. charles
 
Презентация доклада Лавриненко
Презентация доклада ЛавриненкоПрезентация доклада Лавриненко
Презентация доклада Лавриненко
 
Secr презентация дружинина
Secr презентация дружининаSecr презентация дружинина
Secr презентация дружинина
 
Secr презентация гардиенков
Secr презентация гардиенковSecr презентация гардиенков
Secr презентация гардиенков
 
Опыт Объектно Ориентированного подхода в Бизнес-Анализе
Опыт Объектно Ориентированного подхода в Бизнес-АнализеОпыт Объектно Ориентированного подхода в Бизнес-Анализе
Опыт Объектно Ориентированного подхода в Бизнес-Анализе
 
Концепция построения процесса тестирования в Agile проектах: 3+1
Концепция построения процесса тестирования в Agile проектах: 3+1Концепция построения процесса тестирования в Agile проектах: 3+1
Концепция построения процесса тестирования в Agile проектах: 3+1
 

Архитектура в Agile проекте

  • 1. ИТ-субботник Омск 6 апреля 2013 Архитектура в Agile проекте Максим Юнусов E-mail: myunusov@luxoft.com Skype: myunusov
  • 2. Докладчик  Java разработчик и архитектор компании Luxoft  Консультант по анализу и проектированию ПО  Тренер – Курсы по программированию на языке Java – Курсы подготовки архитекторов – Курсы по различным методологиям и практикам разработки ПО – Курсы по продуктам и методологии Rational
  • 4. Архитектура в классическом понимании Архитектура - это базовая организация системы, воплощенная в ее компонентах, их отношениях между собой и с окружением, а также принципы, определяющие проектирование и развитие системы [IEEE 1471] Ключевой принцип RUP («Дух RUP») создавать архитектурный каркас как можно раньше
  • 5. Agile-манифест разработки ПО  Люди и взаимодействие важнее процессов и инструментов  Работающий продукт важнее исчерпывающей документации  Сотрудничество с заказчиком важнее согласования условий контракта  Готовность к изменениям важнее следования первоначальному плану http://agilemanifesto.org/iso/ru/
  • 6. Архитектура в “раннем” Agile  Большое и Подробное Предварительное Проектирование «Отлить в граните»
  • 7. Архитектура в “раннем” Agile (продолжение)  Рефакторинг  Реактивный подход  «Решим эти проблемы позже» (“fix-it-later”) Вносите в проект лишь такие изменения, которые могут указать дорогу к возможностям его улучшения [Оуэр (Auer) и Бек (Beck) (Auer и Beck, 1996)]
  • 8. Миф о рефакторинге  Рефакторинг сделает вам архитектуру Исправление архитектурных проблем на поздних фазах проекта (после написания кода) стоит в сотни раз дороже, чем на этапе первичного конструирования системы
  • 9. Проблемы  неизбежная неразбериха на старте  катастрофические «авралы» с массовым рефакторингом и переделками практически на каждой очередной итерации  реюз – безусловное зло  низкое качество продукта («работает, и ладно»)  «эффект автобуса»
  • 10. Принципы дизайна  S (SRP) Принцип единственной обязанности  O (OCP) Принцип открытости/закрытости  L (LSP) Принцип подстановки Лискоу  I (ISP) Принцип разделения интерфейса  D (DIP) Принцип инверсии зависимостей
  • 11. Архитектура в “развитом” Agile термин "архитектура" передает идею основных архитектура элементов системы, тех ее частей, которые трудно изменить. Они являются фундаментом, на котором изменить можно построить все остальное [Статья "Проектирования больше нет?", Мартин Фаулер 2004 г.] loan архитектура ? инкрементальная архитектура ?
  • 13. Архитектурные взаимодействия в Agile проектах  Предварительное планирование  Доска задач и баклог  Участие в спринте  Работающая система [James Madison http://www.infoq.com/articles/agile-architecture]
  • 14. Предварительное планирование  принимает основные решения по аппаратному и программному обеспечению  определяет важные шаблоны проектирования на высоком на детальном уровне  определяет основные возможности для повторного использования компонентов и сервисов  создает высокоуровневые диаграммы  описывает атрибуты качества  определяет каналы взаимодействия встречаясь с заинтересованными лицами (stakeholders), чтобы понять их проблемы и показать им основное техническое направление
  • 15. Описывает атрибуты качества Атрибуты качества представляют формальное выражение факторов качества ПО Внешние факторы Внутренние факторы Могут быть обнаружены Понятны только для пользователями профессионалов
  • 16. Факторы качества по Бертрану Мейеру
  • 17. Качества ценные в Agile Модульность Тестируемость Простота Ясность VS
  • 18. Определяет важные шаблоны проектирования на высоком и на детальном уровне  базируясь на нефункциональных требованиях и архитектурных мотивах Примеры – Паттерны DDD – DSL – Onion – MVP – DCI
  • 19. Определяет основные возможности для повторного использования компонентов и сервисов  «Горизонтальное» разделение труда  Ключевые механизмы  Архитектурный «довесок» к Scrum (stand-up) митингу
  • 20. Принимает основные решения по аппаратному и программному обеспечению (hardware and software)  в основном используя существующие корпоративные стандарты  приводит “доказательства правильности концепции” (proofs-of-concept) при необходимости использования новых продуктов  “работает только простое”
  • 22. Групповое ревью (Inspection, team review) С некоторой периодичностью вся команда собирается перед проектором и оценивает новые архитектурные решения –Повышается эффективность ревью за счет количества рецензентов –Способствует передаче знаний и взаимному обучению –Обеспечивает приятие архитектурных решений всей командой (commit от каждого разработчика) "Коллективный архитектор"
  • 23. Доска задач и баклог  Архитектор должен посещать ранние сессии по определению задач на доске (storyboarding) и добавлять архитектурные user story, которые задают фундамент или определяют архитектурное направление  Архитектор должен посещать последующие сессии по определению задач на доске между спринтами, чтобы вносить архитектурные user story, которые «настраивают» архитектуру или корректируют нежелательные отклонения  Архитектор должен работать с product owner-ом, чтобы приоритезировать эти истории и построить их в соответствии с бизнес функциональностью в спринтах
  • 24. Архитектурный баклог Ключевые механизмы Часть задач может быть не выполнена, рекомендуется их приоритезация
  • 25. Участие в спринте  Доверяй команде  Ad-hoc ревью  Участие в реализации оправданно, если спринт сошел с верного пути в архитектурном или другом смысле
  • 26.
  • 27. Спасибо за внимание! E-mail: myunusov@luxoft.com Skype: myunusov

Editor's Notes

  1. Основополагающие принципы Agile-манифеста Мы следуем таким принципам: Наивысшим приоритетом для нас является удовлетворение потребностей заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения. Изменение требований приветствуется, даже на поздних стадиях разработки. Agile-процессы позволяют использовать изменения для обеспечения заказчику конкурентного преимущества. Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцев. На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе. Над проектом должны работать мотивированные профессионалы. Чтобы работа была сделана, создайте условия, обеспечьте поддержку и полностью доверьтесь им. Непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри команды. Работающий продукт — основной показатель прогресса. Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм бесконечно. Agile помогает наладить такой устойчивый процесс разработки. Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта. Простота — искусство минимизации лишней работы — крайне необходима. Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд. Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы.
  2. Архитектурные взаимодействия в Agile проектах Автор:   James Madison http://www.infoq.com/articles/agile-architecture
  3. http://agilerussia.ru/practices/agile-architecture-interactions/ В Agile проекте каждая функция архитектора начинается с предварительного планирования, как это в основном происходит и в других проектах, не зависимо от методологии. Архитектор: принимает основные решения по аппаратному и программному обеспечению (hardware and software), в основном используя существующие корпоративные стандарты, и возможно приводит “доказательства правильности концепции” (proofs-of-concept) при необходимости использования новых продуктов; определяет важные шаблоны проектирования на высоком[3] на детальном[4] уровне; определяет основные возможности для повторного использования компонентов и сервисов; создает высокоуровневые диаграммы; описывает атрибуты качества[5], технические и бизнес, и определяет их допустимый уровень[6]; и определяет каналы взаимодействия встречаясь с заинтересованными лицами (stakeholders), чтобы понять их проблемы и показать им основное техническое направление. Хотя большинство из этих пунктов не отличается от работ в не-Agile подходах, предварительные работы по архитектуре для Agile разработки содержат небольшое, но важное отличие.Архитектура скорее должна включать набор опций, чем специфическое решение.Такой подход основывается на Agile допущении, что эмпирические знания, собранные всеми участниками при построении системы, сделают лучшие опции более очевидными[7].Результат будет успешным, если архитектор не ограничивается одним решением слишком рано, и особенно это важно при Agile разработке. Использование итераций, создание работающей системы после каждой итерации, поощрение взаимодействия, имеет обратный эффект, который дает всем участникам значительные возможности, чтобы найти лучшие решения позже, если они не смогли понять их раньше[8].
  4. Предварительное планирование быстро переходит в определение задач на доске (storyboard­ing) и в построение баклогов продукта и отдельного спринта, причем архитектор является основным заинтересованным лицом (stakeholder).Архитектор должен посещать ранние сессии по определению задач на доске (storyboarding) и добавлять архитектурные user story, которые задают фундамент или определяют архитектурное направление.Он или она должны также посещать последующие сессии по определению задач на доске между спринтами, чтобы вносить архитектурные user story, которые “настраивают” архитектуру или корректируют нежелательные отклонения. Архитектор должен работать с product owner-ом, чтобы приоритезировать эти истории и построить их в соответствии с бизнес функциональностью в спринтах. Архитектор часто становится движущей силой на сессиях по определению задач на доске, поскольку у него или нее есть всеобъемлющие знания о бизнесе и технологиях.Я обнаружил, что хороший архитектор может определить требования на доске задач, исходя из бизнеса, объяснить технические ограничения людям из бизнеса, объяснить потребности бизнеса в технических терминах команде.Когда архитектор делает это, он или она может помочь всем сторонам достичь успеха, плавно интегрируя архитектурные user story в доску задач и в баклог.
  5. Написание кода – это мощный способ убедиться в том, что архитектор полностью понимает создаваемую архитектуру [10] . Но мы будем допускать, что организация получает большую ценность от того, что использует архитекторов сразу на нескольких проектах, хотя при этом снижается их способность вникнуть во все детали одного проекта.К счастью, agile предлагает решение—доверяй команде. Для этого нужно,чтобы архитектор взаимодействовал с командой во время спринта, понимая цели и помогая решить возникающие проблемы дизайна [11] .Чтобы справиться одновременно с несколькими проектами, архитектор должен оставить специфику команде. Пока ревью архитектуры работающей системы показывает высокое качество архитектуры, архитектор может оставлять детали членам проектной команды, будучи уверенным, что их общие знания и глубокое знание задачи будут направлять работу над системой в нужное русло. Поэтому, реальное участие в реализации оправданно, если спринт сошел с верного пути в архитектурном или другом смысле.В такое время архитектор становится полноправным членом команды, размещается вместе с ней, и полностью подчиняется задачам команды.