SlideShare a Scribd company logo
Как выбрать для проекта
практики проектирования
и работы с требованиями
Максим Цепков
Главный архитектор дирекции развития решений
Москва, 21–22 апреля 2017
Analyst Days
И собрать из них целостный метод
Что такое «требования»: два ответа
Requirements
and Architecture
Detailed
Design
Implementation
Integration
and Test
System
Verification
На V-диаграмме (Wikipedia)
требования – внешние
функции системы
Я буду говорить
о требованиях в широком
понимании OMG Essence
Concept Maintenance
2/35
 Когда-то давно проектирование считалось
искусством – как стиль художника
 Потом начали верить в правильный метод,
который знают гуру
 И когда Rational собрал трех методологов, Гради Буча,
Ивара Якобсона и Джеймса Рамбо, у этой веры даже
появились основания – родился UML. Но не случилось
 Потом пришло многообразие легких методов:
проекты разные, и делать их надо по-разному
Надо ли собирать метод?
3/35
Big Picture развития методов
Эпоха НИОКР: делаем правильную систему
Время
Способ
работы
«Новое время»
 Удовлетворенность стейкхолдеров
 Достижение бизнес-целей продукта
Эпоха RUP: делаем систему правильно
Время Scrum: движемся к цели
1960 1990 2005 2013
Подробности – в докладах «Развитие критериев качества и управления
проектами» на AgileDays – 2015 и «Ответственность за качество в разных ИТ-
проектах» на SQA Days – 20
4/35
 Я не буду делать обзор методов –
о каждом можно прочитать
 Я расскажу о вопросах, с помощью которых
можно выбрать метод или собрать свой
 Речь пойдет о работе с требованиями,
а бизнес-анализ, проектирование и смежные
области будут только затрагиваться
О чем будет доклад
Метод для работы с требованиями
правильно собирать аналитикам:
каждый сам кузнец своего счастья 
5/35
 Как определяем границы проекта?
 Как декомпозируем и инкрементально
развиваем?
 Как обеспечиваем качество?
 Как организуем артефакты?
 OMG Essence – способ описать метод
План рассказа
6/35
Как определяем
границы проекта?
7/35
V-модель как карта проекта
Requirements
and Architecture
Detailed
Design
Implementation
Integration
and Test
System
Verification
Maintenance
V-Model (Wikipedia)
Пользователи
Needs and
Opportunities
Concept Maintenance
Delivery
Заказчик
ИТ-система
Concept
8/35
Requirements
and Architecture
Detailed
Design
Implementation
Integration
and Test
System
Verification
ИТ-система
Что является целью проекта?
Удовлетворить
потребности
пользователей
Пользователи
Фокус с автоматизации известного на удовлетворение
потребностей пользователей сместился примерно в 2010
Needs and
Opportunities
Delivery
Concept
Автоматизировать
известный процесс
9/35
Requirements
and
Architecture
Detailed
Design
Implementation
Integration
and Test
System
Verification
ИТ-система
Уровни требований на V-модели
Фича как часть
конструкции
Фича как ценность
для пользователей
Пользователи
Архитектор
TechLead
UI designer
Usability-
специалист
Системный
аналитик
UX-
специалист Needs and
Opportunities Delivery
По мере развития IT уровень требований по V-диаграмме
повышался и возникали новые специализации аналитиков
Бизнес-
аналитик
Фича как функция системы
10/35
IT-проект внутри бизнес-проекта?
Requirements
and Architecture
Detailed
Design
Implementation
Integration
and Test
System
Verification
ИТ-система
Бизнес-проект
Needs and
Opportunities Delivery
Needs and
Opportunities
Delivery
11/35
Или IT и бизнес делают совместный
проект?
Requirements
and Architecture
Detailed
Design
Implementation
Integration
and Test
System
Verification
В современных проектах граница между IT-частью проекта и изменением
бизнеса подвижна и меняется в ходе проекта, а диджитализация
означает, что проект будет единым, а IT-часть – главной!
Needs and
Opportunities
Delivery
12/35
 Исходные данные для проекта – потребности
пользователей или внешние функции?
 Насколько жестко надо фиксировать внешний
контур проекта и трассировать к нему решения?
 Какие используем форматы: user story, use case,
