SlideShare a Scribd company logo
1 of 37
DDD: реализуем проект 
«Вавилонская башня» 
Докладчик: 
Максим Цепков (M.Tsepkov@custis.ru) 
www.custis.ru
О чем этот доклад? 
 Когда-то давно люди не смогли построить 
Вавилонскую башню – Бог смешал их языки 
 Проекты в IT в чем-то похожи – они рушатся из-за 
отсутствия понимания между бизнес-экспертами, 
разработчиками и другими участниками 
• Постановки не отражают потребности 
• Готовая система не соответствует постановкам 
DDD – способ решить проблему понимания 
и ключ к построению сложных систем 
2/37
Теория 
Схема доклада 
DDD – единый язык проекта и одна модель системы 
• Модели были давно, но две: бизнес-область и система 
• Единый язык проекта создает общее поле понятий 
• И позволяет работать с одной, общей моделью 
Практика 
• Что значит «общий язык проекта» 
• Какие это дает преимущества 
• И какую цену приходится платить 
Единый язык на практике – 
как это и что в результате? 
3/37
Немного теории 
4/37
DDD – как оно начиналось 
 Концептуальная книга Эрика Эванса 
• на английском – в 2003 г. 
• на русском – только в 2010 г. 
Практическая книга Джимми Нильссона 
• на английском – в 2006 г. 
• на русском – в 2007 г. (почти сразу!) 
5/37
Единый язык (ubiquitous language) 
 Построен на основе терминов предметной области 
 Его понимают ИТ-специалисты и эксперты бизнеса 
 На нем описана модель ИТ-системы и ее место в 
бизнес-процессах 
Понятия единого языка: 
Клиент, Накладная, платеж, Долг – 
из предметной области 
6/37
А где здесь ООП ? 
ООП – это парадигма 
моделирования 
Парадигма моделирования определяет 
Элементы языка 
Способ их соединения в сложные конструкции 
Визуальный образ для представления 
Способ отражения модели в код 
Объекты 
с атрибутами 
и методами 
Диаграмма классов и 
другие UML- 
диаграммы 
Типы, соответствующие 
бизнес-объектам 
Я сосредоточусь на разработке модели, 
а не на ее реализации 
7/37
Зачем нужен единый язык? 
Модель системы не соответствует представлению 
бизнеса о ее месте в модели предприятия. 
«Не то чтобы совсем не попал, 
но только не попал в шарик…» 
8/37
Итерационное развитие модели 
Единый язык позволяет совместить модель системы 
с представлениями бизнеса о ее месте 
9/37
Единая модель 
 Аналитик собирает требования и строит модель – 
сначала предметной области, затем – системы 
 Артефакты модели описывают и систему и ее 
использование в бизнес-процессах предприятия 
 Разработчик реализует модель 
 Артефакты модели можно проследить в коде 
Модель предметной области 
становится моделью системы 
10/37
Что мы достигаем? 
Верификация постановок бизнес-специалистами 
Общее понимание требований на стороне бизнеса 
Обсуждение модели бизнесом и IT, поиск баланса в 
сложных решениях 
Перенос моделей из других предметных областей 
Бизнес представляет потенциальные возможности 
системы и сложность различных доработок 
На этапе эксплуатации – эффективное общение 
бизнес-пользователей и IT без квалифицированных 
переводчиков-аналитиков 
11/37
Автоссылки по теме… 
SECR-2011 – 
DDD и системная сложность 
ADD-2011 – 
Необъектные модели предметной 
области 
SoftwarePeople-2011 – 
Три компоненты архитектуры 
приложений 
12/37
Пример-1: 
Виза на документы 
13/37
Задача 
Задача касается 
конкретного документа 
В процессе обработки документа (сделки, договора, 
контракта) обеспечить проверку и одобрение 
определенными сотрудниками или отделами 
14/37
Выбор проектного решения 
Существует 
несколько типовых 
шаблонов 
Каждая виза – со своим 
жизненным циклом 
15/37
В чем проблема? 
 Шаблоны обладают разной гибкостью и сложностью 
 Для выбора нужно понимать требуемый баланс 
между гибкостью и сложностью решения 
Традиционный подход 
 На этапе сбора требований аналитики 
формулируют задачу для конкретного документа 
 Исходя из этого в системе проектируется решение 
Выбранное решение отражает текущую ситуацию 
Решение надо принимать с учетом потенциального 
изменения бизнес-процессов 
16/37
Примеры 
 Проверка сделки казначейством и отделом рисков – 
не получается выполнять параллельно 
 Юристы отозвали одобрение кредита, а служба 
безопасности не него опиралась – связи между 
визами не контролируются системой 
 Настройку виз для одобрения договоров с 
