Девятая независимая
научно-практическая конференция
«Разработка ПО 2013»
23 - 25 октября, Москва

Фаза проектирования
без конфликтов
Дзюба Дмитрий
«Энвижн – Программные решения»
NVision Group
«Энвижн – Программные решения»

R&D – центр «СПБ»
R&D – центр «Минск»

Санкт - Петербург

HQ Дивизиона

Москва

R&D - центр «Москва»
Краснодар
R&D - центр «Прага»

R&D – центр «Краснодар»

Центры компетенции:
•

Россия: Нижний Новгород, Екатеринбург, Новосибирск, Владивосток

•

Украина: Киев

•

Индия: Мумбай, Ченнай

•

Пакистан: Лахор
Наши продукты

CRM

Pay-ment
system

Interconnect
billing

Billing

Bonus
Manageme
nt system

Mediation

Portal
Self care

IVR

Work
Flow

Resource
Inven-tory

Monitorin
g

Clea-ring
House

BUS

IN platform

SCP

Trouble
ticketing

Service
Provisionin
g

Reports
Наши клиенты

Россия
Украина
Беларусь
Чехия

Пакистан
Индия

 Более 150 млн.
абонентов
 Более 5 млн.
платежей в сутки
 5 тыс. соединений в
секунду
У нас есть

проекты

 Протяженные по времени
проекты
 Большое количество
разрабатываемых систем

 Даже первая итерация
достаточно трудоемкая!
У проектов бывает

заказчик

 При разработке
продукта приходится
учитывать
множественные,
иногда
требования заказчиков.
Мы работаем
в распределенной команде

 Состав команды:
20+ человек
 Территориальная
распределенность
(разные города и
страны)
 Для общения
используются
несколько языков
Мы делаем системы
класса
 К системе предъявляются
высокие требования
по надежности и
производительности
 Неработоспособность
системы - угроза бизнесу
компании.
пристального внимания:
качество проектирования продуктов

 Непрерывная проверка
качества решения
на всех этапах
разработки.
Факторы,
усложняющие командную работу
 Географическая удаленность членов команды

 Языковой барьер
 Фаза проектирования стимулирует создание
формальных документов.
Общение становится более формальным!
 Бесконечные переписки
 Невозможность выбора лучшего решения
 Команда делится на «группы»,
отстаивающие свои варианты.
:

 Сдвиг плана создания проектной документации
 Конфликты внутри команды.
Причины проблемы
 Споры: кто более опытный специалист?
 Ролевой конфликт в команде.
 Обида за напрасный труд.

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

14
Lightweight Architecture Alternative
Assessment Method (LAAAM)
 http://blogs.msdn.com/b/jeromyc/archive/2005/08/27/45
7081.aspx
Jeromy Carriere's WebLog

 http://www.infoq.com/news/2011/07/low-ceremony-architecture
Manuel Pais
Начало: все против

• Нужно время – хотя бы три или пять дней, а мы и
так уже отстаем от плана …
• Метод ничего не гарантирует!
Люди и взаимодействие
Kansas City Shuffle
Позитивные переходы:

 от межличностного
конфликта –
к технической дискуссии
Кадры из фильма: Lucky Number Slevin

 от безрезультативного
«чьё решение лучше» к конструктивному
обсуждению
критериев выбора
выявляем проблемную область
Что делаем:
 Локализуем спорную
часть дизайна системы.

 Отвечаем на вопрос:
Почему не можем
выбрать одно из двух
решений?

Как делаем:
 К ответу на вопросы
принимаем
только технические
причины!
 В нашей команде
только отличные
специалисты!
Диагностика проблемы
Основная причина проблемы:
конфликт производительности и надежности
(сопровождаемости) системы

что-то «не так» со скоростью twitter

что-то «cломалось» в презентации microsoft
Шаг 1: Клин-клином вышибают
Делаем описание решений:
 Концептуальный дизайн фиксирует основные
моменты решений, концентрируясь на различиях
(architecture tradeoffs).
 Создаем небольшой документ нотации,