описания фич, классические требования?
Требования и потребности – внешний
контур проекта
Это зависит от стейкхолдеров, заказывающих
проект, – как они видят границы и их описание?
13/35
 Первоначально требования описывали функции
системы и систему как целое
 Выяснилось, что сделанные так системы
оказываются неудобны или непригодны в работе
 Use case – описание, как пользователь будет
применять систему для решения своих задач
 User story – фиксируем, зачем пользователь
решает задачи, применяя систему
Выйти за границу – представить
себя на месте пользователя
В процессе разработки принимается много решений,
требующих представить себя на месте пользователя
Функции
Сценарии
Цели
14/35
Как декомпозируем
и инкрементально развиваем?
15/35
 Каждая система имеет деление
 На компоненты – по внешним функциям
 На модули – по ячейкам внутренней конструкции
В общем случае они связаны произвольно
 Развитие системы дискретно
 Инкременты поставок очередных версий
 Инкременты разработки, передаваемой в тестирование
 Если деление мелкое, надо удерживать
целостность системы
Компоненты, модули и их приращения
Из курса
Левенчука,
он ссылается
на ISO 81346
Существует много вариантов организации системы
из составных частей. Метод работы с требованиями должен
соответствовать способу декомпозиции
16/35
 Инкрементальная поставка требует создания
бизнес-ценного функционала
 Формат User story формулирует малый
функционал, ценный пользователю
 Use case больше, и его сценарии имеют
разную ценность – делим case на slice
 Можно описывать приращения в терминах
доработки конструктивных элементов системы,
ее фич, функций или сервисов
Инкрементальная поставка
Ивар
Якобсон
Use Case 2.0
17/35
 Детализация до мелких фрагментов выполняется
не сразу – каковы крупные фрагменты?
 Соответствуют ли крупные фрагменты наборам
поставляемого функционала или поставки
формируются отдельно?
 На каких уровнях детализации и как оцениваем?
 Как организуем пакеты поставки из набора
функционала?
 Как выделяем MVP?
 Как используем приоритеты?
 Как удовлетворяем интересы групп пользователей?
Инкрементальная детализация
Вариант – практика
Story Mapping
18/35
 Что является поставляемым приложением?
 Монолит, прирастающий по объему
 Крупные модули
 Мелкие сервисы или модули
 Что является ячейками приложения?
 Процедуры, таблицы и формы UI
 Объекты (данные плюс методы в одном флаконе)
 Модули с собственной моделью декомпозиции и др.
 Применяется ли слоевое деление и какое?
 Как интегрируются модули и мелкие ячейки?
Какова структура приложения?
Модуль – развиваем,
а сервис – заменяем новым
19/35
Основа структуры приложения
МетодыДанные
UI
Николай Вирт
«Алгоритмы + структуры
данных = программы»
1976 (на русском 1985)
Интерфейс
Бизнес-логика
База данных
20/35
Варианты структуры
БЛDB
UI БЛ
DB
UI
БЛ
DB
БЛ
DB
БЛ
UI
DB
БЛ
UI
БЛ
UI
БЛ
DB
БЛ
DB
БЛ
DB
UIUI UI
Единое
приложение
Единая база
данных
Единый
портал
Единый
протокол
интеграции
А какая структура у вас?
21/35
 Концепция системы – цели создания
и верхнеуровневые полагания
 Метафора системы – эффективная
практика XP, если ее получается придумать
 Я говорил о метафоре в докладе «Модель системы – архитектура
для Agile-разработки» на AgileDays – 2011
 Архитектура системы – основа конструкции
 Модель системы – постепенно создаваемая
и принципиальная конструкция системы
 Подход Domain Driven Design (DDD) адаптировал использование
модели для инкрементальной поставки (мои доклады по DDD)
Удержание целостности системы UI
DB
БЛ ??
22/35
Как обеспечиваем качество?
23/35
 Инкремент поставки развивает функции, изменяя
для этого ячейки конструкции
 Чтобы влияние изменений было локальным, ячейки
должны быть изолированными
 ООП, микросервисы и многое другое придумывали
для этого, но гарантий независимости нет
 В ООП ее нарушают обращение по цепочкам ссылок, есть хороший
доклад Андрея Бибичева на AgileDays – 2011 «Архитектура в Agile –
переосмысляя идею модульности и компонентности»
 Независимость микросервисов нарушает синхронное взаимодействие
 Какие практики будете использовать вы?