недвижимостью передали в IT из-за сложности 
17/37
Решение в рамках DDD 
 Представляем шаблоны, описанные применительно 
к конкретному документу, показываем разницу 
 Бизнес-специалисты оценивают потенциальную 
потребность в реализации бизнес-процессов 
Решение принимается с учетом перспективы 
18/37
В чем Единый язык? 
 Для решения модель надо описать понятно бизнесу 
• Можно описать обобщенные решения для документов, 
«состояния» и «визы», и на них ссылаться 
• Можно описывать каждый случай отдельно 
 Термины должны быть понятны Заказчику: 
Например, «визированием» могут считать одобрение документа, 
требующее только просмотра, а если требуется дополнительная 
работа, то это называется «обработкой» или «проверкой» 
 Общий шаблон надо «перевести» на язык проекта 
19/37
Результат 
Мы используем известные шаблоны решений 
Заказчик оценивает вариант решения не только с 
точки зрения текущих потребностей, но и из 
предположений о развитии бизнес-процессов 
Проектируя изменения бизнес-процессов, заказчик 
представляет потенциал гибкости системы и 
принимает решения с учетом этого 
20/37
Пример-2: 
Долг клиента 
21/37
Задача 
Ведение взаиморасчетов с клиентами по продажам 
обеспечивающее ведение управленческих лимитов 
и отражение расчетов в бухгалтерию 
22/37
Проблема: 
Смешение языков на бизнес-уровне 
Менеджеры по продажам: долг – основа для 
управленческих решений. Увеличивается 
как только приняли решение об отгрузке, 
уменьшается когда признали претензию 
Бухгалтеры: долг – в соответствии с ПБУ, 
с учетом оформления документов и 
прохождения процедур 
Следствие - управленческий и бухгалтерский 
долг имеют систематические различия 
23/37
24/37
Проблемы двух пониманий долга 
Контроль правильности учета – опаздывает 
Менеджеров не получается контролировать через 
бухгалтерию 
Имеются две разные суммы долга, что затрудняет 
принятие управленческих решений 
Для сверки с клиентом и решения проблем 
менеджеры должны вникать в ПБУ 
25/37
Решение от DDD 
 Вырабатываем единый язык, описывающий долг 
в терминах, понятных менеджерам и бухгалтерам 
 Строим модель, которая показывает 
управленческий и бухгалтерский долг и их различие 
 Ситуации, в которых долг различается описываем 
на едином языке, согласуем со специалистами 
 Вырабатываем требования по контролю различий, 
а также по устранению несущественных различий 
Результат – общий взгляд на предметную область у 
бизнес-специалистов, описанный в модели, 
которая реализуется разработчиками 
26/37
Как описывать учетную модель? 
 Для наглядного описания мы разработали 
Диаграммы учета 
 Они позволяют представлять учетные модели и 
делают описание их понятным не только для 
бухгалтеров, финансистов и аналитиков, но и для 
других бизнес-специалистов, а также разработчиков 
 При построении моделей можно успешно применять 
типовые шаблоны, заимствованные из бухгалтерии, 
например, транзитные счета 
Подробнее о диаграммах учета – статья «Диаграммы учета: мост 
между бухгалтером и разработчиком» 
Журнал «Бухгалтер и компьютер» 5-2011 http://lib.custis.ru/Когда_всем_понятно 
27/37
Модель долга клиента 
Этого долга 
нет у 
бухгалтеров 
Этих платежей нет 
у менеджеров 
Овалы – счета 
стрелки – проводки 
Сверку с клиентом успешно 
выполняют менеджеры 
«Общее» понимание 
долга 
28/37
Результат 
Согласовано понимание предметной области у 
различных бизнес-специалистов 
Реализована модель, отвечающая интересам всех 
заинтересованных сторон проекта 
29/37
Пример-3: 
Коммунальный биллинг 
30/37
Задача Система расчетного 
центра по коммунальным 
услугам 
Квитанции 
населению 
Прием платежей 
Баланс по льготам и 
субсидиям 
Перечисление средств, 
баланс с 
поставщиками 
31/37
Проблема: Сложность задачи 
превышает уровень пользователей 
 Система решает сложную учетную задачу, 
включая изменения в прошлом 
 Ее расчеты должны быть понятны широкому кругу 
пользователей без опыта работы с учетом 
• Населению, получающему квитанции 
• Операторам абонентских пунктов 
• Сотрудникам службы соц.защиты 
• Бухгалтерам поставщиков услуг 
• Сотрудникам городского управления 
 Сопровождение системы, включая создание 
отчетов, должно происходить на местах 
32/37
Решение от DDD 
 Создается учетная модель с использованием 
шаблонов, обеспечивающих необходимый учет 
 Модель описывается на доступном пользователям 
