Сбор и анализ требований к программному продукту — Software_Requirements_Khimonin

Сбор и анализ требований к программному продукту

Версия 1.03

Автор: Химонин Юрий

program manager компании Acronis

Опубликовано: июнь 2009

Оглавление

 

Предисловие …………………………………………………………………………………………………………………

3

Этапы сбора и анализа требований ……………………………………………………………………………..

4

Определение концепции продукта ……………………………………………………………………….

4

Сбор требований………………………………………………………………………………………………….

4

Анализ требований ………………………………………………………………………………………………

4

Проектирование системы……………………………………………………………………………………..

4

Интеграция в жизненный цикл разработки продукта…………………………………………….

5

Влияние качества работ на характеристики конечного продукта …………………………..

6

Сферы ответственностей: потребности клиентов и предложенные решения ………….

7

I. Разработка концепции продукта ………………………………………………………………………………

9

Сбор и анализ бизнес требований……………………………………………………………………….

10

Создание образа решения …………………………………………………………………………………..

20

Определение содержания проекта ………………………………………………………………………

22

II. Сбор требований…………………………………………………………………………………………………….

25

Определение основных профилей пользователей………………………………………………..

25

Формирование инициативной группы ………………………………………………………………..

26

Сбор пользовательских историй …………………………………………………………………………

26

III. Анализ требований ……………………………………………………………………………………………….

29

Выделение пользовательских историй в отдельные пакеты …………………………………

29

Два подхода: Варианты использования или спецификации требований……………….

30

А. Варианты использования. Структурирование пользовательских историй………..

30

Б. Спецификация требований……………………………………………………………………………..

34

Экспертиза требований к дизайну ………………………………………………………………………

35

IV. Проектирование ……………………………………………………………………………………………………

37

Определение функциональных требований к продукту уровня системы ……………..

37

Создание модели взаимодействия с пользователем …………………………………………….

38

Описание архитектуры продукта ………………………………………………………………………..

42

Добавление технической информации………………………………………………………………..

43

Постановка задач по системным требованиям …………………………………………………….

43

Общая структура требований …………………………………………………………………………………….

45

Структура требований при использовании средств, ориентированных на документ

………………………………………………………………………………………………………………………….

45

Структура требований при использовании баз данных………………………………………..

47

План работ по сбору и анализу требований к продукту……………………………………….

48

Запланированные дополнения и изменения к статье ………………………………………………..

50

Примечание ………………………………………………………………………………………………………………..

51

Сбор и анализ требований к программному продукту (Версия 1.03).

2

©2009 Химонин Ю. И.

 

Предисловие

Данная статья адресована менеджерам проектов и бизнес аналитикам, которые занимаются сбором и анализом требований к системе с последующим проектированием на их основе.

Цель статьи – предложить готовый подход (методологию) по сбору и анализу требований с последующим проектированием системы на их основе. Методики изначально рассматриваются в рамках итерационного или циклического циклов разработки, в отличие от методик ведущих издателей, которые в исходном виде могут быть использованы только в водопадной или каскадной моделях. Благодаря этому, приведенная методология идеально подходит компаниям, использующим или планирующим использовать гибкие модели разработки (Agile).

Особое внимание уделяется процессу формирования данных, входящих в устав будущего продукта, так как для большинства проектов фиксация содержания, срока и бюджета происходит именно в уставе (для проектов на заказ — в контракте) и не может

быть пересмотрена в дальнейшем. Для выигрыша тендера или удержания клиента, срок, выделенный на этот этап, не превышает 2–3недель, а потому для обеспечения высокой точности планирования сроков и бюджета нужно иметь идеально выверенную методику. Такую, как в данной статье.

Статья является компиляцией уже существующих подходов описанных в рамках

PMBOK (PMI), Software Requirements Book (Microsoft), а также современных инициатив,

которые используются в компаниях Acronis, Microsoft и Borland. Она направлена только на проекты по разработке программного обеспечения, а потому менее универсальна

и более кратка и конкретна, нежели методология, представленная в рамках PMBOK.

В уже зарекомендовавшие себя процессы автор интегрировал такие артефакты как пользовательские сценарии, навел порядок с такими неоднозначными элементами как «варианты использования» и систематизировал все типы требований.

Сбор и анализ требований к программному продукту (Версия 1.03).

3

©2009 Химонин Ю. И.

 

Этапы сбора и анализа требований

Процесс работы с требованиями к продукту можно разделить на 4 этапа:

Определение концепции продукта.

Сбор требований.