Ограниченность изменений
24/35
Практики тестирования
Requirements
and Architecture
Detailed
Design
Implementation
Integration
and Test
System
Verification
Пользователи
Needs and
Opportunities DeliveryBDD
TDD
Continuous
Integration
Continuous
Delivery
Автотесты
Тест-кейсы –
часть требований!
25/35
 Уровень тест-кейсов не может быть выше
уровня требований – нет смысла делать
BDD, если нужды пользователей неясны
 Уровень формальности требований
должен соответствовать формальности
тестов: автотесты требуют строгости
 Надо контролировать стоимость ведения
и проверки тест-кейсов
Ведение требований должно
соответствовать подходу к тестированию
26/35
Как организуем артефакты?
27/35
 Используем средство моделирования
(EA и другие) или диаграммы
«в вольном стиле»?
 Какие wiki-системы и другие
средства коллективной работы используем?
 Как структурируем артефакты?
 Через какие viewpoint представляем систему?
 Какой набор диаграмм используем?
Артефакты и диаграммы
MS Word не является
эффективным средством
коллективной работы
На SECR – 2016 был рассказ Павла Музыки об опыте CUSTIS «Собираем кубик
Рубика: восстановление архитектурного описания корпоративной
распределенной системы»
28/35
 Артефакт – средство коммуникации
 С заказчиком и разработчиками в ходе проекта
 С будущими пользователями системы
 С теми, кто будет развивать и эксплуатировать –
даже если это ты сам, но через полгода
 Артефакт должен быть понятен всем
сторонам коммуникации
 Это ограничивает сложность нотаций
 Упрощенные схемы должны сохранять
ключевые моменты
Принципы работы с артефактами
29/35
 Эксплуатация добавляет фокусы
 Стоимости функционирования бизнес-процессов и поддержки
 Быстрой и эффективной обработки инцидентов
 Сохраняется фокус развития системы
 Автоматизация вспомогательных и побочных процессов
 Реализация специальных процессов для конкретных целевых
групп пользователей
 Крупные доработки основного процесса
 Все это требует изменений в практиках
и артефактах ведения требований
От внедрения к эксплуатации
Их надо спроектировать и реализовать, тем более
что на внедрении артефакты обычно отстают от системы
30/35
OMG Essence –
способ описать метод
Потому что процессное описание в IT
не работает – помни историю RUP
Источники: Спецификация на сайте OMG и библиотека практик
на сайте Ивара Якобсона (требуется регистрация)
31/35
Требования и возможности в Essence
Req
Conceived
Bounded
Coherent
Acceptable
Addressed
Fulfilled
Opportunity
Identified
Solution
Needed
Value
Established
Viable
Addressed
Benefit
Accrued
Обнаружены
коммерческие
или социальные
возможности
Необходимо
IT-решение
Согласована
потребность
в IT-решении
Определена
ценность решения
Ясно назначение
и область системы
Описаны основные
характеристики
Описание принято
стейкхолдерами
Вольный
перевод!
Сроки и стоимость
решения приемлемы
Значительная
часть требований
удовлетворена
Демонстрируется,
что решение
доставляет ценность
Требования
удовлетвореныОжидаемый эффект
достигается
32/35
Требования – декомпозиция
Req
Conceived
Bounded
Coherent
Acceptable
Addressed
Fulfilled
Req Item
Identified
Described
Implemented
Verified
Product
backlog
User story
Described
Understood
Implemented
Fulfilled
Story
Card
Req Item
Understand
the Reqs
Shape
the System
Implement
the System
Test
the System
Write
Prioritize
Estimate
33/35
User story и Use case
Req Item
Identified
Described
Implemented
Verified
User story
Described
Understood
Implemented
Fulfilled
Use case
Goal Established
Story Structure
Understood
Simplest Story
Fulfilled
Sufficient Stories
Fulfilled
All Stories
Fulfilled
Use case
slice
Implemented
Verified
Analyzed
Prepared
Scored
Req
34/35
 Каждая ИТ-разработка идет в своих условиях
 Требования определяют внешние границы проекта
и создаваемую конструкцию
 Способ работы с требованиями в проекте сам
по себе – объект конструирования и воплощения
Подводя итоги
Вакансии аналитиков
Пишите на hr@custis.ru, подходите с вопросами
Максим Цепков
mtsepkov.org