языке, это обеспечивает понимание 
 Реализуются интерфейсы, позволяющие 
проследить разбор по модели конкретного случая 
33/37
Решение от DDD 
Учетная модель расчетов 
сделала систему понятной 
В модели использованы 
приемы из бухгалтерии, 
обеспечившие требуемый учет 
Интерфейсы представляют 
учет понятно для пользователя 
34/37
Заключение 
35/37
Что же обеспечивает DDD? 
Единый язык + Единая модель: 
обеспечивают надежную основу для общения всех 
участников проекта при принятии решений; 
позволяет использовать типовые шаблоны; 
позволяют эффективно развивать сложную систему. 
Это требует дополнительных усилий: 
формирование единого языка; 
понимание разработчиками предметной области. 
По опыту, результат окупает усилия. 
DDD позволяет успешно создавать сложные 
проектные решения и развивать их 
36/37
Спасибо! 
Вопросы? 
Максим Цепков 
M.Tsepkov@custis.ru

More Related Content

What's hot

Practice of enterprice development ProfsoUX-2017
Practice of enterprice development  ProfsoUX-2017Practice of enterprice development  ProfsoUX-2017
Practice of enterprice development ProfsoUX-2017Maxim Tsepkov
 
DDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требованийDDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требованийSQALab
 
Опыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурамиОпыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурамиПрофсоUX
 
Agile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииAgile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииCUSTIS
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиCUSTIS
 
Будущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямБудущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямCUSTIS
 
Разделение ответственности в заказной разработке
Разделение ответственности в заказной разработкеРазделение ответственности в заказной разработке
Разделение ответственности в заказной разработкеSQALab
 
Requirement modelling in software creation process
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation processDima Dzuba
 
Внутренние системы. Call-centre. Дмитрий Силаев. Открытый семинар Digital и б...
Внутренние системы. Call-centre. Дмитрий Силаев. Открытый семинар Digital и б...Внутренние системы. Call-centre. Дмитрий Силаев. Открытый семинар Digital и б...
Внутренние системы. Call-centre. Дмитрий Силаев. Открытый семинар Digital и б...Usabilitylab
 
плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14IKonkov
 
Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01Dima Dzuba
 
Внутренние системы CRM
Внутренние системы CRMВнутренние системы CRM
Внутренние системы CRMUsabilitylab
 
Кукуруза Дмитрий: "Спасение рядового проекта"
Кукуруза Дмитрий: "Спасение рядового проекта"Кукуруза Дмитрий: "Спасение рядового проекта"
Кукуруза Дмитрий: "Спасение рядового проекта"MobiDev
 
Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Dima Dzuba
 

What's hot (15)

Practice of enterprice development ProfsoUX-2017
Practice of enterprice development  ProfsoUX-2017Practice of enterprice development  ProfsoUX-2017
Practice of enterprice development ProfsoUX-2017
 
DDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требованийDDD — правильный курс в потоке изменений требований
DDD — правильный курс в потоке изменений требований
 
Опыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурамиОпыт госпроектов и взаимодействия с корпоративными структурами
Опыт госпроектов и взаимодействия с корпоративными структурами
 
Agile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революцииAgile — ответ на вызовы третьей промышленной революции
Agile — ответ на вызовы третьей промышленной революции
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиями
 
Будущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациямБудущее уже наступило: от Agile к бирюзовым организациям
Будущее уже наступило: от Agile к бирюзовым организациям
 
Разделение ответственности в заказной разработке
Разделение ответственности в заказной разработкеРазделение ответственности в заказной разработке
Разделение ответственности в заказной разработке
 
Requirement modelling in software creation process
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation process
 
Внутренние системы. Call-centre. Дмитрий Силаев. Открытый семинар Digital и б...
Внутренние системы. Call-centre. Дмитрий Силаев. Открытый семинар Digital и б...Внутренние системы. Call-centre. Дмитрий Силаев. Открытый семинар Digital и б...
Внутренние системы. Call-centre. Дмитрий Силаев. Открытый семинар Digital и б...
 
Malakhov Vladimir. BIM-7 - 5D-collision
Malakhov Vladimir. BIM-7 - 5D-collisionMalakhov Vladimir. BIM-7 - 5D-collision
Malakhov Vladimir. BIM-7 - 5D-collision
 
плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14плакаты конькова ивана12[1].02.14
плакаты конькова ивана12[1].02.14
 
Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01
 
Внутренние системы CRM
Внутренние системы CRMВнутренние системы CRM
Внутренние системы CRM
 
Кукуруза Дмитрий: "Спасение рядового проекта"
Кукуруза Дмитрий: "Спасение рядового проекта"Кукуруза Дмитрий: "Спасение рядового проекта"
Кукуруза Дмитрий: "Спасение рядового проекта"
 
Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12
 