понятной всей проектной команде.
 Время чтения документа: не более 10 минут.
Пример: типовой проект
из жизни биллинговых систем
 Есть несколько
биллинговых систем
 Бизнес-цель:
предоставить
пользователю один счет
за услуги разных систем
 Пользователь делает
один платеж за все!

Billing #01

Единый счет

Сгенерированн
ые счета

DATABASE

Billing # n
Сгенерированн
ые счета

Единый счет
Пример: условие задачи
1. Обеспечить сбор данных из биллинговых систем
один раз в месяц.
2. Убедиться, что абонент не получит один счет два
раза (единый счет и счет из самой биллинговой
системы).

3. Проконтролировать выполнение бизнес-условий,
при которых может выставляться единый счет.
Пример:
решение №1 - «быстрое»
Как только система
в регионе окончила
формирование счета –
данные передаются в
«центр».
Почему: чем быстрее
выставим счет, тем
скорее он попадет
клиенту и его оплатят!

Billing #01

Billing # n

Единый счет
Пример:
решение №2 - «надежное»
Из центра по расписанию
запрашиваем данные
в биллингах и, если счет
выставлен, собираем данные
в единый счет.
Почему: в биллингах данные
могут меняться совершенно
самостоятельно.
Нам не нужны проблемы
с целостностью данных!

Billing #01

Billing # n

Единый счет
Итого
Решение №1

Решение №2

Плюс: кажется,
что работает быстрее за
счет отсутствия задержек.

Плюс: кажется,
что работает надежнее
за счет централизации
управления.

Минус: контроль
целостности данных
распределен между
системами.

Минус: замедление.
Шаг 2:
устанавливаем приоритет требований
 Формирование требований в виде сценариев
использования по принципу:
воздействие – реакция на воздействие.
 Условие: каждому требованию –
как минимум один сценарий
 Сценарии выбираются так, чтобы выявить
расхождения в решениях.
Шаг 3: формируем «вычислимый»
критерий принятия решения
 На основе субъективных оценок приоритетов и
субъективных оценок соответствия решения
заявленному требованию делается вычисление.
 Это не объективное сравнение,
а «виртуальный арбитр»
Дерево качества
упрощенный пример – упрощенное дерево
Качество
Производительность (0.25)

Поддерживаемость (0.75)

Время отклика (0.75)

Гибкость (0.6111)

Сценарий 1. (0.25)

-

Сценарий 2. (0.75)

Обучаемость (0.2778)
-

Масштабирование (0.25)

Расширяемость (0.1111)

-

-
Два ключевых сценария
№ Событие

Место

Реакция

Нагрузка

Измерение

1

Выставлены счета

Во всех
биллингах

Данные собраны в ЕС

6
биллинговых
систем
10000 единых
счетов
5000
единичных
счетов
в биллинг

1 час

2

Выставлены счета
при условии, что
часть счетов не
соответствует
правилам ЕС

Во всех
биллингах

Данные собраны в ЕС

Аналогично
пункту 1.

1 час
Как устанавливаются веса?
Формула веса
Где k – приоритет атрибута,
N – количество сравниваемых атрибутов.
Легко видеть, что сумма таких весов равна 1.
Сравниваем сценарии
 Решаем, какая архитектура «лучше»
для данного сценария
 Выставляем оценки по критериям:
 0 – не реализуется
 1 – сценарий трудно достижим
 2 – Сценарий реализуем, но с ограничениями
 3 – Полностью соответствует
 4 – Высшая оценка
Сравнение решений
с точки зрения сценариев

Командная работа в компании Энвижн – Программные решения
Считаем «вес» архитектуры

Сценарий

Сценарий
№1
Сценарий
№2

Сумма

Вес

.25*.75*.25

.25*.75*.75

Архитектура
№1 - оценка

Архитектура №1 вес

3

3*.25*.75*.25=
0,140625

2

2*.25*.75*.75=
0,28125

0,421875

Архитектура
№2 - оценка

Архитектура
№2 - вес