More Related Content

PPTX
Опыт госпроектов и взаимодействия с корпоративными структурами
PDF
Будущее уже наступило: от Agile к бирюзовым организациям
PDF
Три истории микросервисов, или MSA для Enterprise
PPTX
Agile — ответ на вызовы третьей промышленной революции
PPT
Модель системы — архитектура для Agile-разработки
PDF
Choose method for requirements Tsepkov Analyst Days-2017
PPTX
Долгоживущие ИТ в динамичном ритейле
PDF
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...
Опыт госпроектов и взаимодействия с корпоративными структурами
Будущее уже наступило: от Agile к бирюзовым организациям
Три истории микросервисов, или MSA для Enterprise
Agile — ответ на вызовы третьей промышленной революции
Модель системы — архитектура для Agile-разработки
Choose method for requirements Tsepkov Analyst Days-2017
Долгоживущие ИТ в динамичном ритейле
Практика применения Enterprise Architect и T4-шаблонов для разработки систем...

What's hot (20)

PPT
Domain Driven Design: модель вместо требования
PPTX
Опыт построения микросервисной архитектуры в цифровом банке
PDF
Опыт применения метода ATAM для оценки архитектуры
PPTX
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
PPTX
Собираем кубик Рубика
PPT
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
PPT
Архитектура в Agile проекте
PPTX
Задачи системного аналитика (конспект лекций Школы системного анализа)
PPTX
DDD - модель вместо требований
PDF
DDD: проблемы и решения при отражении модели предметной области в код
PDF
ITGM #5. What Is Enterprise Architecture [1.0, RUS]
PPTX
SECON'2014 - Максим Цепков - DDD: от требований до кода
PDF
Domain-Driven Design: Модель вместо требований
PPTX
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
PPTX
DDD — эффективный способ работы в условиях системной сложности
PDF
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
PPTX
From Agile to Teal Organization PRyug-2017
PPTX
Enterprise Architecture - Sergey Orlik (Microsoft Platforma 2011)
PDF
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...
PPTX
DDD-secon-2014-tsepkov
Domain Driven Design: модель вместо требования
Опыт построения микросервисной архитектуры в цифровом банке
Опыт применения метода ATAM для оценки архитектуры
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Собираем кубик Рубика
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
Архитектура в Agile проекте
Задачи системного аналитика (конспект лекций Школы системного анализа)
DDD - модель вместо требований
DDD: проблемы и решения при отражении модели предметной области в код
ITGM #5. What Is Enterprise Architecture [1.0, RUS]
SECON'2014 - Максим Цепков - DDD: от требований до кода
Domain-Driven Design: Модель вместо требований
Специфика работы бизнес-аналитика в зависимости от типов проектов и методологий
DDD — эффективный способ работы в условиях системной сложности
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
From Agile to Teal Organization PRyug-2017
Enterprise Architecture - Sergey Orlik (Microsoft Platforma 2011)
STRATOPLAN. Efficient Object-Oriented Design and Structured Quality of Softwa...
DDD-secon-2014-tsepkov
Ad

Similar to Как выбрать для проекта практики проектирования и работы с требованиями (20)

PPTX
Roles happy dev-2013-tsepkov
PPTX
определение и реализация требований к ИТ продукту
PPTX
«трудности при разработке сложных распределённых систем на Java. способы реше...
PDF
Проектирование Программных Систем. Лекция 01
PDF
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016
PPTX
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!
POTX
Как жить в согласии с SOLID?
PDF
SEMAT in Discussion Corner @ SEC(R) 2013
PPTX
Денис Бесков. Как обеспечивать полноту требований
PPTX
Развитие управления проектами и критериев качества в ит
PDF
Ответственность за качество в разных ИТ-проектах
PPTX
Ответственность за качество в разных ИТ-проектах
PPTX
Msf Dz
PPTX
Big picture of it project managerment Tsepkov AgileDays 2015
PPTX
цепков развитие управления проектами и критериев качества в ит м. цепков-16х9
PDF
Практики командной работы: о пользе письменных артефактов
PPTX
Cистемная архитектура вместо требований
PPTX
Развитие управления проектами и критериев качества в ИТ
PPTX
Работа с требованиями в условиях Agile трансформации
PPT
Andrey Petrov P D P
Roles happy dev-2013-tsepkov
определение и реализация требований к ИТ продукту
«трудности при разработке сложных распределённых систем на Java. способы реше...
Проектирование Программных Систем. Лекция 01
Agile то что на самом деле нужно госзаказчикам - Максим Цепков на AgileDays-2016
Максим Цепков, Agile - то что на самом деле нужно гос.заказчикам!
Как жить в согласии с SOLID?
SEMAT in Discussion Corner @ SEC(R) 2013
Денис Бесков. Как обеспечивать полноту требований
Развитие управления проектами и критериев качества в ит
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектах
Msf Dz
Big picture of it project managerment Tsepkov AgileDays 2015
цепков развитие управления проектами и критериев качества в ит м. цепков-16х9
Практики командной работы: о пользе письменных артефактов
Cистемная архитектура вместо требований
Развитие управления проектами и критериев качества в ИТ
Работа с требованиями в условиях Agile трансформации
Andrey Petrov P D P
Ad