Similar to Ddd softwarepeople-2012-tsepkov

Domain-Driven Design: Модель вместо требований
Domain-Driven Design: Модель вместо требованийDomain-Driven Design: Модель вместо требований
Domain-Driven Design: Модель вместо требованийCUSTIS
 
DDD - модель вместо требований
DDD - модель вместо требованийDDD - модель вместо требований
DDD - модель вместо требованийSQALab
 
Сотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиСотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиCUSTIS
 
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016Maxim Tsepkov
 
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!ScrumTrek
 
Три точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных системТри точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных системCUSTIS
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиSQALab
 
Choose method for requirements Tsepkov Analyst Days-2017
Choose method for requirements Tsepkov Analyst Days-2017Choose method for requirements Tsepkov Analyst Days-2017
Choose method for requirements Tsepkov Analyst Days-2017Maxim Tsepkov
 
Domain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияDomain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияCUSTIS
 
Особенности описания процессов для целей его менеджмента
Особенности описания процессов для целей его менеджментаОсобенности описания процессов для целей его менеджмента
Особенности описания процессов для целей его менеджментаSQALab
 
DIRECTUM: возможности системы электронного документооборота
DIRECTUM: возможности системы электронного документооборотаDIRECTUM: возможности системы электронного документооборота
DIRECTUM: возможности системы электронного документооборотаDIRECTUM
 
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахКак совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахDanil Dintsis, Ph. D., PgMP
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovMaxim Tsepkov
 
Разработка веб-сервисов осень 2013 лекция 3
Разработка веб-сервисов осень 2013 лекция 3Разработка веб-сервисов осень 2013 лекция 3
Разработка веб-сервисов осень 2013 лекция 3Technopark
 
Развитие управления проектами и критериев качества в ИТ
Развитие управления проектами и критериев качества в ИТРазвитие управления проектами и критериев качества в ИТ
Развитие управления проектами и критериев качества в ИТCUSTIS
 
Решения КРОК для управления бизнес-процессами
Решения КРОК для управления бизнес-процессамиРешения КРОК для управления бизнес-процессами
Решения КРОК для управления бизнес-процессамиКРОК
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахCUSTIS
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахMaxim Tsepkov
 
Необъектные модели предметной области
Необъектные модели предметной областиНеобъектные модели предметной области
Необъектные модели предметной областиCUSTIS
 
Без единого разрыва: горящие IT­сервисы и механизмы их тушения
Без единого разрыва: горящие IT­сервисы и механизмы их тушенияБез единого разрыва: горящие IT­сервисы и механизмы их тушения
Без единого разрыва: горящие IT­сервисы и механизмы их тушенияEDS Systems
 

Similar to Ddd softwarepeople-2012-tsepkov (20)

Domain-Driven Design: Модель вместо требований
Domain-Driven Design: Модель вместо требованийDomain-Driven Design: Модель вместо требований
Domain-Driven Design: Модель вместо требований
 
DDD - модель вместо требований
DDD - модель вместо требованийDDD - модель вместо требований
DDD - модель вместо требований
 
Сотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практикиСотрудничество с корпорациями: рецепты из практики
Сотрудничество с корпорациями: рецепты из практики
 
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016
 
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!
 
Три точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных системТри точки опоры в архитектуре корпоративных систем
Три точки опоры в архитектуре корпоративных систем
 
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиямиКак выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиями
 
Choose method for requirements Tsepkov Analyst Days-2017
Choose method for requirements Tsepkov Analyst Days-2017Choose method for requirements Tsepkov Analyst Days-2017
Choose method for requirements Tsepkov Analyst Days-2017
 
Domain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требованияDomain Driven Design: модель вместо требования
Domain Driven Design: модель вместо требования
 
Особенности описания процессов для целей его менеджмента
Особенности описания процессов для целей его менеджментаОсобенности описания процессов для целей его менеджмента
Особенности описания процессов для целей его менеджмента
 
DIRECTUM: возможности системы электронного документооборота
DIRECTUM: возможности системы электронного документооборотаDIRECTUM: возможности системы электронного документооборота
DIRECTUM: возможности системы электронного документооборота
 
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектахКак совместить лучшее из водопадных и аджайл подходов в ИТ проектах
Как совместить лучшее из водопадных и аджайл подходов в ИТ проектах
 
Roles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkovRoles happy dev-2013-tsepkov
Roles happy dev-2013-tsepkov
 
Разработка веб-сервисов осень 2013 лекция 3
Разработка веб-сервисов осень 2013 лекция 3Разработка веб-сервисов осень 2013 лекция 3
Разработка веб-сервисов осень 2013 лекция 3
 