2

2*.25*.75*.2
5=
0,09375

3

3*.25*.75*.7
5=
0,421875

0,515625
Решение конфликтов в процессе проектирования сложных систем
Правило №1

 Создавать дерево до того, как придуман сценарий и
сравнивать решения.
 Это дает возможность "обмануть" команду и увести
от сравнения решений к сравнению требований.
Правило №2
 При выборе весов пользуйтесь красочными образами,
характеризующими конкретное решение: «если будет
превышено время отклика у протокольного адаптера,
у абонента пропадет связь, он будет страдать» и т.д.
 Пусть сценарии придумает человек, который нейтрально
относится к решениям.
 «Идеальный сценарист» - архитектор другого проекта.
Правило №3
• Веса сценариев распределяются только по
формуле!
• Иногда мы не могли расставить приоритеты, и
приходилось голосовать.
• В этих случаях у команды было меньше доверия
к результату сравнения.
Правило №4

 Необходим Product Owner.

 Заказчик, как правило, не требует увеличения
скорости модификации системы и улучшения
удобства эксплуатации
 Нужен серьёзный внутренний заказчик.
Итого
 Срок подготовки и выбора решения по данному
сценарию - 3-7 рабочих дней.
 Иногда требуется делать по 2 итерации выбора.
 Мы испытали этот метод на 4 крупных проектах.
Процедура всегда приводила к выбору решения
и снятию конфликтов!
 Это не «вычисление лучшей архитектуры»,
это - способ конструктивно договориться!
СПАСИБО ЗА ВНИМАНИЕ
ddzuba@nvision-group.com

40

More Related Content

PDF
Professional Services в действии. Истории успеха
PDF
Производительность программных систем
PDF
Requirement modelling in software creation process
PDF
МАИ, Сети ЭВМ, Лекция №3
PDF
МАИ, Сети ЭВМ, Лекция №4
PDF
МАИ, Сети ЭВМ, Лекция №5
PDF
Архитектура. Доступноять программных систем.
PDF
Объектно-ориентированное программирование. Лекция 5 и 6
Professional Services в действии. Истории успеха
Производительность программных систем
Requirement modelling in software creation process
МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №5
Архитектура. Доступноять программных систем.
Объектно-ориентированное программирование. Лекция 5 и 6

Viewers also liked (13)

PDF
Объектно-ориентированное программирование. Лекции 11 и 12
PDF
Объектно-ориентированное программирование. Лекции 13 и 14
PDF
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4
PDF
Объектно-ориентированное программирование. Лекции 9 и 10
PDF
МАИ, Сети ЭВМ, Лекция №2
PDF
МАИ, Сети ЭВМ, Лекция №1
PDF
МАИ, Сети ЭВМ, Лекция №7
PDF
Проектирование Программных Систем. Лекция 01
PDF
Объектно-ориентированное программирование. Лекция 7 и 8.
PDF
Модифицируемость программных систем
PDF
Объектно-ориентированное программирование. Лекции 15 и 16
PDF
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
PDF
МАИ, Сети ЭВМ, Лекция №6
Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 13 и 14
Объектно-Ориентированное Программирование на C++, Лекции 3 и 4
Объектно-ориентированное программирование. Лекции 9 и 10
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №1
МАИ, Сети ЭВМ, Лекция №7
Проектирование Программных Систем. Лекция 01
Объектно-ориентированное программирование. Лекция 7 и 8.
Модифицируемость программных систем
Объектно-ориентированное программирование. Лекции 15 и 16
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
МАИ, Сети ЭВМ, Лекция №6
Ad

Similar to Решение конфликтов в процессе проектирования сложных систем (20)