More from CUSTIS (20)

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

Как выбрать для проекта практики проектирования и работы с требованиями

  • 1. Как выбрать для проекта практики проектирования и работы с требованиями Максим Цепков Главный архитектор дирекции развития решений Москва, 21–22 апреля 2017 Analyst Days И собрать из них целостный метод
  • 2. Что такое «требования»: два ответа Requirements and Architecture Detailed Design Implementation Integration and Test System Verification На V-диаграмме (Wikipedia) требования – внешние функции системы Я буду говорить о требованиях в широком понимании OMG Essence Concept Maintenance 2/35
  • 3.  Когда-то давно проектирование считалось искусством – как стиль художника  Потом начали верить в правильный метод, который знают гуру  И когда Rational собрал трех методологов, Гради Буча, Ивара Якобсона и Джеймса Рамбо, у этой веры даже появились основания – родился UML. Но не случилось  Потом пришло многообразие легких методов: проекты разные, и делать их надо по-разному Надо ли собирать метод? 3/35
  • 4. Big Picture развития методов Эпоха НИОКР: делаем правильную систему Время Способ работы «Новое время»  Удовлетворенность стейкхолдеров  Достижение бизнес-целей продукта Эпоха RUP: делаем систему правильно Время Scrum: движемся к цели 1960 1990 2005 2013 Подробности – в докладах «Развитие критериев качества и управления проектами» на AgileDays – 2015 и «Ответственность за качество в разных ИТ- проектах» на SQA Days – 20 4/35
  • 5.  Я не буду делать обзор методов – о каждом можно прочитать  Я расскажу о вопросах, с помощью которых можно выбрать метод или собрать свой  Речь пойдет о работе с требованиями, а бизнес-анализ, проектирование и смежные области будут только затрагиваться О чем будет доклад Метод для работы с требованиями правильно собирать аналитикам: каждый сам кузнец своего счастья  5/35
  • 6.  Как определяем границы проекта?  Как декомпозируем и инкрементально развиваем?  Как обеспечиваем качество?  Как организуем артефакты?  OMG Essence – способ описать метод План рассказа 6/35
  • 8. V-модель как карта проекта Requirements and Architecture Detailed Design Implementation Integration and Test System Verification Maintenance V-Model (Wikipedia) Пользователи Needs and Opportunities Concept Maintenance Delivery Заказчик ИТ-система Concept 8/35
  • 9. Requirements and Architecture Detailed Design Implementation Integration and Test System Verification ИТ-система Что является целью проекта? Удовлетворить потребности пользователей Пользователи Фокус с автоматизации известного на удовлетворение потребностей пользователей сместился примерно в 2010 Needs and Opportunities Delivery Concept Автоматизировать известный процесс 9/35
  • 10. Requirements and Architecture Detailed Design Implementation Integration and Test System Verification ИТ-система Уровни требований на V-модели Фича как часть конструкции Фича как ценность для пользователей Пользователи Архитектор TechLead UI designer Usability- специалист Системный аналитик UX- специалист Needs and Opportunities Delivery По мере развития IT уровень требований по V-диаграмме повышался и возникали новые специализации аналитиков Бизнес- аналитик Фича как функция системы 10/35
  • 11. IT-проект внутри бизнес-проекта? Requirements and Architecture Detailed Design Implementation Integration and Test System Verification ИТ-система Бизнес-проект Needs and Opportunities Delivery Needs and Opportunities Delivery 11/35
  • 12. Или IT и бизнес делают совместный проект? Requirements and Architecture Detailed Design Implementation Integration and Test System Verification В современных проектах граница между IT-частью проекта и изменением бизнеса подвижна и меняется в ходе проекта, а диджитализация означает, что проект будет единым, а IT-часть – главной! Needs and Opportunities Delivery 12/35
  • 13.  Исходные данные для проекта – потребности пользователей или внешние функции?  Насколько жестко надо фиксировать внешний контур проекта и трассировать к нему решения?  Какие используем форматы: user story, use case, описания фич, классические требования? Требования и потребности – внешний контур проекта Это зависит от стейкхолдеров, заказывающих проект, – как они видят границы и их описание? 13/35
  • 14.  Первоначально требования описывали функции системы и систему как целое  Выяснилось, что сделанные так системы оказываются неудобны или непригодны в работе  Use case – описание, как пользователь будет применять систему для решения своих задач  User story – фиксируем, зачем пользователь решает задачи, применяя систему Выйти за границу – представить себя на месте пользователя В процессе разработки принимается много решений, требующих представить себя на месте пользователя Функции Сценарии Цели 14/35
  • 16.  Каждая система имеет деление  На компоненты – по внешним функциям  На модули – по ячейкам внутренней конструкции В общем случае они связаны произвольно  Развитие системы дискретно  Инкременты поставок очередных версий  Инкременты разработки, передаваемой в тестирование  Если деление мелкое, надо удерживать целостность системы Компоненты, модули и их приращения Из курса Левенчука, он ссылается на ISO 81346 Существует много вариантов организации системы из составных частей. Метод работы с требованиями должен соответствовать способу декомпозиции 16/35
  • 17.  Инкрементальная поставка требует создания бизнес-ценного функционала  Формат User story формулирует малый функционал, ценный пользователю  Use case больше, и его сценарии имеют разную ценность – делим case на slice  Можно описывать приращения в терминах доработки конструктивных элементов системы, ее фич, функций или сервисов Инкрементальная поставка Ивар Якобсон Use Case 2.0 17/35
  • 18.  Детализация до мелких фрагментов выполняется не сразу – каковы крупные фрагменты?  Соответствуют ли крупные фрагменты наборам поставляемого функционала или поставки формируются отдельно?  На каких уровнях детализации и как оцениваем?  Как организуем пакеты поставки из набора функционала?  Как выделяем MVP?  Как используем приоритеты?  Как удовлетворяем интересы групп пользователей? Инкрементальная детализация Вариант – практика Story Mapping 18/35
  • 19.  Что является поставляемым приложением?  Монолит, прирастающий по объему  Крупные модули  Мелкие сервисы или модули  Что является ячейками приложения?  Процедуры, таблицы и формы UI  Объекты (данные плюс методы в одном флаконе)  Модули с собственной моделью декомпозиции и др.  Применяется ли слоевое деление и какое?  Как интегрируются модули и мелкие ячейки? Какова структура приложения? Модуль – развиваем, а сервис – заменяем новым 19/35
  • 20. Основа структуры приложения МетодыДанные UI Николай Вирт «Алгоритмы + структуры данных = программы» 1976 (на русском 1985) Интерфейс Бизнес-логика База данных 20/35
  • 21. Варианты структуры БЛDB UI БЛ DB UI БЛ DB БЛ DB БЛ UI DB БЛ UI БЛ UI БЛ DB БЛ DB БЛ DB UIUI UI Единое приложение Единая база данных Единый портал Единый протокол интеграции А какая структура у вас? 21/35
  • 22.  Концепция системы – цели создания и верхнеуровневые полагания  Метафора системы – эффективная практика XP, если ее получается придумать  Я говорил о метафоре в докладе «Модель системы – архитектура для Agile-разработки» на AgileDays – 2011  Архитектура системы – основа конструкции  Модель системы – постепенно создаваемая и принципиальная конструкция системы  Подход Domain Driven Design (DDD) адаптировал использование модели для инкрементальной поставки (мои доклады по DDD) Удержание целостности системы UI DB БЛ ?? 22/35
  • 24.  Инкремент поставки развивает функции, изменяя для этого ячейки конструкции  Чтобы влияние изменений было локальным, ячейки должны быть изолированными  ООП, микросервисы и многое другое придумывали для этого, но гарантий независимости нет  В ООП ее нарушают обращение по цепочкам ссылок, есть хороший доклад Андрея Бибичева на AgileDays – 2011 «Архитектура в Agile – переосмысляя идею модульности и компонентности»  Независимость микросервисов нарушает синхронное взаимодействие  Какие практики будете использовать вы? Ограниченность изменений 24/35
  • 25. Практики тестирования Requirements and Architecture Detailed Design Implementation Integration and Test System Verification Пользователи Needs and Opportunities DeliveryBDD TDD Continuous Integration Continuous Delivery Автотесты Тест-кейсы – часть требований! 25/35
  • 26.  Уровень тест-кейсов не может быть выше уровня требований – нет смысла делать BDD, если нужды пользователей неясны  Уровень формальности требований должен соответствовать формальности тестов: автотесты требуют строгости  Надо контролировать стоимость ведения и проверки тест-кейсов Ведение требований должно соответствовать подходу к тестированию 26/35
  • 28.  Используем средство моделирования (EA и другие) или диаграммы «в вольном стиле»?  Какие wiki-системы и другие средства коллективной работы используем?  Как структурируем артефакты?  Через какие viewpoint представляем систему?  Какой набор диаграмм используем? Артефакты и диаграммы MS Word не является эффективным средством коллективной работы На SECR – 2016 был рассказ Павла Музыки об опыте CUSTIS «Собираем кубик Рубика: восстановление архитектурного описания корпоративной распределенной системы» 28/35
  • 29.  Артефакт – средство коммуникации  С заказчиком и разработчиками в ходе проекта  С будущими пользователями системы  С теми, кто будет развивать и эксплуатировать – даже если это ты сам, но через полгода  Артефакт должен быть понятен всем сторонам коммуникации  Это ограничивает сложность нотаций  Упрощенные схемы должны сохранять ключевые моменты Принципы работы с артефактами 29/35
  • 30.  Эксплуатация добавляет фокусы  Стоимости функционирования бизнес-процессов и поддержки  Быстрой и эффективной обработки инцидентов  Сохраняется фокус развития системы  Автоматизация вспомогательных и побочных процессов  Реализация специальных процессов для конкретных целевых групп пользователей  Крупные доработки основного процесса  Все это требует изменений в практиках и артефактах ведения требований От внедрения к эксплуатации Их надо спроектировать и реализовать, тем более что на внедрении артефакты обычно отстают от системы 30/35
  • 31. OMG Essence – способ описать метод Потому что процессное описание в IT не работает – помни историю RUP Источники: Спецификация на сайте OMG и библиотека практик на сайте Ивара Якобсона (требуется регистрация) 31/35
  • 32. Требования и возможности в Essence Req Conceived Bounded Coherent Acceptable Addressed Fulfilled Opportunity Identified Solution Needed Value Established Viable Addressed Benefit Accrued Обнаружены коммерческие или социальные возможности Необходимо IT-решение Согласована потребность в IT-решении Определена ценность решения Ясно назначение и область системы Описаны основные характеристики Описание принято стейкхолдерами Вольный перевод! Сроки и стоимость решения приемлемы Значительная часть требований удовлетворена Демонстрируется, что решение доставляет ценность Требования удовлетвореныОжидаемый эффект достигается 32/35
  • 33. Требования – декомпозиция Req Conceived Bounded Coherent Acceptable Addressed Fulfilled Req Item Identified Described Implemented Verified Product backlog User story Described Understood Implemented Fulfilled Story Card Req Item Understand the Reqs Shape the System Implement the System Test the System Write Prioritize Estimate 33/35
  • 34. User story и Use case Req Item Identified Described Implemented Verified User story Described Understood Implemented Fulfilled Use case Goal Established Story Structure Understood Simplest Story Fulfilled Sufficient Stories Fulfilled All Stories Fulfilled Use case slice Implemented Verified Analyzed Prepared Scored Req 34/35
  • 35.  Каждая ИТ-разработка идет в своих условиях  Требования определяют внешние границы проекта и создаваемую конструкцию  Способ работы с требованиями в проекте сам по себе – объект конструирования и воплощения Подводя итоги Вакансии аналитиков Пишите на hr@custis.ru, подходите с вопросами Максим Цепков mtsepkov.org