Развитие управления проектами и критериев качества в ИТ
Развитие управления проектами и критериев качества в ИТРазвитие управления проектами и критериев качества в ИТ
Развитие управления проектами и критериев качества в ИТ
 
Решения КРОК для управления бизнес-процессами
Решения КРОК для управления бизнес-процессамиРешения КРОК для управления бизнес-процессами
Решения КРОК для управления бизнес-процессами
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектах
 
Agile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектахAgile и управление знаниями в ИТ-проектах
Agile и управление знаниями в ИТ-проектах
 
Необъектные модели предметной области
Необъектные модели предметной областиНеобъектные модели предметной области
Необъектные модели предметной области
 
Без единого разрыва: горящие IT­сервисы и механизмы их тушения
Без единого разрыва: горящие IT­сервисы и механизмы их тушенияБез единого разрыва: горящие IT­сервисы и механизмы их тушения
Без единого разрыва: горящие IT­сервисы и механизмы их тушения
 

More from Maxim Tsepkov

From Agile to Teal Organization PRyug-2017
From Agile to Teal Organization PRyug-2017From Agile to Teal Organization PRyug-2017
From Agile to Teal Organization PRyug-2017Maxim Tsepkov
 
Самоопределяйся технологично!
Самоопределяйся технологично!Самоопределяйся технологично!
Самоопределяйся технологично!Maxim Tsepkov
 
Agile and the Third Wave (IT Spring 2017)
Agile and the Third Wave (IT Spring 2017)Agile and the Third Wave (IT Spring 2017)
Agile and the Third Wave (IT Spring 2017)Maxim Tsepkov
 
Accounting diagram - Tsepkov EconConf-2017
Accounting diagram - Tsepkov EconConf-2017Accounting diagram - Tsepkov EconConf-2017
Accounting diagram - Tsepkov EconConf-2017Maxim Tsepkov
 
Agile - ответ на вызовы третьей промышленной революции - цепков custis
Agile - ответ на вызовы третьей промышленной революции - цепков custisAgile - ответ на вызовы третьей промышленной революции - цепков custis
Agile - ответ на вызовы третьей промышленной революции - цепков custisMaxim Tsepkov
 
Use OOP for domain ontology WIAD-2017
Use OOP for domain ontology WIAD-2017Use OOP for domain ontology WIAD-2017
Use OOP for domain ontology WIAD-2017Maxim Tsepkov
 
Как понять, подходит ли Agile вашей компании
Как понять, подходит ли Agile вашей компанииКак понять, подходит ли Agile вашей компании
Как понять, подходит ли Agile вашей компанииMaxim Tsepkov
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахMaxim Tsepkov
 
Process and Case Management together (SECR-2016)
Process and Case Management together (SECR-2016)Process and Case Management together (SECR-2016)
Process and Case Management together (SECR-2016)Maxim Tsepkov
 
Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...
Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...
Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...Maxim Tsepkov
 
Process and Case Management together
Process and Case Management togetherProcess and Case Management together
Process and Case Management togetherMaxim Tsepkov
 
Taxonomy vs folksonomy Tsepkov Analyst Days 2016
Taxonomy vs folksonomy Tsepkov Analyst Days 2016Taxonomy vs folksonomy Tsepkov Analyst Days 2016
Taxonomy vs folksonomy Tsepkov Analyst Days 2016Maxim Tsepkov
 
действуй опираясь на ценности а не просто применяй инструменты максим цепков
действуй опираясь на ценности а не просто применяй инструменты максим цепковдействуй опираясь на ценности а не просто применяй инструменты максим цепков
действуй опираясь на ценности а не просто применяй инструменты максим цепковMaxim Tsepkov
 
Responsibilities in software development tsepkov analyst days 2015
Responsibilities in software development tsepkov analyst days 2015Responsibilities in software development tsepkov analyst days 2015
Responsibilities in software development tsepkov analyst days 2015Maxim Tsepkov
 
Big picture of it project managerment Tsepkov AgileDays 2015
Big picture of it project managerment Tsepkov AgileDays 2015Big picture of it project managerment Tsepkov AgileDays 2015
Big picture of it project managerment Tsepkov AgileDays 2015Maxim Tsepkov
 
Spiral dynamics in use tsepkov sqadays-16
Spiral dynamics in use tsepkov sqadays-16Spiral dynamics in use tsepkov sqadays-16
Spiral dynamics in use tsepkov sqadays-16Maxim Tsepkov
 
Spiral dynamics InUse Tsepkov Testclub 2014-07
Spiral dynamics InUse Tsepkov Testclub 2014-07Spiral dynamics InUse Tsepkov Testclub 2014-07
Spiral dynamics InUse Tsepkov Testclub 2014-07Maxim Tsepkov
 