PPS
лекция 2
PPS
лекция 2
PDF
Cee secr-2014-presentation-ru-bezuglyy-system of systems v1 2
PPT
PM Innovation 2013 - Управление непредсказуемым проектом
PDF
Оценка проектов: шарлатанство или шаманство (Сергей Архипенков)
PPT
2012 andieva e_ju_innovative_management_of_complex_software_projects
PDF
Практики командной работы: о пользе письменных артефактов
PPTX
Методики управления развитием ис на базе 1с
PDF
Как оценить проект, чтобы не было мучительно больно...потом
PPT
Методы оценки эффекта от внедрения Microsoft TFS
PDF
Оценка сроков IT проектов
PPT
Andrey Petrov P D P
PPTX
«трудности при разработке сложных распределённых систем на Java. способы реше...
PPTX
методики управления развитием ис на базе 1с
PDF
Dmitry Zavalishin. Successful it-project - where can it fail
PPTX
DDD — эффективный способ работы в условиях системной сложности
PPTX
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
PDF
Проект внедрения КИС
PDF
Scrum practic
PPT
некоторые правила управления проектами. часть I
лекция 2
лекция 2
Cee secr-2014-presentation-ru-bezuglyy-system of systems v1 2
PM Innovation 2013 - Управление непредсказуемым проектом
Оценка проектов: шарлатанство или шаманство (Сергей Архипенков)
2012 andieva e_ju_innovative_management_of_complex_software_projects
Практики командной работы: о пользе письменных артефактов
Методики управления развитием ис на базе 1с
Как оценить проект, чтобы не было мучительно больно...потом
Методы оценки эффекта от внедрения Microsoft TFS
Оценка сроков IT проектов
Andrey Petrov P D P
«трудности при разработке сложных распределённых систем на Java. способы реше...
методики управления развитием ис на базе 1с
Dmitry Zavalishin. Successful it-project - where can it fail
DDD — эффективный способ работы в условиях системной сложности
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
Проект внедрения КИС
Scrum practic
некоторые правила управления проектами. часть I
Ad

More from Dima Dzuba (10)

PPTX
Arch intro4sts
PDF
Проектирование программных систем. Занятие 10
PDF
Проектирование программных систем. Занятие 9
PDF
Проектирование программных систем. Занятие 8
PDF
Проектирование программных систем. Занятие 7
PDF
Проектирование программных систем. Занятие 6
PDF
Проектирование программных систем. Занятие 5
PDF
Проектирование программных систем. Занятие 4
PDF
Проектирование программных систем. Занятие 3
PDF
Проектирование программных систем. Занятие 2
Arch intro4sts
Проектирование программных систем. Занятие 10
Проектирование программных систем. Занятие 9
Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 7
Проектирование программных систем. Занятие 6
Проектирование программных систем. Занятие 5
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 3
Проектирование программных систем. Занятие 2