Анализ требований.

Проектирование системы

Определение концепции продукта

На этапе определения концепции продукта, проводится работа с его инвестором, целью которой является выработка единого видения будущего продукта. По окончанию этого этапа производится вывод о том, будет ли этот продукт разрабатываться или нет.

Сбор требований

На этапе сбора требований основная работа ведется с заказчиком системы и еѐ будущими пользователями. Цель этапа — точно определить функции продукта и способы его интеграции в существующие процессы.

Качественное выполнение работ на этом этапе гарантирует то, что будущий продукт будет соответствовать ожиданиям заказчика. Четкая расстановка приоритетов обеспечивает реализацию наиболее востребованной функциональности и исключение второстепенной/невостребованной функциональности, что сэкономит бюджет и сроки.

Анализ требований

На этапе анализа требований проходит структуризация уже собранных ранее требований. Цель этапа — предоставить четкий список не дублируемых требований к системе, которые должны быть выделены из избыточных и частично дублирующихся

сценариев и пользовательских историй, которые были полученных на предыдущем этапе.

Правильно сгруппированные требования помогут обойтись минимальным количеством функционала для удовлетворения максимально большего количества целей, а это,

в свою очередь, поможет сэкономить бюджет и не даст расползтись рамкам проекта.

Проектирование системы

Целью всех предыдущих этапов был сбор информации о том, кому и зачем необходим будущий продукт. Этап проектирования — это первый этап, на котором группа разработки принимает проектные решения о том, какую функциональность будет нести продукт, чтобы удовлетворить пользователей.

Сбор и анализ требований к программному продукту (Версия 1.03).

4

©2009 Химонин Ю. И.

 

Результатом этого этапа является законченное техническое задание к продукту. Оно должно содержать полное описание поведения будущего продукта и не содержать неоднозначностей и вопросов.

На основе технического задания начинается моделирование работы продукта с конечными пользователями (используя макеты пользовательского интерфейса,

к примеру) и производится тестирование технического задания. Это позволяет увеличить качество продукта и снизить его стоимость, так как стоимость внесения изменений в техническое задание всегда меньше, чем в конечный продукт.

Интеграция в жизненный цикл разработки продукта

Этап определения концепции продукта обычно выделяется в отдельный проект или является первым этапом в разработке продукта. Я рекомендую выделять его именно в отдельный проект, так как это дает возможность заранее определить время, которое вы

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

Рисунок 1. Место требований в жизненном цикле проекта, на примере каскадного и итеративного процессов

На этапе определения концепции считается, что идея уже родилась, еѐ лишь надо развить и формализовать, а потому этот процесс может занимать от недели до месяца. Для проектов, с общей продолжительностью 6–12месяцев, это срок обычно около2–3недель. После определения концепции проекта уже можноэкспертно оценить необходимые ресурсы для выполнения проекта и срока, за который он будет выполнен, а также его прибыльность.Точность оценки полностью зависит от опыта людей, дающих оценку, но, как правило, непревышает 50%. Срок формирования концепции особенно критичен для продуктов, разрабатываемых под заказ, так как подписание контракта, как правило, происходит по завершении этой стадии.

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

Сбор и анализ требований к программному продукту (Версия 1.03).

5

©2009 Химонин Ю. И.

 

ботку и продвижение, сравнить его ликвидность с другими проектами в портфеле.

В заключении вам надо принять решение — стоит ли заниматься разработкой продукта или нет. Необходимость принятия этого решения — еще одна причина выделять этот процесс в отдельный проект, так как решение о нецелесообразности инициации разработки продукта дается намного легче, чем решение о закрытии проекта (даже на столь ранней стадии). Желание продолжать работу над проектом любым способом, как правило, бывает сильнее здравого смысла и может привести к нежелательным последствиям.

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

Сразу за сбором требований идет их анализ. Эти два процесса могут выполняться одним человеком последовательно или параллельно группой людей (Группа, занимающаяся сбором требований, передает их аналитикам, которые сразу анализируют полученные данные).

Время, необходимое для сбора требований, может значительно отличаться для разных проектов. Например, для интеграционных проектов — этот процесс может занимать до половины человеко-часовот общей работы над проектом, для проекта автоматизации отдельных бизнес процессов только5–7%.Продолжительность анализа требований, как правило, занимает в несколько раз меньше времени, чем сбор требований и в большей степени зависит от требований к документообороту, принятому в компании.