You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15
You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15
You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15Maxim Tsepkov
 
Agile and usual_managerment-sp_mconf-2013-tsepkov
Agile and usual_managerment-sp_mconf-2013-tsepkovAgile and usual_managerment-sp_mconf-2013-tsepkov
Agile and usual_managerment-sp_mconf-2013-tsepkovMaxim Tsepkov
 
Belbin team spmconf-2012-tsepkov
Belbin team spmconf-2012-tsepkovBelbin team spmconf-2012-tsepkov
Belbin team spmconf-2012-tsepkovMaxim Tsepkov
 

More from Maxim Tsepkov (20)

From Agile to Teal Organization PRyug-2017
From Agile to Teal Organization PRyug-2017From Agile to Teal Organization PRyug-2017
From Agile to Teal Organization PRyug-2017
 
Самоопределяйся технологично!
Самоопределяйся технологично!Самоопределяйся технологично!
Самоопределяйся технологично!
 
Agile and the Third Wave (IT Spring 2017)
Agile and the Third Wave (IT Spring 2017)Agile and the Third Wave (IT Spring 2017)
Agile and the Third Wave (IT Spring 2017)
 
Accounting diagram - Tsepkov EconConf-2017
Accounting diagram - Tsepkov EconConf-2017Accounting diagram - Tsepkov EconConf-2017
Accounting diagram - Tsepkov EconConf-2017
 
Agile - ответ на вызовы третьей промышленной революции - цепков custis
Agile - ответ на вызовы третьей промышленной революции - цепков custisAgile - ответ на вызовы третьей промышленной революции - цепков custis
Agile - ответ на вызовы третьей промышленной революции - цепков custis
 
Use OOP for domain ontology WIAD-2017
Use OOP for domain ontology WIAD-2017Use OOP for domain ontology WIAD-2017
Use OOP for domain ontology WIAD-2017
 
Как понять, подходит ли Agile вашей компании
Как понять, подходит ли Agile вашей компанииКак понять, подходит ли Agile вашей компании
Как понять, подходит ли Agile вашей компании
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектах
 
Process and Case Management together (SECR-2016)
Process and Case Management together (SECR-2016)Process and Case Management together (SECR-2016)
Process and Case Management together (SECR-2016)
 
Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...
Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...
Эволюция организаций и эволюция сотрудника – как изменяется понятие о прави...
 
Process and Case Management together
Process and Case Management togetherProcess and Case Management together
Process and Case Management together
 
Taxonomy vs folksonomy Tsepkov Analyst Days 2016
Taxonomy vs folksonomy Tsepkov Analyst Days 2016Taxonomy vs folksonomy Tsepkov Analyst Days 2016
Taxonomy vs folksonomy Tsepkov Analyst Days 2016
 
действуй опираясь на ценности а не просто применяй инструменты максим цепков
действуй опираясь на ценности а не просто применяй инструменты максим цепковдействуй опираясь на ценности а не просто применяй инструменты максим цепков
действуй опираясь на ценности а не просто применяй инструменты максим цепков
 
Responsibilities in software development tsepkov analyst days 2015
Responsibilities in software development tsepkov analyst days 2015Responsibilities in software development tsepkov analyst days 2015
Responsibilities in software development tsepkov analyst days 2015
 
Big picture of it project managerment Tsepkov AgileDays 2015
Big picture of it project managerment Tsepkov AgileDays 2015Big picture of it project managerment Tsepkov AgileDays 2015
Big picture of it project managerment Tsepkov AgileDays 2015
 
Spiral dynamics in use tsepkov sqadays-16
Spiral dynamics in use tsepkov sqadays-16Spiral dynamics in use tsepkov sqadays-16
Spiral dynamics in use tsepkov sqadays-16
 
Spiral dynamics InUse Tsepkov Testclub 2014-07
Spiral dynamics InUse Tsepkov Testclub 2014-07Spiral dynamics InUse Tsepkov Testclub 2014-07
Spiral dynamics InUse Tsepkov Testclub 2014-07
 
You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15
You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15
You and Сustomer: Solve problems Tsepkov Myasnikov Uzhevko SQAdays-15
 
Agile and usual_managerment-sp_mconf-2013-tsepkov
Agile and usual_managerment-sp_mconf-2013-tsepkovAgile and usual_managerment-sp_mconf-2013-tsepkov
Agile and usual_managerment-sp_mconf-2013-tsepkov
 
Belbin team spmconf-2012-tsepkov
Belbin team spmconf-2012-tsepkovBelbin team spmconf-2012-tsepkov
Belbin team spmconf-2012-tsepkov
 