Решение конфликтов в процессе проектирования сложных систем

  • 1. Девятая независимая научно-практическая конференция «Разработка ПО 2013» 23 - 25 октября, Москва Фаза проектирования без конфликтов Дзюба Дмитрий «Энвижн – Программные решения» NVision Group
  • 2. «Энвижн – Программные решения» R&D – центр «СПБ» R&D – центр «Минск» Санкт - Петербург HQ Дивизиона Москва R&D - центр «Москва» Краснодар R&D - центр «Прага» R&D – центр «Краснодар» Центры компетенции: • Россия: Нижний Новгород, Екатеринбург, Новосибирск, Владивосток • Украина: Киев • Индия: Мумбай, Ченнай • Пакистан: Лахор
  • 3. Наши продукты CRM Pay-ment system Interconnect billing Billing Bonus Manageme nt system Mediation Portal Self care IVR Work Flow Resource Inven-tory Monitorin g Clea-ring House BUS IN platform SCP Trouble ticketing Service Provisionin g Reports
  • 4. Наши клиенты Россия Украина Беларусь Чехия Пакистан Индия  Более 150 млн. абонентов  Более 5 млн. платежей в сутки  5 тыс. соединений в секунду
  • 5. У нас есть проекты  Протяженные по времени проекты  Большое количество разрабатываемых систем  Даже первая итерация достаточно трудоемкая!
  • 6. У проектов бывает заказчик  При разработке продукта приходится учитывать множественные, иногда требования заказчиков.
  • 7. Мы работаем в распределенной команде  Состав команды: 20+ человек  Территориальная распределенность (разные города и страны)  Для общения используются несколько языков
  • 8. Мы делаем системы класса  К системе предъявляются высокие требования по надежности и производительности  Неработоспособность системы - угроза бизнесу компании.
  • 9. пристального внимания: качество проектирования продуктов  Непрерывная проверка качества решения на всех этапах разработки.
  • 10. Факторы, усложняющие командную работу  Географическая удаленность членов команды  Языковой барьер  Фаза проектирования стимулирует создание формальных документов. Общение становится более формальным!
  • 11.  Бесконечные переписки  Невозможность выбора лучшего решения  Команда делится на «группы», отстаивающие свои варианты. :  Сдвиг плана создания проектной документации  Конфликты внутри команды.
  • 12. Причины проблемы  Споры: кто более опытный специалист?  Ролевой конфликт в команде.  Обида за напрасный труд.  Чужой дизайн: тяжело понять (языковой барьер) и тяжело принять (самолюбие).
  • 14. Agile-манифест  Люди и взаимодействие важнее процессов и инструментов  Работающий продукт важнее исчерпывающей документации  Сотрудничество с заказчиком важнее согласования условий контракта  Готовность к изменениям важнее следования первоначальному плану 14
  • 15. Lightweight Architecture Alternative Assessment Method (LAAAM)  http://blogs.msdn.com/b/jeromyc/archive/2005/08/27/45 7081.aspx Jeromy Carriere's WebLog  http://www.infoq.com/news/2011/07/low-ceremony-architecture Manuel Pais
  • 16. Начало: все против • Нужно время – хотя бы три или пять дней, а мы и так уже отстаем от плана … • Метод ничего не гарантирует!
  • 17. Люди и взаимодействие Kansas City Shuffle Позитивные переходы:  от межличностного конфликта – к технической дискуссии Кадры из фильма: Lucky Number Slevin  от безрезультативного «чьё решение лучше» к конструктивному обсуждению критериев выбора
  • 18. выявляем проблемную область Что делаем:  Локализуем спорную часть дизайна системы.  Отвечаем на вопрос: Почему не можем выбрать одно из двух решений? Как делаем:  К ответу на вопросы принимаем только технические причины!  В нашей команде только отличные специалисты!
  • 19. Диагностика проблемы Основная причина проблемы: конфликт производительности и надежности (сопровождаемости) системы что-то «не так» со скоростью twitter что-то «cломалось» в презентации microsoft
  • 20. Шаг 1: Клин-клином вышибают Делаем описание решений:  Концептуальный дизайн фиксирует основные моменты решений, концентрируясь на различиях (architecture tradeoffs).  Создаем небольшой документ нотации, понятной всей проектной команде.  Время чтения документа: не более 10 минут.
  • 21. Пример: типовой проект из жизни биллинговых систем  Есть несколько биллинговых систем  Бизнес-цель: предоставить пользователю один счет за услуги разных систем  Пользователь делает один платеж за все! Billing #01 Единый счет Сгенерированн ые счета DATABASE Billing # n Сгенерированн ые счета Единый счет
  • 22. Пример: условие задачи 1. Обеспечить сбор данных из биллинговых систем один раз в месяц. 2. Убедиться, что абонент не получит один счет два раза (единый счет и счет из самой биллинговой системы). 3. Проконтролировать выполнение бизнес-условий, при которых может выставляться единый счет.
  • 23. Пример: решение №1 - «быстрое» Как только система в регионе окончила формирование счета – данные передаются в «центр». Почему: чем быстрее выставим счет, тем скорее он попадет клиенту и его оплатят! Billing #01 Billing # n Единый счет
  • 24. Пример: решение №2 - «надежное» Из центра по расписанию запрашиваем данные в биллингах и, если счет выставлен, собираем данные в единый счет. Почему: в биллингах данные могут меняться совершенно самостоятельно. Нам не нужны проблемы с целостностью данных! Billing #01 Billing # n Единый счет
  • 25. Итого Решение №1 Решение №2 Плюс: кажется, что работает быстрее за счет отсутствия задержек. Плюс: кажется, что работает надежнее за счет централизации управления. Минус: контроль целостности данных распределен между системами. Минус: замедление.
  • 26. Шаг 2: устанавливаем приоритет требований  Формирование требований в виде сценариев использования по принципу: воздействие – реакция на воздействие.  Условие: каждому требованию – как минимум один сценарий  Сценарии выбираются так, чтобы выявить расхождения в решениях.
  • 27. Шаг 3: формируем «вычислимый» критерий принятия решения  На основе субъективных оценок приоритетов и субъективных оценок соответствия решения заявленному требованию делается вычисление.  Это не объективное сравнение, а «виртуальный арбитр»
  • 28. Дерево качества упрощенный пример – упрощенное дерево Качество Производительность (0.25) Поддерживаемость (0.75) Время отклика (0.75) Гибкость (0.6111) Сценарий 1. (0.25) - Сценарий 2. (0.75) Обучаемость (0.2778) - Масштабирование (0.25) Расширяемость (0.1111) - -
  • 29. Два ключевых сценария № Событие Место Реакция Нагрузка Измерение 1 Выставлены счета Во всех биллингах Данные собраны в ЕС 6 биллинговых систем 10000 единых счетов 5000 единичных счетов в биллинг 1 час 2 Выставлены счета при условии, что часть счетов не соответствует правилам ЕС Во всех биллингах Данные собраны в ЕС Аналогично пункту 1. 1 час
  • 30. Как устанавливаются веса? Формула веса Где k – приоритет атрибута, N – количество сравниваемых атрибутов. Легко видеть, что сумма таких весов равна 1.
  • 31. Сравниваем сценарии  Решаем, какая архитектура «лучше» для данного сценария  Выставляем оценки по критериям:  0 – не реализуется  1 – сценарий трудно достижим  2 – Сценарий реализуем, но с ограничениями  3 – Полностью соответствует  4 – Высшая оценка
  • 32. Сравнение решений с точки зрения сценариев Командная работа в компании Энвижн – Программные решения
  • 33. Считаем «вес» архитектуры Сценарий Сценарий №1 Сценарий №2 Сумма Вес .25*.75*.25 .25*.75*.75 Архитектура №1 - оценка Архитектура №1 вес 3 3*.25*.75*.25= 0,140625 2 2*.25*.75*.75= 0,28125 0,421875 Архитектура №2 - оценка Архитектура №2 - вес 2 2*.25*.75*.2 5= 0,09375 3 3*.25*.75*.7 5= 0,421875 0,515625
  • 35. Правило №1  Создавать дерево до того, как придуман сценарий и сравнивать решения.  Это дает возможность "обмануть" команду и увести от сравнения решений к сравнению требований.
  • 36. Правило №2  При выборе весов пользуйтесь красочными образами, характеризующими конкретное решение: «если будет превышено время отклика у протокольного адаптера, у абонента пропадет связь, он будет страдать» и т.д.  Пусть сценарии придумает человек, который нейтрально относится к решениям.  «Идеальный сценарист» - архитектор другого проекта.
  • 37. Правило №3 • Веса сценариев распределяются только по формуле! • Иногда мы не могли расставить приоритеты, и приходилось голосовать. • В этих случаях у команды было меньше доверия к результату сравнения.
  • 38. Правило №4  Необходим Product Owner.  Заказчик, как правило, не требует увеличения скорости модификации системы и улучшения удобства эксплуатации  Нужен серьёзный внутренний заказчик.
  • 39. Итого  Срок подготовки и выбора решения по данному сценарию - 3-7 рабочих дней.  Иногда требуется делать по 2 итерации выбора.  Мы испытали этот метод на 4 крупных проектах. Процедура всегда приводила к выбору решения и снятию конфликтов!  Это не «вычисление лучшей архитектуры», это - способ конструктивно договориться!