Проектирование — процесс предшествующий разработке продукта. Для проектов, использующих итерационную/циклическую модель разработки, с самого начало должно производиться высокоуровневое проектирование системы — определение высокоуровневой архитектуры, а в начале каждой итерации должна происходить еѐ детализация.

Влияние качества работ на характеристики конечного продукта

Каждый из четырех вышеперечисленных этапов проводится на разных уровнях, а потому имеет различную степень влияния на характеристики будущего продукта. Вследствие этого невозможно линейно дать оценку, какой этап более важен, а какой менее. Но этот вопрос неизбежно встанет перед вами при планировании временных затрат.

Сбор и анализ требований к программному продукту (Версия 1.03).

6

©2009 Химонин Ю. И.

 

Таблица 1. Влияние качества работ на характеристики конечного продукта.

Этап

Характеристики продукта

Разработка концепции

Сбор требований

Анализ требований

Проектирование

системы

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

Дальнейшие перспективы развития продукта.

Качество — соответствие продукта ожиданиям заказчика.

Срок вывода на рынок и ориентировочный бюджет продукта.

Эффективность разработки.

Возможность корректировать функционал продукта в процессе реализации, с целью его удешевления или охвата новых рынков /пользователей.

Эффективность разработки — позволяет уменьшить количество вносимых изменений в уже готовый продукт.

Качество реализации.

Риски проекта (возможность их снижения).

Эффективность разработки большими и/или распределенными командами.

Втаблице выше приводится влияние каждого из этапов работы с требованиями

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

Сферы ответственностей: потребности клиентов и предложенные решения

Все требования в продукте подразделяются на две основных категории: потребности (пользователей) ирешения (функции), которые будут реализованы в продукте для удовлетворения потребностей.

Если в процессе работы над продуктом требуется изменить решение, то достаточно утверждения нового решения проектной командой. Если же изменениям подвергается потребность, то это обязательно должно быть обговорено с клиентом продукта.

Сбор и анализ требований к программному продукту (Версия 1.03).

7

©2009 Химонин Ю. И.

 

Рисунок 2. Потребности и решения в требованиях продукта.

Сбор и анализ требований к программному продукту (Версия 1.03).

8

©2009 Химонин Ю. И.

 

I. Разработка концепции продукта

На этапе определения концепции продукта выясняются причины побудившие заказчика начать разработку продукта и определяются основные требования к нему. Далее командой аналитиков создается образ решения для продукта и ограничения текущей его версии.

Ведущую роль в разработке концепции ведет бизнес аналитик (или Program/Product Manager), занимающийся этим продуктом. Для определения потребностей заказчика/рынка на весь срок разработки концепции проводится интенсивная работа

синвестором проекта. Цель — выработка единого видения будущего продукта. Если это заказной продукт, то инвестором является конечный заказчик. Если продукт предназначен для открытого рынка, то ответственными за него являются учредители компании или совет директоров. Далее на основе изученных и систематизированных требований аналитик вместе с командой экспертов создает образ будущего продукта. В заключении, аналитик

сэкспертной командой определяют границы проекта, которые должны содержать ориентировочные сроки и бюджет продукта.

Рисунок 3. Этапы разработки концепции продукта.

Результатом разработки концепции является Product Vision Document (если продукт разрабатывается под заказ) илиMarketing Requirement Document (если продукт предназначен для открытого рынка). Эти документы содержат подробную информацию о требованиях заказчика, возможностях продукта, которые должны удовлетворять эти требования, а также ориентировочные сроки его реализации и бюджет. Различием между PRD и MRD является то, что в MRD обычно более детально описаны целевые сегменты рынка и сделан детальный обзор конкурентов.

Сбор и анализ требований к программному продукту (Версия 1.03).

9

©2009 Химонин Ю. И.

 

Рисунок 4. Содержание MRD или Product Vision Document.

По окончании разработки концепции продукта делается вывод о целесообразности разработки продукта. В случае принятия положительного решения, создается устав проекта по разработке продукта. PVD/MRD является входным документом устава проекта, описывающим содержание работ по проекту.

Сбор и анализ бизнес требований

Первым и самым важным этапом в разработке продукта является сбор бизнес требований. Цель этой работы — определить основные требования бизнеса (исходные дан-

ные, истинные цели, которым должен служить продукт и проблемы, которые нужно преодолеть).

Для продуктов под заказ и продуктов для открытого рынка процесс сбора бизнес требований существенно различается.

Сбор и анализ требований к программному продукту (Версия 1.03).

10

©2009 Химонин Ю. И.

 

Leave a Comment