Ddd softwarepeople-2012-tsepkov

  • 1. DDD: реализуем проект «Вавилонская башня» Докладчик: Максим Цепков (M.Tsepkov@custis.ru) www.custis.ru
  • 2. О чем этот доклад?  Когда-то давно люди не смогли построить Вавилонскую башню – Бог смешал их языки  Проекты в IT в чем-то похожи – они рушатся из-за отсутствия понимания между бизнес-экспертами, разработчиками и другими участниками • Постановки не отражают потребности • Готовая система не соответствует постановкам DDD – способ решить проблему понимания и ключ к построению сложных систем 2/37
  • 3. Теория Схема доклада DDD – единый язык проекта и одна модель системы • Модели были давно, но две: бизнес-область и система • Единый язык проекта создает общее поле понятий • И позволяет работать с одной, общей моделью Практика • Что значит «общий язык проекта» • Какие это дает преимущества • И какую цену приходится платить Единый язык на практике – как это и что в результате? 3/37
  • 5. DDD – как оно начиналось  Концептуальная книга Эрика Эванса • на английском – в 2003 г. • на русском – только в 2010 г. Практическая книга Джимми Нильссона • на английском – в 2006 г. • на русском – в 2007 г. (почти сразу!) 5/37
  • 6. Единый язык (ubiquitous language)  Построен на основе терминов предметной области  Его понимают ИТ-специалисты и эксперты бизнеса  На нем описана модель ИТ-системы и ее место в бизнес-процессах Понятия единого языка: Клиент, Накладная, платеж, Долг – из предметной области 6/37
  • 7. А где здесь ООП ? ООП – это парадигма моделирования Парадигма моделирования определяет Элементы языка Способ их соединения в сложные конструкции Визуальный образ для представления Способ отражения модели в код Объекты с атрибутами и методами Диаграмма классов и другие UML- диаграммы Типы, соответствующие бизнес-объектам Я сосредоточусь на разработке модели, а не на ее реализации 7/37
  • 8. Зачем нужен единый язык? Модель системы не соответствует представлению бизнеса о ее месте в модели предприятия. «Не то чтобы совсем не попал, но только не попал в шарик…» 8/37
  • 9. Итерационное развитие модели Единый язык позволяет совместить модель системы с представлениями бизнеса о ее месте 9/37
  • 10. Единая модель  Аналитик собирает требования и строит модель – сначала предметной области, затем – системы  Артефакты модели описывают и систему и ее использование в бизнес-процессах предприятия  Разработчик реализует модель  Артефакты модели можно проследить в коде Модель предметной области становится моделью системы 10/37
  • 11. Что мы достигаем? Верификация постановок бизнес-специалистами Общее понимание требований на стороне бизнеса Обсуждение модели бизнесом и IT, поиск баланса в сложных решениях Перенос моделей из других предметных областей Бизнес представляет потенциальные возможности системы и сложность различных доработок На этапе эксплуатации – эффективное общение бизнес-пользователей и IT без квалифицированных переводчиков-аналитиков 11/37
  • 12. Автоссылки по теме… SECR-2011 – DDD и системная сложность ADD-2011 – Необъектные модели предметной области SoftwarePeople-2011 – Три компоненты архитектуры приложений 12/37
  • 13. Пример-1: Виза на документы 13/37
  • 14. Задача Задача касается конкретного документа В процессе обработки документа (сделки, договора, контракта) обеспечить проверку и одобрение определенными сотрудниками или отделами 14/37
  • 15. Выбор проектного решения Существует несколько типовых шаблонов Каждая виза – со своим жизненным циклом 15/37
  • 16. В чем проблема?  Шаблоны обладают разной гибкостью и сложностью  Для выбора нужно понимать требуемый баланс между гибкостью и сложностью решения Традиционный подход  На этапе сбора требований аналитики формулируют задачу для конкретного документа  Исходя из этого в системе проектируется решение Выбранное решение отражает текущую ситуацию Решение надо принимать с учетом потенциального изменения бизнес-процессов 16/37
  • 17. Примеры  Проверка сделки казначейством и отделом рисков – не получается выполнять параллельно  Юристы отозвали одобрение кредита, а служба безопасности не него опиралась – связи между визами не контролируются системой  Настройку виз для одобрения договоров с недвижимостью передали в IT из-за сложности 17/37
  • 18. Решение в рамках DDD  Представляем шаблоны, описанные применительно к конкретному документу, показываем разницу  Бизнес-специалисты оценивают потенциальную потребность в реализации бизнес-процессов Решение принимается с учетом перспективы 18/37
  • 19. В чем Единый язык?  Для решения модель надо описать понятно бизнесу • Можно описать обобщенные решения для документов, «состояния» и «визы», и на них ссылаться • Можно описывать каждый случай отдельно  Термины должны быть понятны Заказчику: Например, «визированием» могут считать одобрение документа, требующее только просмотра, а если требуется дополнительная работа, то это называется «обработкой» или «проверкой»  Общий шаблон надо «перевести» на язык проекта 19/37
  • 20. Результат Мы используем известные шаблоны решений Заказчик оценивает вариант решения не только с точки зрения текущих потребностей, но и из предположений о развитии бизнес-процессов Проектируя изменения бизнес-процессов, заказчик представляет потенциал гибкости системы и принимает решения с учетом этого 20/37
  • 22. Задача Ведение взаиморасчетов с клиентами по продажам обеспечивающее ведение управленческих лимитов и отражение расчетов в бухгалтерию 22/37
  • 23. Проблема: Смешение языков на бизнес-уровне Менеджеры по продажам: долг – основа для управленческих решений. Увеличивается как только приняли решение об отгрузке, уменьшается когда признали претензию Бухгалтеры: долг – в соответствии с ПБУ, с учетом оформления документов и прохождения процедур Следствие - управленческий и бухгалтерский долг имеют систематические различия 23/37
  • 24. 24/37
  • 25. Проблемы двух пониманий долга Контроль правильности учета – опаздывает Менеджеров не получается контролировать через бухгалтерию Имеются две разные суммы долга, что затрудняет принятие управленческих решений Для сверки с клиентом и решения проблем менеджеры должны вникать в ПБУ 25/37
  • 26. Решение от DDD  Вырабатываем единый язык, описывающий долг в терминах, понятных менеджерам и бухгалтерам  Строим модель, которая показывает управленческий и бухгалтерский долг и их различие  Ситуации, в которых долг различается описываем на едином языке, согласуем со специалистами  Вырабатываем требования по контролю различий, а также по устранению несущественных различий Результат – общий взгляд на предметную область у бизнес-специалистов, описанный в модели, которая реализуется разработчиками 26/37
  • 27. Как описывать учетную модель?  Для наглядного описания мы разработали Диаграммы учета  Они позволяют представлять учетные модели и делают описание их понятным не только для бухгалтеров, финансистов и аналитиков, но и для других бизнес-специалистов, а также разработчиков  При построении моделей можно успешно применять типовые шаблоны, заимствованные из бухгалтерии, например, транзитные счета Подробнее о диаграммах учета – статья «Диаграммы учета: мост между бухгалтером и разработчиком» Журнал «Бухгалтер и компьютер» 5-2011 http://lib.custis.ru/Когда_всем_понятно 27/37
  • 28. Модель долга клиента Этого долга нет у бухгалтеров Этих платежей нет у менеджеров Овалы – счета стрелки – проводки Сверку с клиентом успешно выполняют менеджеры «Общее» понимание долга 28/37
  • 29. Результат Согласовано понимание предметной области у различных бизнес-специалистов Реализована модель, отвечающая интересам всех заинтересованных сторон проекта 29/37
  • 31. Задача Система расчетного центра по коммунальным услугам Квитанции населению Прием платежей Баланс по льготам и субсидиям Перечисление средств, баланс с поставщиками 31/37
  • 32. Проблема: Сложность задачи превышает уровень пользователей  Система решает сложную учетную задачу, включая изменения в прошлом  Ее расчеты должны быть понятны широкому кругу пользователей без опыта работы с учетом • Населению, получающему квитанции • Операторам абонентских пунктов • Сотрудникам службы соц.защиты • Бухгалтерам поставщиков услуг • Сотрудникам городского управления  Сопровождение системы, включая создание отчетов, должно происходить на местах 32/37
  • 33. Решение от DDD  Создается учетная модель с использованием шаблонов, обеспечивающих необходимый учет  Модель описывается на доступном пользователям языке, это обеспечивает понимание  Реализуются интерфейсы, позволяющие проследить разбор по модели конкретного случая 33/37
  • 34. Решение от DDD Учетная модель расчетов сделала систему понятной В модели использованы приемы из бухгалтерии, обеспечившие требуемый учет Интерфейсы представляют учет понятно для пользователя 34/37
  • 36. Что же обеспечивает DDD? Единый язык + Единая модель: обеспечивают надежную основу для общения всех участников проекта при принятии решений; позволяет использовать типовые шаблоны; позволяют эффективно развивать сложную систему. Это требует дополнительных усилий: формирование единого языка; понимание разработчиками предметной области. По опыту, результат окупает усилия. DDD позволяет успешно создавать сложные проектные решения и развивать их 36/37
  • 37. Спасибо! Вопросы? Максим Цепков M.Tsepkov@custis.ru