WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     | 1 || 3 | 4 |   ...   | 9 |

«Разработка требований к программному обеспечению Практические приемы сбора требований и управления ими при разработке программного продукта Карл И. Вигерс Дважды ...»

-- [ Страница 2 ] --

Определение источников требований. Чтобы гарантировать, что все заинтересованные лица понимают, почему то или иное требование зафиксировано в спецификации требований к ПО, и упростить после дующее прояснение требований, выявите источники всех требований, Это может быть вариант использования или другая информация от пользователей, системное требование высокого уровня, бизнес-пра вило или иной внешний фактор. Указав всех лиц, заинтересованных в каждом требовании, вы будете знать, к кому обратиться при поступле нии запроса на изменение. Источники требований устанавливают на 50 Часть I. Требования к продукту;

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

Присвоение уникальных идентификаторов всем требованиям, Выработайте соглашение о присвоении уникальных идентификаторе!;

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

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

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

Проверка требований Проверка гарантирует, что все положения требований корректны, отражают желаемые качественные характеристики и удовлетворяют потребностям клиента. Может оказаться, что требования, в специфи кации требований к ПО выглядевшие превосходно, при реализации чреваты проблемами. В большинстве случаев удается выявить дву смысленности и неопределенности, написав для требований сщ: нарии тестирования. Если требования должны стать надежной осно вой для проектирования и итоговой проверки системы посредством системного тестирования или тестирования на приемлемость для пользователей, эти проблемы необходимо устранить. Подробнее о проверке требований — в главе 15.

Глава 3. Хорошие приемы создания требований Изучение документов с требованиями. Официальная проверка до кументирования требований — один из наиболее ценных способов проверки качества ПО. Соберите небольшую команду, члены которой представляют различные направления (например, аналитик, клиент, разработчик и специалист по тестированию}, и тщательно изучите спецификацию требований к ПО, модель анализа и соответствующую информацию на предмет недостатков. Также полезно провести в ходе формулирования требований их неофициальный предварительный просмотр. И хотя реализовать это на практике непросто, данный при ем — один из самых ценных, так что начинайте внедрять проверку тре бований в вашей организации прямо сейчас.

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

Определение критериев приемлемости. Предложите пользовате лям описать, как они собираются определять соответствие продукта их потребностям и его пригодность к работе. Тесты на приемлемость следует основывать на сценариях использования (Hsia, Kung и Sell, 1997).

Управление требованиями Начальные требования неизбежно корректируются в процессе работы клиентами, менеджерами, специалистами по маркетингу, разработчи ками и другими лицами. Для эффективного управления требованиями необходим процесс, позволяющий предлагать изменения и оценивать их возможную стоимость и влияние на проект. Решения о внесении из менений принимает совет по управлению изменениями (change con trol board, ССВ)„ в который входят все заинтересованные лица. Кон троль за выполнением требований на разных стадиях разработки и тестирования системы позволяет лучше понять состояние проекта в целом.

Для эффективного управления проектом жизненно необходимы вы веренные способы управления конфигурацией. Для управления требо 52 Часть I. Требования к продукту: что, почему и кто ваниями годятся те же утилиты для контроля версий, которые вы ис пользуете для управления базой кода. Подробнее о способах управле ния требованиями — в следующих главах:

I в главе 18 — о создании базовой версии и управлении версиями требований, о контроле за состоянием всех требований;

i в главе 19 — об определении процесса управления изменениям!/, создании совета управления изменениями, оценке изменяемости требований, анализе влияния изменений требований;

1 в главе 20 — о создании матрицы связей требований;

I в главе 21 — об использовании средств управления требованиями.

Определение процесса управления изменениями. Определит:

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

Создание совета по управлению изменениями. Из представите лей заинтересованных в проекте лиц организуйте совет по управле нию изменениями, который будет получать информацию о предпола гаемых изменениях требований, оценивать ее, решать, какие измене ния принять, а какие отклонить, и определять, в какой версии продукт j будет внедрена та или иная функция.

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

Создание базовой версии и управление версиями требований.

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

Глава 3. Хорошие приемы создания требований Ведение журнала изменений требований. Фиксируйте даты изме нения спецификаций требований, сами коррективы, их причины, а так же лиц, вносивших изменения. Автоматизировать эти задачи позволя ет утилита управления версиями или коммерческая утилита управле ния требованиями.

Контроль за состоянием всех требований. Создайте БД, включаю щую по одной записи для каждого дискретного функционального тре бования. Занесите в БД ключевые атрибуты каждого требования, включая его состояние {например «предложено», «одобрено», «реали зовано» или «проверено»), чтобы в любой момент вы могли узнать ко личество требований в каждом состоянии, Оценка изменяемости требований. Еженедельно фиксируйте коли чество требований, внесенных в базовую версию, а также число пред ложенных и одобренных изменений (добавлений, модификаций и уда лений). Если требования формируются не самим клиентом, а от его лица, может оказаться, что проблема понята плохо, границы проекта определены нечетко, бизнес стремительно меняется, при сборе ин формации многие требования были упущены или внут рикорпоративные политики меняются в худшую сторону.

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

Создание матрицы связей требований. Создайте таблицу, сопос тавляющую все функциональные требования с элементами архитекту ры и кода, которые реализуют данное требование, и с тестами, прове ряющими его. Матрица связей требований позволяет также сопоста вить функциональные требования с требованиями более высоких уровней, на основе которых они созданы, и с другими родственными требованиями. Заполняйте эту таблицу входе, а не в конце работы над проектом.

Управление проектом Способы управления проектом ПО тесно связаны с работой над требо ваниями к нему. Планируйте ресурсы, графики и обязательства по 54 Часть I. Требования к продукту: что, почему и кто проекту на основании требований, которые собираетесь реализовать.

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

1 в главе 17 — о планах, связанных с проектом, о их реализации на ос нове требований;

1 в главе 18 — о контроле объема работ по созданию требований;

I в главе 23 — о документировании и управлении рисками, связанны ми с требований.

Выбор цикла разработки ПО. Вашей компании следует определит^ несколько жизненных циклов разработки для проектов различного ти па и различных степеней неопределенности требований (McCormel, 1996). Каждый менеджер проекта должен выбрать и использовать цикл, оптимальным образом подходящий для его проекта. Включите -л цикл операции по созданию требований. Если на ранних этапах рабо ты над проектом требования или границы проекта определены нечет ко, разрабатывайте продукт постепенно (небольшими этапами), начи ная с наиболее понятных требований и устойчивых элементов архи тектуры. По возможности реализуйте наборы функций, чтобы перио дически выпускать промежуточные версии продукта и как можно рань • ше предоставлять клиенту работоспособные образцы приложение (Gilb, 1988;

Cockburn, 2002).

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

Пересмотр обязательств по проекту при изменении требований.

Добавляя в проект новые требования, оцените, удается ли соблюдать обязательства, касающиеся графика и требований к качеству, при доступном объеме ресурсов. Если нет, обсудите реалии проекта ;

менеджерами и согласуйте новые, достижимые обязательства (Hum phrey, 1997;

Fisher, Ury, и Patton, 1991;

Wiegers, 2002). Если переговоры не увенчаются успехом, сообщите менеджерам и клиентам о их ре Глава 3. Хорошие приемы создания требований зультатах, чтобы нарушение планов в реализации проекта не стало для них неожиданностью.

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

Контроль объема работ по созданию требований. Фиксируйте усилия, прилагаемые вашей командой на разработку требований и управление проектом. Эти данные позволят оценить соответствие планам и эффективнее спланировать необходимые ресурсы для буду щих проектов. Также отслеживайте, как ваши действия по регламента ции требований влияют на проект в целом. Это позволит оценить отда чу от этой работы, Извлечение уроков из полученного опыта. Для этого в организации следует провести ретроспективу проектов, называемую также изуче нием законченных проектов (Robertson и Robertson, 1999;

Kerth, 2001;

Wiegers и Rothman, 2001). Ознакомление с опытом в области проблем и способов создания требований, накопленным в ходе работы над предыдущими проектами, помогает менеджерам и аналитикам требо ваний более эффективно работать в будущем.

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

56 Часть I. Требования к продукту: что, почему и кто Таблица 3-2. Реализация приемов формулирования требований Сложность DrtlJ !•* • •* ВЛИЯЙ Средняя Низкая Высокая 1 Обучите разработ Сильное 1 Определите про- 1 Определите варианты чиков основам пред цесс формулиро- использования метной области вания требований 1 Укажите атрибуты 9 Определите образ качества I Планируйте на осно вании требований и границы проекта 1 Определите приори 1 Определите классы I Пересматривайте теты требований пользователей обязательства 1 Используйте шаблон спецификации 1 Нарисуйте контекст ную диаграмму требований к ПО i Определите источники 1 Определите процесс требований управления измене ниями 1 Определите базовую 1 Создайте совет управ- версию и управляйте версиями требований ления изменениями 1 Изучите документы с требованиями 1 Распределите требо вания по подсистемам 1 Задокументируйте бизнес- правила 1 Проанализируйте 1 Обучите аналитиков Среднее 1 Ознакомьте предста осуществимость требований вителей пользова телей и менеджеров 1 Выберите ярых сторон- 1 Создайте словарь с требованиями бизнес-терминов ников продукта 1 Моделируйте требо- 1 Создайте словарь I Создайте фокус вания группы данных 1 Управляйте рисками, 1 Создайте прототипы 1 Наблюдайте за пользо связанными вателями на рабочих 1 Определите критерии с требованиями местах приемлемости 1 Используйте утилиту 1 Определите системные 1 Анализируйте влияние управления требова- события и реакцию на изменений ниями них i Выберите соответ I Создайте матрицу 1 Задайте каждому тре ствующий цикл связей требований бованию уникальный идентификатор 1 Проводите семи нары для уточнения 1 Протестируйте требо требований вания i Отслеживайте состоя ние требований 8 Извлекайте уроки из полученного опыта Глава 3. Хорошие приемы создания требований Таблица 3-2. Реализация приемов формулирования требований (продолжение) Сложность Влияние Низкая Высокая Средняя 1 Изучите отчеты 1 Используйте 1 Ведите журнал Слабое о проблемах требования изменении повторно 1 Отслеживайте объем работ по реализации J Воспользуйтесь тех нологией разверты- требований вания функций ка чества 1 Оцените изменя емость требований Не пытайтесь применять в своем следующем проекте сразу все эти приемы. Скорее, их стоит рассматривать как новые компоненты вашего инструментария для работы над требованиями. Некоторые способы.

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

Процесс создания требований Не ждите, что все действия по выявлению, анализу, спецификации и проверке требований удастся выполнить последовательно и за один проход. На практике эти действия выполняются попеременно, поэтап но и повторяются (рис. 3-1). Работая с клиентами в качестве аналити ка, вы будете задавать вопросы, выслушивать ответы и наблюдать за действиями клиентов (выявление требований). Далее вы обработаете полученную информацию, классифицируете по различным категори ям и соотнесете потребности клиентов с возможными требованиями к ПО (анализ). Затем вы оформите информацию от клиентов и вырабо танные требования в виде письменных документов и диаграмм (спе цификация), предложите представителям пользователей подтвер 58 Часть I. Требования к продукту: что, почему и кто дить, что написанный вами текст точен и полон, и попросите их испра вить возможные ошибки (проверка). Этот итерационный процесс и есть процедура создания требований.

Повторная оценка Проверка Анализ Выявление Спецификация tt_ Прояснение• Переработка Исправление и устранение недостатков Рис. 3-1. Итеративный процесс формулирования требований Из-за разнообразия проектов по разработке ПО и организационных культур единого, шаблонного подхода к созданию требований не су ществует. На рис. 3-2 показана схема создания требований, которая с разумными исправлениями подойдет для большинства проектов. Как правило, действия выполняются в основном по порядку, однако сам процесс не является строго последовательным. Первые семь дейст вий обычно однократно выполняются на ранних стадиях работы нал проектом (тем не менее команде разработчиков придется периодиче ски изменять приоритеты). Остальные необходимы для каждого оче редного выпуска или этапа работы над проектом.

Оценив доступные вам способы общения с представителями поль зователей, выберите подходящие приемы выявления требований (круглые столы, исследования, опросы и т.д.) и спланируйте время и ресурсы, необходимые для сбора информации (этап 5 на рис. 3-2).

Многие системы создаются поэтапно, и поэтому любой команде, ра ботающей над проектом, необходимо определить приоритеты вариан тов использования и других пользовательских требований (этап 7).

Расставив приоритеты, вы решите, на каком этапе следует реализо вать те или иные варианты использования. В случае новых систем ИЛУ значительных усовершенствований можно на этапе 14 определить ил1/ уточнить архитектуру, а на этапе 15 распределить функциональные требования по конкретным подсистемам. Этапы 12 и 17 — это опера ции по контролю качества, в результате которых вам, возможно, при дется вернуться, чтобы исправить ошибки, улучшить модели анализа или выявить упущенные ранее требования. Прототипы, создаваемые на этапе 13, зачастую выявляют необходимость усовершенствовать и модифицировать определенные ранее требования. Завершив для Глава 3. Хорошие приемы создания требований какой-либо части требований этап 17, можно приступать к реализации соответствующей части системы. Повторите этапы 8—17 для следую щих наборов вариантов использования, которые могут войти в более позднюю версию продукта.

10. Определите и задокументируйте L функциональные требований У.

111. Смоделируйте требования 1. Определите образ и границы Нроёт 2 Определите классы пользователей требовали 3- 13. Создайте прототипы пользователей i 14. Разработайте архитектуру 4. Определите, кто будет принимая.

решения, касающиеся требований < 15. Распределите требования по компонентам ;

1Тб7р8^аботайте варианты тестирования 6. Определите варианты использований 17. Проверьте варианты использования, функциональные требования, для вариантов использования модели анализа и прототипы Повторить для пункта №втор^дгщ1тр^^ Покорить дли пункта N Рис. 3-2. Поэтапный процесс создания требований 60 Часть I. Требования к продукту: что, почему и кто Что теперь?

i вернитесь к проблемам с требованиями, которые вы определили, выполняя зада ния раздела «Что теперь?» главы 1. Выберите описанные в этой главе приемы, ко торые помогут вам решить все эти проблемы. Или же воспользуйтесь руково дством по выявлению и устранению проблем из приложения В. Сгруппируйте приемы по их влиянию на вашу организацию (сильное, среднее и слабое). Опре делите, какие препятствия в организации или культуре способны помешать вам воспользоваться тем или иным приемом. Кто поможет вам устранить эти препят ствия?

I Оцените приемы, которые считаете наиболее ценными. Позволят ли они умень шить число некорректных требований, выявляемых на поздних стадиях работы над проектом, уменьшить объем ненужных доработок, точнее следовать графику проекта или предоставят какие-то другие преимущества?

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

Глава 3. Хорошие приемы создания требований Аналитиктребований Среди участников любого проекта по разработке ПО обязательно есть человек, явно или неявно выполняющий роль аналитика требований.

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

В этой главе я познакомлю вас с функциями аналитика требований, требованиями, которые предъявляются к его знаниям и опыту, а также расскажу, как воспитать аналитика в своей организации (Wiegers, 2000). Пример должностных обязанностей аналитика требований опубликован на: http://www.processimpact.com/goodies.shtml.

Роль аналитика требований Аналитик требований — это основное лицо, отвечающее за сбор, ана лиз, документирование и проверку требование к проекту. Это основ ной коммуникативный канал между группой клиентов и командой раз работчиков (рис. 4-1), хотя, конечно, не единственный: есть и другие, Часть I. Требования к продукту: что, почему и кто Аналитик отвечает за сбор и распространение информации о продук те, а менеджер проекта — за обмен информацией о проекте.

f \. бизнес -требования поток информации ^ I/ noi пользовательские требовании функциональные и нефункциональные требования Аналитик требований функциональные^ нефункциональные ^> требования '%—-—™-—~——— Тестирование [ Рис. 4-1. Обязанности аналитика требований: наведение коммуникативных мостов между различными группами клиентов и разработчиков проекта Аналитик требований — это одна из ролей участников проекта, а не обязательно название должности. На эту роль можно назначить одного или нескольких специалистов. Кроме того, функции аналитика могут выполнять другие члены команды параллельно со своими обязанно стями, например менеджер проекта, менеджер по продукту, профиль ный специалист (subject matter expert), разработчик и даже пользо ватель. В любом случае аналитик должен обладать всеми навыками, знаниями и личными качествами, необходимыми для эффективной ра боты.

Ловушка Не думайте, что любой талантливый разработчик или опытный пользо ватель автоматически, без обучения, чтения литературы и тренировок, станет про фессиональным аналитиком требований. Все эти роли требуют разных навыков, знаний и личных качеств, От таланта аналитика зависит успех проекта. Один из клиентов, ко торых я консультировал, пришел к выводу, что спецификации с требо ваниями, созданные опытными аналитиками, удается изучать вдвое ЕЗ Глава 4. Аналитик требований быстрее, чем созданные новичками, поскольку в первых меньше не достатков. В модели Сосото II, широко применяемой для оценки про ектов, указано, что опыт и способности аналитика требований сильно влияют на материальные и трудовые затраты, связанные с реализаци ей проекта (Boemn et al., 2000). Привлекая опытных специалистов, можно на треть снизить связанные с проектом трудозатраты по срав нению с аналогичными проектами, где заняты неопытные аналитики Способности аналитика оказывают даже большее влияние, чем его опыт: трудозатраты удается сократить вдвое.

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

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

Возможно, первое, что следует спросить: «Зачем мы начинаем этот проект?» Бизнес-требования включают бизнес-цели организации и представление о внешнем виде и функциональности системы. Можно разработать шаблон документа об образе и границах (см. главу 5} и, расспросив людей, имеющих представление о внешнем виде систе мы, получить у них необходимую информацию.

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

Выявить требования. Требования к программному продукту не лежат на виду и не ждут, когда какой-нибудь аналитик придет и соберет их, 64 Часть I. Требования к продукту: что, почему и кто Профессиональный аналитик помогает пользователям четко обрисо вать функции системы, необходимые им для достижения бизнес-це лей. (Подробнее об этом — в главах 7 и 8.) Для этого у него в арсенале припасено множество способов сбора информации:

1 интервью;

I семинары;

1 анализ документов;

1 опросы;

I посещение рабочих мест клиентов;

1 анализ бизнес-процессов;

I анализ документооборота и задач;

1 списки событий;

1 анализ конкурирующих продуктов;

1 исследование существующих систем;

I ретроспективы развития предыдущего проекта.

Обычно пользователи уделяют особое внимание функциональным требованиям к системе, поэтому на дискуссии следует обсудить каче ственные атрибуты, задачи производительности, бизнес-правил;

!!, внешние интерфейсы и ограничения. Нормально, если аналитик спо рит с пользователями, однако не стоит навязывать им свое мнении.

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

Анализировать требования. Ищите производные требования, логи чески проистекающие из запросов клиентов, а также невысказанные ожидания, которые, как считают клиенты, и так будут реализованы, Сразу же проясните неясные и неубедительные слова, порождающее двусмысленность (примеры см. в главе 10). Выявите конфликтующие требования и области, требующие подробной детализации. Определи те функциональные требования с такой степенью подробности, кото рая необходима разработчикам. От проекта к проекту степень подроб ности различается. Для Web-узла, постепенно создаваемого небол, шой и дружной командой, достаточно документации с ограниченным перечнем требований. Напротив, для разработки сложной встроенной системы, которую будет строить внешний поставщик, потребуется то i ная и подробная спецификация требований к ПО.

Создавать спецификации с требованиями. В результате формули ровки требований формируется коллективный взгляд на систему. Ана литик отвечает за хорошую организацию спецификаций, в которых Э"! взгляд четко отражен. В результате применения стандартных шаблонов для вариантов использования продукта и спецификации требований к Глава 4. Аналитик требований ПО создание документации ускоряется, поскольку у аналитика перед глазами постоянно находится перечень тем, которые нужно обсудить с представителями пользователей. Подробнее об области применения — в главе 8, написании функциональных требований — в главе 10 и до кументировании качественных атрибутов ПО — в главе 12.

Моделировать требования. Аналитик должен определить, полезно ли представлять требования нетекстовыми средствами, например с помо щью разнообразных моделей графического анализа (подробнее — в главе 11), таблиц, математических уравнений, раскадровок и прототи пов (подробнее — в главе 13). Модели анализа отражают информацию на более высоком уровне абстракции, чем подробный текст. Для мак симальной прозрачности и эффективного общения рисуйте модели анализа, используя правила стандартного языка моделирования.

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

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

Возможно, вам будет полезна электронная таблица для назначения приоритетов требованиям, обсуждаемая в главе 14.

Управлять требованиями. Аналитик требований вовлечен во все этапы разработки ПО, его задача — помочь создать, обсудить и осу ществить план управления требованиями к проекту. Создав докумен тацию, аналитик управляет требованиями и проверяет, как они реали зуются в продукте. Хранение требований с помощью специальных коммерческих утилит упрощает управление ими. Подробнее о средст вах управления требованиями — в главе 21.

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

66 Часть I. Требований к продукту: что, почему и кто Навыки, необходимые аналитику Не думайте, что без достаточной подготовки, тренировок и опыта че ловек сможет стать аналитиком. Ему не только не удастся хорошо вы полнять работу, он просто разочаруется в ней. Аналитик должен уметь применять разные средства сбора информации и представлять эту информацию различными способами на нормальном и понятном язы ке. Профессионал в этой области обладает одновременно развитыми коммуникационными навыками, знанием психологии межличностного общения, техническими знаниями, знаниями предметной области бизнеса и личными качествами, подходящими для этой работы (Ferdinand!, 2002). Основные факторы успеха — терпение и искреннее желание работать с людьми. Не менее важны и навыки, описанные далее.

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

Умение опрашивать и задавать вопросы. Большая часть информа ции о требованиях извлекается в ходе беседе людьми, и поэтому ана литик должен уметь общаться с разными людьми и группами — тольки так ему удастся выявить их потребности. Возможно, работать со стар шими менеджерами или чрезмерно самоуверенными или агрессивны ми людьми будет трудно. Для выяснения существенных требовании пользователей необходимо задавать правильные вопросы. Например пользователи обычно делают акцент на ожидаемом поведении систе мы. Тем не менее значительная часть кода будет обрабатывать исклю чения, поэтому вам следует определить возможные условия ошибок и реакцию системы на них. По мере приобретения опыта вы научитеС) задавать вопросы, которые раскрывают и проясняют неопределенно сти, расхождения во мнениях, предположения и невысказанные ожи дания (Cause и Weinberg, 1989).

Навыки анализа. Эффективный аналитик способен думать на несколь ких уровнях абстракции. Иногда требуется перейти от сведений высше го порядка к подробностям. В некоторых случаях на основе потребности одного из пользователей сформулировать набор требований, которые Глава 4. Аналитик требований удовлетворят большинство пользователей данного класса. Критически оценивайте информацию, полученную на основе разных источников, чтобы урегулировать конфликты, отделить мимолетные желания поль зователей от их реальных потребностей и отличать варианты решений от требований, Навыки создания комфортных условий общения. Умение органи зовать дружескую атмосферу на семинарах для уточнения требований — один из необходимых навыков аналитика (Gottesdiener, 2002). Нейтральный наблюдатель, имеющий опыт опроса, наблюде ния и создания комфортных условий общения, создаст доверитель ные отношения в группе и уменьшит напряженность в отношениях ме жду бизнесменами и ИТ-сотрудниками. В главе 7 даны некоторые ре комендации по организации семинаров.

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

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

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

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

Организационные навыки. Аналитик имеет дело с большим объе мом беспорядочной информации, собранной на первом этапе. Чтобы справиться с данными и выстроить согласованное целое, вам потре буются исключительные организационные навыки, а также терпение и упорство для вычленения основных идей из хаоса.

Навыки моделирования. Аналитик должен уметь работать с разно образными средствами, начиная с древних блок-схем и структуриро ванных моделей анализа (диаграммы потоков информации, диаграм 68 Часть I. Требования к продукту: что, почему и кто мы «сущность —связь» и т.д.) и заканчивая современным языком UML (Unified Modeling Language, унифицированный язык моделирования), Некоторые из этих средств полезны при общении с пользователями, другие — с разработчиками. Аналитику следует объяснить другим уча стникам проекта ценность использования этих методов и то, как рабо тать с их данными. В главе 11 дан обзор некоторых типов моделей ана лиэа.

Навыки межличностного общения. Аналитик должен уметь органи зовать людей с разными интересами для совместной работы, и уве ренно чувствовать себя в разговорах с сотрудниками, занимающими разные должности в организации. Подумайте, как сложно иметь дело с сотрудниками из виртуальных групп, различающихся по географиче скому, временному, культурному или языковому признаку. Опытным аналитикам зачастую приходится наставлять своих коллег-новичков и объяснять клиентам суть процессов создания требований и разработ киПО.

Творческий подход. Аналитик — не просто клерк, записывающий вс(!

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

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

Аналитик контролирует требования и управляет проектом на протя жении всего цикла его разработки. Аналитик, знающий тонкости управления проектом и рисками, а также понимающий методы обес' печения качества продукции, не допустит провала проекта из-за про блем, возникающих на этапе формулирования требований. В области коммерческой разработки ПО аналитику полезно знать концепции управления продуктом и основы позиционирования и разработки кор поративного ПО.

Глава 4. Аналитик требований G' Становление аналитика Знание предметной области — ценное качество для эффективного аналитика. Аналитику, разбирающемуся в бизнесе, легче общаться с;

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

Великих аналитиков взращивают, а не обучают. Для работы аналити ком требуется множество личностных черт, а не знаний каких-либо технологий. Стандартного обучающего курса или описания обязанно стей такого специалиста не существует. В аналитики приходят из раз ных профессий, и, скорее всего, у всех новичков есть пробелы в зна ниях и навыках. Тому, кто собирается заниматься этим делом, следует определить, какие именно из обсуждаемых в этой главе требований относятся к нему, и постараться активно восполнить пробел, чтобы первоклассно выполнить работу. Патриция Фердинанди (Patricia Ferdi nandi) (2002) описывает требования к профессиональному уровню на чинающего, опытного и ведущего аналитика требований в разных об ластях: практический опыт, разработка, управление проектами, сред ства и способы, качество и личностные характеристики. Аналитику новичку пригодятся советы и наставления опытных коллег, выражен ные, скажем, в форме обучения. Давайте посмотрим, как люди с раз ным профессиональным опытом становятся аналитиками.

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

К сожалению, бывшие пользователи зачастую имеют весьма по верхностные знания о разработке ПО и взаимодействии с технически ми специалистами. Если они не знакомы с методами моделирования анализа, то по привычке выражают всю информацию в текстовой фор ме. Пользователям, ставшим аналитиками требований, следует по больше выяснить о технической стороне разработки ПО, чтобы пред ставлять информацию в наиболее подходящей для разных аудиторий форме, 70 Часть I. Требования к продукту: что, почему и кто Некоторые бывшие пользователи считают, что они лучше, чем те, кто работает с ПО теперь, понимают, что на самом деле необходимо, и поэтому не обращаются к этим сотрудниками или неуважительно от носятся к информации, предоставленной теми, кто будет работать о новой системой. Недавние пользователи могут запутаться в текущих особенностях работы, да так, что не увидят возможности усовершен' ствовать бизнес-процессы посредством новой информационной сие темы. Еще одна опасность: бывший пользователь может запросто ду мать о требованиях только с точки зрения пользовательского интер фейса. Концентрация внимания на вариантах решения с самого начала создает ненужные ограничения архитектуры и зачастую не по зволяет устранить реальную проблему.

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

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

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

разработчику, отличаются от тех, что необходимы аналитику. Шаблон ный «компьютерщик» — не самый социально приятный из людей. Мале кто из разработчиков терпелив с пользователями, считая их необходи мым злом, с которым нужно разобраться как можно быстрее, чтобы скорее вернуться к реальной работе — программированию. Конечно многие разработчики осознают важность процесса создания требова ний и высказывают желание работать аналитиками, когда потребуется, Глава 4. Аналитик требований Те, кому нравится общаться с пользователями — хорошие кандидаты для специализации в области анализа требований.

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

Профильный специалист Ralph Young (2001) рекомендует, чтобы аналитик требований был экс пертом в предметной области или профильным специалистом, а не обычным пользователем: «Спецификация требований к ПО может оп ределить,... насколько разумны требования, как они расширяют суще ствующую систему, как следует проектировать предполагаемую архи тектуру и какое влияние они окажут на пользователей». Некоторые ор ганизации-разработчики ПО нанимают опытных пользователей их продуктов, обладающих большим опытом в предметной области, в ка честве аналитиков или представителей пользователей.

Аналитик требований, будучи экспертом в предметной области, за частую определяет требования к системе, которые соответствуют его личным предпочтениям, а не обоснованным потребностям различных классов пользователей. Иногда профильные специалисты увлекаются созданием универсальной, всеобъемлющей системы, когда на самом деле большую часть потребностей пользователей удовлетворит менее сложное решение. Зачастую лучше, чтобы аналитик требований из ко манды разработчиков взаимодействовал с профильным специали стом, который кроме того выбран в качестве ключевого представителя пользователей (сторонника продукта). Подробнее о роли сторонников продукта в разработке пректа — в главе 6.

Создание атмосферы тесного сотрудничества Иногда в проектах по разработке ПО возникают напряженные отноше ния между аналитиками, разработчиками, пользователями, менедже рами и специалистами по маркетингу. Стороны не всегда доверяют мотивации других участников и не ценят потребности и ограничения других. Однако на самом деле у разработчиков и потребителей про Часть I. Требования к продукту: что, почему и кто граммного продукта общая цель. При создании корпоративных инфор мационных систем все стороны работают на одну компанию и все они получают выгоду от улучшения результатов ее работы. В случае успеха коммерческого продукта налицо счастливые клиенты, получивший прибыль производитель и удовлетворенный разработчик. Аналитик требований — основное лицо, отвечающее за обеспечение тесного доброжелательного сотрудничества с представителями пользователем и прочими сторонами, заинтересованными в проекте. Эффективный аналитик принимает во внимание трудности, с которыми сталкиваются представители бизнеса и технических служб, и постоянно демонстри рует коллегам свое уважение. Аналитик добивается от участников про екта согласования требований, в результате чего выигрывают все:

1 клиенты довольны продуктом;

1 организация-разработчик получает прибыль;

1 разработчики гордятся работой, выполненной в ходе сложного про екта.

Что теперь?

I Если вы - аналитик требований, сравните свои знания и навыки с описанными в Этой главе. Если вы выявили какие-либо пробелы, выберите две темы и прора ботайте их, читая, практикуясь, работая с наставником или посещая специализи рованные курсы.

I Выберите из этой книги один новый способ создания требований, о котором вы знаете недостаточно, и начните применять его со следующей недели - в бук вальном смысле! Выберите два или три дополнительных способа и начните ис пользовать их через месяц. Другие оставьте на потом, чтобы изучить и приме нять их через пять-шесть месяцев. Определите, когда вы хотели бы применять каждый из новых способов, преимущества, которые, как вы считаете, он даст вам, а также какая помощь или дополнительная информация может потребовать ся. Подумайте, чье сотрудничество понадобится вам, чтобы начать использовать новые способы. Выявите препятствия, которые могут помешать применять кон фетный способ, и подумайте, кто в силах помочь вам преодолеть их.

Глава 4. Аналитик требований II Определение образа и границ проекта Когда моя коллега Карен ввела в компании, где она работала, практику экспертизы документации требований, она обратила внимание, что многие проблемы, которые выявили проверяющие, касались объема проекта. Часто у экспертов было разное представление о предпола гаемых границах и целях проекта. В результате им трудно было дого вориться о том, какое функциональное требование относится к специ фикации требований.

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

Проект, в котором нет четко определенного и согласованного на правления, можно смело назвать кандидатом на провал. Участники проекта могут, сами того не осознавая, решать прямо противополож ные задачи, если у них у них разные бизнес-цели и приоритеты. Лица, заинтересованные в проекте, никогда не смогут договориться о соста ве требований, если они не выработали общего понимания бизнес-це лей. Четкое представление образа и границ проекта особенно важно при разработке сложного, распределенного ПО, когда географическое разделение участников замедляет ежедневное взаимодействие, упро щающее коллективную работу.

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

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

Определение образа продукта вплоть до бизнес-требований Образ продукта (product vision) выстраивает работу всех заинтересо ванных лиц в одном направлении. Он описывает, что продукт пред ставляет собой сейчас и каким он станет впоследствии. Границы про екта (project scope) показывают, к какой области конечного долгосро - ного образа продукта будет направлен текущий проект. В положении о границах определена черта между тем, что входит в проект и тем, что остается вовне. То есть указанные рамки также определяют ограниче ния проекта. Более детально эти сведения изложены в базовой версии требований, которую разрабатывает команда для данного проекта.

Говоря об образе, мы подразумеваем весь продукт. Он будет изме няться относительно медленно при определении со временем страте гии продукта или развитии бизнес-целей. Границы же относятся к оп ределенному проекту или его итерации, в которых реализуется чуть больше возможностей продукта, как показан на рис. 5-1. Границы бо лее динамичны, чем образ, так как менеджер проекта изменяет содер жимое каждой версии в соответствии с графиком, бюджетом, ресурса ми и ограничениями качества. Задача планирования заключается в управлении границами определенного проекта (разрабатываемого или расширяемого), как определенным подмножеством большого страте гического образа. Положение об объеме для каждого проекта или ках дой итерации или расширения продукта, вероятнее всего будет вклю чено в спецификацию требований к этому ПО, а не в отдельный доку мент об образе и границах. Для крупных новых проектов необходимо создавать и полный документ об образе и границах проекта, и специ фикацию требований. О шаблоне спецификации требований рассказа но в главе 10.

Например, федеральное правительственное агентство получило дол госрочный заказ, рассчитанный на пять лет, на разработку массивней Глаеа 5. Определение образа и границ проекта информационной системы. Команда определила бизнес-цели и образ системы еще на начальной стадии и за несколько следующих лет никак не меняла их. Было запланировано 15 отдельных выпусков конечной системы. Каждый выпуск создавался как отдельный проект с описани ем его собственных границ. Последние должны были соответствовать общему образу продукта и перекликаться с положениями о границах других проектов — это позволяло гарантировать, что ничего не будет пропущено.

Нереальные требования Менеджер компании, специализирующейся на разработке ПО, сильно переживаю щая из-за почти катастрофического расползания границ проекта, с сожалением ска зала мне;

«Мы создали слишком нереальные требования*. Она имела в виду, что любая идея, возникающая у члена команды, включалась в документ. У команды был четкий образ проекта, однако они не управляли границами, планируя несколько вер сий и откладывая определенные функции до более поздней (возможно, неопреде ленно поздней) версии. Наконец, после четырех лет разработки, черезмерно пере груженный продукт был выпущен. Толковое управление рамками проекта и посте пенность в разработке позволили бы им поставить качественный продукт намного раньше.

Версия 1.0 Версия 1. оговоренного объема оговоренного объема Рис. 5-1. Образ продукта содержит запланированные версии оговоренного объема Конфликтующие бизнес-требования Бизнес-требования, собранные из разных источников, могут конфлик товать. Представьте себе компьютер со встроенным ПО, подсоеди ненный к Интернету и предназначенный для покупателей магазина (киоск). При его разработке следует удовлетворить следующие биз нес-цели:

1 получение дохода путем сдачи в аренду или продажи киоска про давцу;

I продажу потребительских товаров покупателям;

Часть II. Разработка требований к ПО ! привлечение внимания покупателей к торговой марке;

1 предоставление широкого ассортимента товаров.

Бизнес-интересы розничного продавца таковы:

I максимальное увеличение дохода с доступного пространства;

I привлечение большего количества покупателей в магазин;

i увеличение объема продаж и уровня прибыли, если киоск замени-' операции, выполняемые вручную.

Разработчику иногда хочется сделать киоск высокотехнологичным и увлекательным для покупателей. Продавцу же нужна простая и полно стью готовая к эксплуатации система, а для покупателя важны удобст во и функциональные возможности. Напряженность между этими тре мя сторонами с их различными целями, ограничениями и бюджетом может привести к несогласованности бизнес-требований. Тот, кто фи нансирует проект, должен разрешить эти конфликты до того, как ана литик детализирует системные требования и требования к ПО киоска Основное внимание следует уделять фундаментальным задачам, суля щим наибольшую коммерческую выгоду («увеличатся продажи, буду!

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

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

Бизнес-требования и варианты использования Бизнес-требования определяют и набор бизнес-задач (вариантов ис пользования), которые позволяет выполнять приложение (ширина приложения], и глубину уровня, до которого реализуется каждый вари ант использования. Если бизнес-требования помогают вам опреде лить, что некий вариант использования выходит за границы проекта, Глава 5. Определение образа и границ проекта 4— значит, что вы принимаете решение о ширине проекта. Глубина про стирается от простой реализации до полной автоматизации с множе ством вспомогательных средств. Бизнес-требования позволяяют по нять, для каких вариантов использования необходима надежная и пол ная функциональность, а для каких достаточно поверхностной реализации, по крайней мере на первое время.

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

Бизнес-требования также существенно влияют на способ реализа ции требований. Например, одна из причин создания Chemical Track ing System — уменьшить закупку новых бутылей с химикатами, исполь зуя те химикаты, которые уже есть на складе или в другой лаборато рии. Опросы и наблюдения должны помочь выяснить, почему в данный момент это не делается. В свою очередь, на основе этой информации создаются функциональные требования и элементы дизайна, которые облегчают отслеживание химикатов в каждой лаборатории и помогают сотруднику, запрашивающему химикат, отыскивать искомое как можно ближе, Документ об образе и границах проекта Документ об образе и границах {vision and scope document) собирает бизнес-требования в единый документ, который подготавливает осно ву для последующей разработки продукта. В некоторых организациях с этой же целью создают устав проекта или положение о бизнес-зада чах. Очень полезен и документ основных рыночных требований {mar ket requirements document, MRD). В нем более детально, чем в доку менте об образе и границах, рассматриваются целевые сегменты рын ка и проблемы, касающиеся коммерческого успеха продукта.

Владельцем документа об образе и границах считается тот, кто фи нансирует проект или несет аналогичную ответственность. Аналитик требований может вместе с этим человеком разрабатывать документ об образе и границах проекта. Информация, касающаяся бизнес-тре Часть II. Разработка требований к ПО бований, должны поступать от лиц, четко понимающих, почему они взялись за проект. Это может быть клиент или топ-менеджер организа ции, разрабатывающей продукт, тот, кого привлекают технические но винки, менеджер по продукту, эксперт в данной предметной области или специалисты отдела маркетинга.

На рис. 5-2 показан шаблон документа об образе и границах пректа.

Шаблоны стандартизируют структуру документов, создаваемых про ектными командами каждой организации. Как и в случае с любым шаб лоном, измените его в соответствии со спецификой вашего проекта.

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

1. Бизнес-требования 1.1. Исходные данные 1.2. Возможности бизнеса 1.3. Бизнес-цели и критерии успеха 1.4. Потребности клиента или рынка 1.5. Бизнес-риски 2. Образ решения 2.1. Положение об образе проекта 2.2. Основные функции 2.3. Предположения и зависимости 3. Масштабы и ограничения проекта 3.1. Объем первоначально запланированной версии 3.2. Объем последующих версий 3.3. Ограничения и исключения 4. Бизнес-контекст 4.1. Профили заинтересованных лиц 4.2. Приоритеты проекта 4.3. Операционная среда Рис. 5-2. Шаблон документа об образе и границах проекта Бизнес-шансы. Использовать слабо защищенные документы о конку рирующем продукте.

Бизнес-цель. Получить признание в качестве наиболее защищенного продукта на рынке, используя обзоры в отраслевых журналах и опросы потребителей, и захватить 80% рынка.

Пожелания потребителей. Более защищенный продукт, Функция. Новый надежный механизм защиты, Глава 5. Определение образа и границ проекта 1. Бизнес-требования Проекты выпускаются с полным убеждением, что новый продукт для кого-то сделает мир лучше. Бизнес-требования описывают основные преимущества, которые новая система даст ее заказчикам, покупате лям и пользователям. Для различных типов продуктов — информаци онных систем, коммерческих пакетов ПО и систем контроля, работаю щих в режиме реального времени, — выделяются различные преиму щества.

1.1 Исходные данные Суммирует обоснование и содержание нового продукта. Здесь поме щают общее описание предыстории или ситуации, в результате кото рых было принято решение о создании продукта.

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

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

1.3 Бизнес-цели и критерии успеха Суммирует важные преимущества бизнеса, предоставляемые продук том, в количественном и измеряемом виде. В табл. 5-1 приведены при меры и финансовых и нефинансовых целей (Wiegers, 2002с). Если по добная информация приведена где-то еще, например в документе о бизнес-задачах, сошлитесь на этот документ, а не копируйте информа цию. Определите, как заинтересованные лица будут определять и из мерять успех проекта (Wiegers, 2002с). Установите факторы, которые максимально влияют на успех проекта — и те, которые организация мо жет контролировать, и те, которые находятся вне сферы ее влияния, Определите меру для оценки того, были ли достигнуты бизнес-цели.

Часть II. Разработка требований к ПО Таблица 5-1. Примеры финансовых и нефинансовых бизнес-целей Финансовые Нефинансовые Освоить Х% рынка за Y месяцев Достигнуть показателя удовлетворения покупателей, равного по крайней мере X, Увеличить сектор рынка в стране X на Y% в течение Y месяцев со времени выпуска за Z месяцев товара Достигнуть объема продаж X единиц или Увеличить производительность обработки дохода, равного $Y, за Z месяцев транзакций на Х% и снизить уровень оши Получить Х% прибыли или дохода по ин- бок данных до величины не более Y% вестициям в течение Y месяцев Достигнуть определенного времени Достигнуть положительного баланса по для достижения доминирующего поло этому продукту в течение Y месяцев жения на рынке Сэкономить $Х в год, котрые в настоящий Разработать надежную платформу момент расходуются на обслуживание для семьи связанных продуктов системы Разработать специальную базовую Уменьшить затраты на поддержку на Х% технологическую основу для организации за Z месяцев Получить X положительных отзывов в от Получить не более X звонков в службу об- раслевых журналов к определенной дате служивания по каждой единице товара и Y Добиться признания продукта лучшим звонков по гарантии каждой единицы то по надежности в опубликованных обзорах вара в течение Z месяцев после выпуска продуктов к определенной дате товара Соответствовать определенным федераль Увеличить валовую прибыль для сущест ным и государственным постановлениям вующего бизнеса с Хдо Y% Уменьшить время оборота до X часов на Y% звонков покупателей в службу поддержки 1.4 Потребности клиентов или рынка Опишите потребности типичных покупателей или целевых сегментои рынка, включая потребности, которые не удовлетворяют настоящие продукты или информационные системы. Представьте проблемы, с ко торыми в настоящее время сталкиваются клиенты и которые решит но вая система, и предоставьте примеры того, как покупатели будут ис пользовать этот продукт. Определите на высоком уровне все известные важные требования к интерфейсу или производительности, но не ка сайтесь деталей дизайна или реализации.

1.5 Бизнес-риски Обобщает важнейшие бизнес-риски, связанные с разработкой — или не с разработкой — этого продукта. В категории рисков входят рыноч мая конкуренция, временные факторы, приемлемость для пользовате лей, проблемы, связанные с реализацией, и возможные негативные факторы, влияющие на бизнес. Оцените возможные потери от каждого Глава 5. Определение образа и границ проекта 8;

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

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

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

2.1 Положение об образе проекта Составьте сжатое положение об образе проекта, обобщающее долго срочные цели и назначение нового продукта. В этом документе следу ет отразить сбалансированный образ, удовлетворяющий различные заинтересованные лица. Он может быть несколько идеалистичным, но должен быть основан на существующих или предполагаемых рыноч ных факторах, архитектуре предприятия, стратегическом направлении развития корпорации или ограничениях ресурсов. Далее показан шаб лон, состоящий из ключевых слов, который прекрасно подходят для документа об образе продукта (Moore, 1991);

I для [целевая аудитория покупателей];

1 который [положение о потребностях или возможностях];

i эта (этот) [имя продукта] 1 является [категория продукта];

а который(ая) [ключевое преимущество, основная причина для по купки или использования];

1 в отличие от [основной конкурирующий продукт, текущая система или текущий бизнес-процесс];

I наш продукт [положение об основном отличии и преимуществе но вого продукта].

Вот как выглядит положение об образе для Chemical Tracking System в Contoso Pharmaceuticals, о которой говорилось в главе 2;

ключевые слова выделены полужирным:

Для ученых, которым нужно запрашивать контейнеры с химикатом, данная Chemical Tracking System является информационной систе мой, которая обеспечит единую точку доступа к складу химикатов и к поставщикам. Система будет знать местоположение каждого контей 84 Часть II. Разработка требований к ПО нерз с химикатом в компании, количество химиката в контейнерах ч полную историю перемещения и использования каждого контейнере:

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

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

2.3 Предположения и зависимости Задокументируйте все предположения, сделанные заинтересованны ми лицами, когда они обдумывали проект и создавали данный доку мент об образе и границах. Часто предположения одних лиц не разде ляют другие стороны. Если вы запишите их и просмотрите позже, TCI получите возможность обговорить основные положения проекта. Так вы избежите путаницы и ухудшения ситуации в будущем. Например спонсор Chemical Tracking System предположил, что новая система за менит существующую систему складского учета и будет взаимодейст вовать с системой закупок компании Contoso. Также задокументируйте:

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

3. Масштабы и ограничения проекта Когда химик изобретает новую химическую реакцию, которая преоб разует один тип химиката в другой, он пишет документ, в который входит раздел «Рамки и ограничения», где описывает, что получится v не получится в результате этой реакции. Точно так же для проекта по Глава 5, Определение образа и границ проекта разработке ПО следует определить его рамки и ограничения. Вам не обходимо указать, что может делать система, а что не может:

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

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

3,1 Объем первоначальной версии Обобщает основные запланированные функции, включенные в перво начальную версию продукта. Опишите характеристики качества, кото рые позволят продукту предоставлять предполагаемые выгоды раз личным классам пользователей. Если ваша задача — сосредоточиться на разработке и уложиться в график, вам следует избегать искушения включить в версию 1.0 каждую функцию, которая когда-нибудь в буду щем может понадобиться какому-то потенциальному покупателю.

Увеличение сроков и сдвиг графика— типичный исход такого ковар ного расползания объема. Сосредоточьтесь на наиболее ценных функциях, имеющих максимально приемлемую стоимость, годных для самой широкой целевой аудитории, которые удастся создать как мож но раньше, Команда с которой мой коллега Скотт делал последний проект, решила, что пользователи должны иметь возможность запускать соб ственную службу доставки вместе с первой версии ПО. Версия 1 не обязательно должна быть быстрой, красиво оформленной или легкой в использовании, но она должна быть надежной;

это основа работы ко манды. Первая версия системы выполняет лишь базовые задачи. В бу дущие выпуски будут включены дополнительные функции, возможно сти и средства, обеспечивающие легкость и простоту использования, Часть II. Разработка требований к ПО 3.2 Объем последующих версий Если вы представляете поэтапную эволюцию продукта, укажите, каки^з функции будут отложены и желательные сроки последующих выпус ков. В последующих версиях вы сможете реализовать дополнитель ные варианты использования и функции и расширить возможности первоначальных вариантов использования и функций (Nejmeh и Tho mas, 2002). Вы также сможете повысить производительность, надеж ность и другие характеристики качества по мере совершенствования продукта. Чем дальше вы заглядываете, тем более расплывчатыми бу дут границы проекта. Вам наверняка придется передвинуть функцио нальность с одного запланированного выпуска до другого и, возмож но, добавлять незапланированные функции. Короткие циклы выпуске-з часто удобны для сбора отзывов клиентов.

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

4. Бизнес-контекст В этом разделе обобщаются некоторые бизнес-проблемы проекте, включая профили основных категорий заинтересованных лиц и при оритеты управления.

4.1 Профили заинтересованных лиц Заинтересованными в проекте лицами (stakeholders) называются от дельные лица, группы или организации, которые активно вовлечены з проект, на которых влияет результат проекта и которые сами могу" влиять на этот результат (Project Management Institute, 2000;

Smitr, 2000). Профили заинтересованных лиц описывают различные катего рии клиентов и других ключевых лиц, заинтересованных в этом проек те. Вам не нужно описывать каждую группу заинтересованных лиц, на пример юристов, которые проверют соответствие надлежащим зако нам. Сферой вашего интереса должны стать различные группы клиентов, целевые рыночные сегменты и различные классы пользова телей, входящих в эти сегменты. В профиль каждого заинтересован ного в проекте лица включается следующая информация:

Глава 5. Определение образа и границ проекта i основная ценность или преимущество, которое продукт принесет заинтересованным лицам и то, как продукт удовлетворит покупате лей. Ценность для заинтересованных лиц представляют:

I улучшенная производительность;

1 меньшее количество переделок;

i снижение себестоимости;

I ускорение бизнес-процессов;

I автоматизация задач, ранее выполнявшихся вручную;

1 возможность выполнять совершенно новые задачи;

I соответствие соответствующим стандартам и правилам;

I лучшая, по сравнению с текущими продуктами, легкость и просто та использования;

I их вероятное отношение к продукту;

I наиболее интересные функции и характеристики;

I все известные ограничения, которые должны быть соблюдены.

4.2 Приоритеты проекта Чтобы принимать эффективные решения, заинтересованные лица должны договориться о приоритетах проекта. Один из подходов к это му заключается в рассмотрении пяти измеряемых параметров проек та: функции (или объем), качество, график, затраты и кадры (Wiegers.

1996а). В любом проекте каждый из этих параметров относится к од ной из трех категорий:

I ограничение — лимитирующий фактор, в рамках которого должен оперировать менеджер проекта;

1 ключевой фактор — важный фактор успеха, ограниченно гибкий при изменениях;

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

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

Какова будет ваша реакция?

88 Часть II. Разработка требований к ПО 1 Вы отложите реализацию определенных требований до более позд ней версии?

1 Сократите запланированный цикл тестирования системы?

I Оплатите сверхурочную работу вашим специалистам или пригласи те специалистов по контракту для ускорения разработки?

В Привлечете ресурсы других проектов для разрешения ситуации?

Именно от приоритетов проекта зависят ваши действия в подобных ситуациях.

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

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

1 Пользователи расположены далеко (географически) или близко друг от друга? В скольких часовых поясах работают ваши пользова тел и?

I Когда пользователям, находящимся в различных географических местоположениях, требуется доступ к системе?

I Где данные генерируются и используются? Насколько далеко дру от друга расположены эти местоположения? Нужно ли объединят!:

данные из разных местоположений?

1 Известно ли максимальное время отклика для получения доступа \:

данным, которые могут храниться удаленно?

1 Готовы ли пользователи смириться с прерыванием работы службы или непрерывный доступ к системе крайне важен для работы их компании?

I Какие элементы управления безопасностью и требования к защите данных необходимы?

8(, Глава 5. Определение образа и границ проекта Контекстная диаграмма Уточнение рамок определяет границу и связи системы, которую мы разрабатываем, со всем остальным миром. Контекстная диаграмма (context diagram) графически иллюстрирует эту границу. Она опреде ляет оконечные элементы (terminators), расположенные вне системы, которые определенным образом взаимодействуют с ней, а также дан ные, элементы управления и материальные потоки, протекающие ме жду оконечными элементами и системой. Контекстная диаграмма представляет собой высший уровень абстракции в диаграмме потока данных, разработанной по принципам структурного анализа (Robert son и Robertson, 1994), но эта модель полезна и в случае применения какой-либо другой методики разработки. Вы можете включить контек стную диаграмму в документ об образе и границах, или определить ее как приложение к спецификации требований, или как часть модели по токов данных системы.

На рис. 5-3 показана часть контекстной диаграммы для Chemical Tracking System. Вся система изображена кружком;

на контекстной диаграмме намеренно не показывают внутренние объекты системы, процессы и данные. «Система» внутри кружка может иметь любую комбинацию ПО, оборудования или людских ресурсов. Оконечные элементы в прямоугольниках представляют классы пользователей («Химик» или «Покупатель»), отделы («Отдел охраны труда и техники безопасности»), другие системы («База данных по обучению») или ап паратные устройства («Считывающее устройство штрих-кода»).

Стрелками показаны потоки данных («запрос химиката») или физиче ские элементы («контейнер с химикатом») между системой и оконеч ными элементами.

Вы можете ожидать, что поставщики химикатов должны быть пока заны на диаграмме в виде оконечных элементов. Ведь компания на правляет заказы для выполнения поставщикам, а те отправляют кон тейнеры с химикатами и счета в Contoso Pharmaceuticals, отдел же за купок пересылает чеки продавцам. Однако эти процессы происходят вне Chemical Tracking System, как часть операций отделов закупок и приобретений. Глядя на контекстную диаграмму становится совер шенно ясно, что система не участвует напрямую в размещении зака зов у поставщиков, в получении продуктов или оплате счетов.

Часть II. Разработка требований к ПО версию каждые три месяца с помощью подхода, основанного на графике и управле нии объемом. График и качество - это естественные ограничения проекта «разра ботка по графику», причем объем представляет собой степень свободы.

Из-за расползания объема часто необходимо переделывать уже вы полненную работу, чтобы учесть изменения. Если при добавлении но вой функциональности не увеличить распределенные ресурсы или время на проект, то страдает качество. Задокументированные бизнес требования упрощают управление разумным ростом объема, когда не обходимы изменения на рынке или в бизнесе. Они также помогают расстроенному менеджеру проекта оправдаться, если ему приходится говорить «нет» — или по крайне мере «еще нет», — когда влиятельны*!

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

Что теперь?

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

Посмотрите, насколько совпадают их представления. Разрешите любые несты ковки и составьте объединенное положение об образе, согласовав его со всеми заинтересованными лицами.

1 Независимо от того, скоро ли выпуск нового проекта или вы еще в середине про цесса сборки, напишите документ об образе и границах, используя шаблон на рис. 5-2, и попросите остальных членов команды просмотреть его. Может выяс ниться, что у членов команды нет единого представления об образе или границах продукта. Решите эту проблему сейчас, не оставляйте ее в «свободном плавании»;

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

Глава 5, Определение образа и границ проекта Как отобрать пользователей для работы над проектом Если вы разделяете мое убеждение, что критический взгляд клиента на разрабатываемое ПО крайне важен для создания продукта отлич ного качества, вы с самого начала должны привлечь клиентов к работе над проектом. Качество собранных требований к ПО, а следовательно.

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

1 определите различные классы пользователей вашего продукта;

1 определите основные источники получения информации о потреб ностях клиентов;

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

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

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

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

Чтобы получить более точное представление о потребностях пользова телей, аналитик требований должен опросить клиентов, проанализи ровать информацию, внести уточнения и определить, что именно нуж Часть II. Разработка требований к ПО но пользователям для выполнения работы. На аналитика возложена вся полнота ответственности за документирование функций и свойств системы и за ознакомление с этой информацией всех заинтересован ных лиц. Это постепенный процесс, требующий времени. Если вы не желаете тратить его на выработку согласованного представления о же лаемом продукте, готовьтесь к неизбежным переделкам, срывам гра фика и недовольству клиентов.

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

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

Документы, где описан уже работающий или конкурирующий продукт. Эти документы могут также содержать корпоративные или отраслевые стандарты, которых необходимо придерживаться, а также постановления и законы, которым должен соответствовать продукт, Пригодятся и описания уже реализованных и будущих бизнес-процес сов. Опубликованные сравнительные обзоры позволяют выявить не достатки других аналогичных продуктов, на которые стоит вовремя об ратить внимание, чтобы получить конкурентное преимущество, Спецификации требований к системе. Для продукта, включающего программные и аппаратные компоненты, создается спецификация требований ксистеме, описывающая продукт в целом. Отдельные тре бования к системе в целом касаются каждой подсистемы (Nelsen, 1990). Аналитик может вычленить дополнительные, более мелкие функциональные требования из требований к конкретной подсистеме.

Отчеты об ошибках и претензии к возможностям работающей системы. Персонал внутрикорпоративной и выездной службы под держки — ценный источник информации. Они в курсе проблем, с Глава 6. Как отобрать пользователей для работы над проектом которыми сталкиваются пользователи работающей системы, и посто янно выслушивают идеи клиентов по совершенствованию ее следую щей версии.

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

Наблюдение за пользователями на рабочих местах. Наблюдая «один рабочий день из жизни пользователя», аналитик выявляет осо бенности работы действующей системы, а также потребности потен циальных пользователей будущей системы. Такое исследование по зволяет проверить информацию, собранную в ходе интервью, опреде лить темы новых опросов, выявить проблемы действующей системы и понять, какие функции новой системы необходимы для автоматизации операций (McGraw и Harbison, 1997;

Beyer и Holtzblatt, 1998). Наблю дая за работой пользователей, вы лучше и полнее поймете суть рабо чего процесса, чем если просто попросите их описать все этапы их ра боты. Излагая и обобщая данные, аналитик должен абстрагироваться от ситуации и рассматривать ее несколько «сверху;

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

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

События и реакция на них. Перечислите внешние события и соот ветствующую реакцию системы на них. Данный способ особенно хо рош для систем реального времени, которые считывают и обрабаты 96 Часть II. Разработка требований к ПО вают потоки данных, коды ошибок, управляющие сигналы и сигналы прерывания от внешних устройств.

Классы пользователей Помимо всего прочего, пользователей продукта можно подразделять по таким признакам:

I по частоте использования продукта;

I по опыту в предметной области и опыту работы с компьютерными системами;

I по требуемой им функциональности;

I по задачам, которые им приходится выполнять;

I по правам доступа к системе (например, обычный пользователь, гость или администратор).

На их основе формируются классы пользователей. Некоторых со трудников можно отнести к нескольким классам. Так, администратор иногда работает с системой, как рядовой пользователь. Конечные пользователи ПО вне системы, показанные на контекстной диаграмме в главе 5, представляют собой потенциальных кандидатов на отдель ные классы пользователей. Это часть непосредственных пользовате лей продукта из большой группы клиентов, которых можно выделить из всех заинтересованных в проекте лиц (рис. 6-1).

Непривилегированные Игнорируемые классы Привилегированные пользователей классы пользователей классы пользователей Рис. 6-1. Иерархия клиентов, пользователей и заинтересованных лиц Глава 6. Как отобрать пользователей для работы над проектом Очень заманчиво поделить пользователей на классы по их геогра фическому положению, виду бизнеса, которым занимается компания, или занимаемой должности, а не на основании того, как они взаимо действуют с системой. Например, компания — производитель банков ского ПО первоначально предполагала разделить пользователей по типам финансовых учреждений, в которых те работают: крупный ком мерческий банк, небольшой коммерческий банк, ссудо-сберегатель ная общество или кредитный союз. В действительности же таким об разом выделяются потенциальные сегменты рынка, а не различные классы пользователей. Во всех этих финансовых учреждениях у лю дей, занимающихся ссудами, формируются более или менее анало гичные функциональные требования к системе, поэтому логично выде лить их в отдельный класс пользователей, назвав его, скажем, сотруд ники, принимающие заявки. Это может быть специалист по кредитованию, вице-президент, менеджер по работе с клиентами и да же банковский кассир— при условии, что все они используют систему, чтобы помочь кому-либо подать заявку на получение займа.

Одни классы пользователей для вас важнее других. Когда вы прини маете решения о приоритетах или пытаетесь найти компромисс тре бований, выдвигаемых различными классами пользователей, мнение привилегированных классов имеет первостепенное значение. К по следним относятся группы пользователей, работа которых с продук том определяет, способствует ли он достижению заявленных бизнес целей или нет. Это не означает, что заинтересованных лиц, оплачиваю щих разработку системы (они, вполне вероятно, вообще не являются ее пользователями), или тех, кто имеет большое политическое влия ние, следует обязательно включать в привилегированные классы. Не привилегированные классы составляют те пользователи, которые по причинам безопасности, конфиденциальности или правовым причи нам не работают с продуктом (Cause и Lawrence, 1999). Остальные классы пользователей можно проигнорировать. Они получат то, что получится, то есть при разработке системы вам не надо учитывать их интересы. Мнение прочих классов пользователей при определении требований к продукту имеют примерно одинаковое значение.

У каждого класса пользователей есть свой набор требований, сфор мировавшийся в ходе выполнения задач. Кроме того, появляются раз личные нефункциональные требования, например удобство примене ния, которые влияют на проектирование пользовательского интерфей са. Новичков волнует, насколько легко научиться работать (или вспомнить принципы работы) с продуктом. Такие клиенты предпочита ют графические интерфейсы, упорядоченное представление инфор Часть II. Разработка требований к ПО мации на экране, подробные подсказки, мастеров и согласованность!;

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

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

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

В самом начале работы над проектом необходимо определить и охарактеризовать различные классы пользователей, чтобы узнать у представителей всех важных классов их требования. Один из полез ных способов определения классов называется «от расширения — к сжатию» («Expand Then Contract") (Gottesdiener, 2002). Для начала при думайте как можно больше классов пользователей: столько, сколько сможете. Не бойтесь, если их окажется несколько дюжин — позже вы объедините их и классифицируете. Важно не пропустить какой-либо класс, иначе это аукнется вам позже. Следующий этап —выявить груп пы с похожими потребностями: их можно объединить в один класс или рассматривать как несколько подклассов одного крупного класса пользователей. Постарайтесь, чтобы список отдельных классов не превышал пятнадцати.

Одна компания, разрабатывавшая ПО для примерно 65 корпоратив ных клиентов, рассматривала каждого из них как отдельного пользовате ля со своими потребностями. Классификация клиентов по шести клас сам значительно упростило работу с требованиями для будущих версий продукта. Помните: не все заинтересованные в проекте лица на самом деле будут работать с продуктом, поэтому класс пользователей — это Глава 6. Как отобрать пользователей для работы над проектом лишь группа людей, которым следует предоставить возможность выра зить свое мнение о создаваемом продукте.

Таблица 6-1. Классы пользователей системы контроля химикатов Примерно 1000 химиков, работающие в шести зданиях, посред Химики (привиле ством системы запрашивают химикаты у пхтавщиков и со склада.

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

Они размещают и отслеживают выполнение заказов поставщиками.

Они не очень-то разбираются в химии, главное, что им нужно, чтобы поиск в каталогах был максимально простым. Специалистам отдела закупок не пригодятся возможности отслеживания контейнеров, предоставляемые системой. Каждый из них обращается к системе примерно 20 раз в день Склад химикатов Персонал склада химикатов - это шесть техников и один контро лер, управляющий запасом из более чем 500 000 химических контейнеров. Они обрабатывают запросы от химиков на поставку контейнеров с трех складов, запросы поставщикам на новые хими каты и контролируют поступление контейнеров на склады и их от грузку. Сотрудникам склада необходима только функция отчета о складских запасах. Из-за большого объема транзакций эта функ ция должны быть эффективной и автоматизированной Отдел охраны труда Специалисты отдела охраны труда и техники безопасности с помощью системы генерируют ежеквартальные отчеты в соответ и техники безопас ствии с местным и федеральным постановлениям об использова ности (привилеги нии и утилизации химических веществ. Скорее всего менеджеру рованный класс) этого отдела придется несколько раз в год запрашивать новую форму отчетов, которая зависит от последних правительственных постановлений. Эти запросы об изменениях имеют высочайший приоритет и должны быть реализованы в самые короткие сроки Задокументируйте классы пользователей и их отличительные чер ты, меру ответственности и физическое расположение в специфика ции требований к ПО. Менеджер проекта по разработке системы кон 100 Часть II. Разработка требований к ПО троля химикатов, о которой шла речь в предыдущих главах, выявил следующие классы пользователей и их характеристики (табл. 6-1), Включите в спецификацию требований к ПО всю существенную ин формацию о каждом классе пользователей, например относительный или абсолютный размер и привилегированность класса. Это поможет команде разработчиков определить, какие запросы об изменениях наиболее важны, и в дальнейшем оценить ценность изменений. При мерная оценка объема и типа системных транзакций позволит специа листу по тестированию разработать алгоритм использования системы и в последующем планировать действия по проверке системы, Чтобы было легче внедрить идею с классами пользователей в жизнь, стоит описать типичного представителя каждого класса (Cooper, 1999), например, вот так:

Фред, 41 год, работает химиком в Contoso Pharmaceuticals уже 14 лет, с тех пор как получил степень кандидата наук. Нетерпелив с компьютерами. Обычно Фред одно временно работает над двумя проектами в смежных областях химии. В его лабора тории хранится около 400 контейнеров и баллонов с химикатами. Ежедневно ему требуется в среднем 4 новых химиката со склада. Два из них - промышленные хи микаты из имеющихся на складе, один необходимо заказать и еще один придется взять из химических образцов компании. Иногда Фреду требуются опасные химика ты, для работы с которыми необходима специальная подготовки. Приобретая какой либо химикат впервые, Фред хочет, чтобы ему по электронной почте автоматически поступали соответствующие материалы по технике безопасности. Ежегодно Фред создает около 10 новых химикатов, которые отправляет на склад. Он хочет получать по электронной почте автоматически сгенерированный отчет о заказанных им в прошлом месяце химикатах;

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

Изучая требования химиков, рассматривайте Фреда как архетип данного класса пользователей и задайте себе вопрос: «Что Фреду нуж нее всего?» Представители пользователей При разработке каждого типа проекта, включая корпоративные информационные системы, коммерческие приложения, комплексны*!

решения, интегрированные системы, встроенные системы, Интернет приложения и ПО, конструируемые на заказ, необходимо привлечь с работе представителей пользователей, выражающих мнение большей части клиентов. Позаботьтесь, чтобы они участвовали во всех этапах, а Глава 6. Как отобрать пользователей для работы над проектом не только в одном из начальных —формулировании требований. Ну и, конечно, должны быть представлены все классы пользователей.

Проще всего наладить контакт с пользователями, когда вы создаете внутрикорпоративные приложения. Если вы разрабатываете коммер ческое ПО, можно расспросить тех, кто занимается бета-тестировани ем продукта или «обкаткой» сайта, чтобы выяснить у них требования на начальных этапах работы (подробнее — в разделе «Сторонники про дукта, приглашенные со стороны» далее в этой главе). Иногда полезно создать фокус-группы из пользователей для анализа ваших продуктов или ПО конкурирующих компаний.

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

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

На рис. 6-2 показаны некоторые типичные пути распространения информации то есть, как голос пользователя, то есть как достигает ушей разработчика. Как отмечалось в одном исследовании, в наиболее успешных проектах всегда больше каналов общения вообще и тех, что напрямую связывают разработчика и клиента, чем в менее успешных проектах (Keil и Carmel, 1995). Лучше всего, когда разработчики имею~ возможность сами пообщаться с нужными пользователями;

то есть вы полняют роль аналитиков. Как и в детской игре «Испорченный теле фон», дополнительные промежуточные звенья увеличивают вероят ность непонимания. Например, требования, озвученные менеджером конечных пользователей, скорее всего, не совсем точно передают ре альные потребности этих пользователей.

Тем не менее некоторые из этих промежуточных звеньев полезны, например, когда опытный аналитик требований работает с пользова телями или другими участниками, собирая, оценивая, уточняя и орга низуя их информацию. Оцените возможные риски, используя в качест ве представителей реального мнения клиента персонал отдела марке 102 Часть II. Разработка требований к ПО тинга, менеджеров продукта, профильных специалистов или каких либо других лица. Несмотря на препятствия и затраты, связанные с по иском и выбором представителей пользователей, ваш продукт и кли енты пострадают, если вы пренебрежете общением с людьми, способ ными предоставить наиболее точную информацию.

Рис. 6-2, Некоторые возможные пути распространения информации от пользователей к разработчикам Сторонники продукта Много лет назад я работал в небольшой группе разработки программ ных продуктов, которая обеспечивала поддержку научных исследова ний в крупной корпорации. Во всех наших проектах принимали участие несколько наиболее активных представителей пользователей, кото рые помогали формулировать требования. Мы называли их сторонни ками продукта (product champion) (или приверженцами проекта, хотя этот термин относится скорее к тем, кто управляет финансовой сторо ной проекта) (Wiegers, 1996a). Привлечение искренне заинтересован ных в продукте пользователей — это эффективный способ структури ровать партнерство клиентов и разработчиков.

Глава 6. Как отобрать пользователей для работы над проектом Ловушка Опасайтесь менеджеров и разработчиков, считающих, что они и без общения с пользователями уже все знают о потребностях последних.

Каждый сторонник продукта -- это основной посредник между членами отдельного класса пользователей и аналитиком требований.

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

хотя документацию со ставляет все-таки аналитик.

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

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

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

Наилучшие результаты отмечены, если каждый сторонник продукта обладает всеми полномочиями для принятия необходимых решений от имени класса пользователей, который он представляет. Если решения сторонника продукта регулярно отвергаются менеджерами или груп пой разработчиков, он попусту тратит свое время и добрую волю. Тем Часть II. Разработка требований к ПО не менее горячим сторонникам продукта следует помнить, что они — не единственные клиенты. Проблемы возникают, если тот, кто играет та кую важную роль посредника, общается с коллегами не должным обра зом и выражает только собственные пожелания и идеи.

Сторонники продукта, приглашенные со стороны При разработке коммерческого ПО иногда трудно найти сторонников продукта вне компании. Если у вас налажены тесные деловые отноше ния с какими-либо крупными корпоративными клиентами, они могут благосклонно отнестись к возможности поучаствовать в формирова нии требований. Сторонников продукта, приглашенных со стороны можно заинтересовать экономически, например предложить им скид ку на продукт или оплатить их работу над требованиями. Тем не менее здесь существует некоторая опасность: вам придется научиться слу шать не только ярых приверженцев, чтобы не упустить мнения других клиентов. При наличии разнородной клиентской базы сначала нужно определить основные требования, общие для всех клиентов, затем до полнительные требования, важные для отдельных клиентов, сегмен тов рынка или классов пользователей, В некоторых случаях компании — разработчики коммерческого ПО полагаются на собственных профильных специалистов или внешних консультантов, подменяющих реальных пользователей, о которых мо жет быть ничего не известно или которых трудно привлечь к работе над проектом. Другой вариант — нанять подходящего сторонника продук та с соответствующим опытом. Одна компания, создававшая систему с центральным сервером и клиентскими приложениями для точек роз ничной торговли, пригласила в качестве сторонников продукта на пол ный рабочий день трех менеджеров магазина. Вот еще один пример:

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

штатный сотрудник, имеющий врачебный опыт, поможет компании разрабатывать ПО, которое придется по душе другим докторам.

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

Если сторонник продукта — бывший пользователь или увлеченно играет роль пользователя, таковым не являясь, опасайтесь, что его восприятие проблем и потребности реальных пользователей могут различаться. Некоторые предметные области меняются очень быстро, Глава 6. Как отобрать пользователей для работы над проектом 10! другие относительно стабильны. Медицина развивается очень быстро, тогда как многие корпоративные бизнес-процессы остаются неизмен ными в течение лет. Основной вопрос в том, сможет ли сторонник про дукта, независимо от его опыта и настоящей должности, точно отра жать потребности реальных пользователей, Чего следует ожидать от сторонника продукта Чтобы сотрудничество со сторонниками продукта оказалось успеш ным, задокументируйте, что именно, по-вашему, они должны делать.

Это поможет вам полнее выразить ваши ожидания от участия в проек те конкретного человека. В табл. 6-2 перечислены некоторые обязан ности сторонника продукта. Не каждый станет выполнять их все;

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

Таблица 6-2. Возможные обязанности сторонника продукта Категория Действия I Уточнение рамок и ограничение возможностей продукта Планирование I Определение интерфейсов для работы с другими системами I Оценка влияния новой системы на бизнес-операции I Разработка путей перехода со старых приложений на новые i Сбор требований от других пользователей Требования I Разработка сценариев и вариантов использования продукта 1 Разрешение конфликтов между высказанными требованиями 1 Определение приоритетов выполнения 1 Определение атрибутов качества и производительности I Оценка прототипов пользовательского интерфейса I Изучение документов с требованиями Проверка и подтверждение I Определение критериев приемлемости продукта для пользователей 1 Разработка вариантов тестирования на основе сценариев использования I Создание наборов тестовых данных 1 Бета-тестирование I Написание фрагментов руководств пользователя Помощь пользователям и справочных систем I Подготовка материалов для учебных пособий I Демонстрация продукта коллегам 106 Часть II. Разработка требований к ПО Таблица 6-2. Возможные обязанности сторонника продукта (продолжение) Категория Действия 1 Оценка недостатков и определение порядка их устранения Управление изме | Оценка предложений об усовершенствовании системы нениями и определение порядка их реализации i Оценка того, как предполагаемые изменения требований повлияют на пользователей и на бизнес-процессы I Участие в принятии решений о внесении изменений На что способны несколько сторонников продукта Один человек вряд ли сможет описать потребности всех пользовате лей приложения. Для системы контроля химикатов определено четыре основных классов пользователей, и поэтому для нее следует выбратэ четырех сторонников продукта из числа сотрудников Contoso Pharma ceuticals. На рис. 6-3 показана структура команды, которую менеджер проекта организовал из аналитиков и сторонников продукта для сбор а корректных требований из корректных источников. Сторонники нэ привлекались на полный рабочий день, каждый из них уделял проекту несколько часов в неделю. Три аналитика совместно с четырьмя сто ронниками выявляли, анализировали и документировали их требова ния (один из аналитиков работал с двумя сторонниками, поскольку классы пользователей «Отдел закупок» и «Отдел охраны труда и техни ки безопасности» невелики и выдвинули всего несколько требований i.

Один из аналитиков сводил все требования в единую спецификацию требований к ПО.

Один человек не может в полной мере представить все разнообраз ные требования крупного класса пользователей, например нескольких сотен химиков Contoso. Чтобы помочь ему, сторонник продукта от класса «Химики» собрал резервную команду из пяти химиков, рабс тающих в других подразделениях компании. Эти сотрудники представ ляют подклассы обширного класса пользователей «Химики». Такой иерархический подход позволил вовлечь в разработку требований дс полнительных пользователей и в то же время сэкономить на проведе нии множества круглых столов и дюжин интервью. Сторонник продукта от класса «Химики», Дон, всегда стремился к консенсусу, но в тех слу чаях, когда соглашение достичь не удавалось, он без колебаний прини мал необходимые решения, чтобы работа не буксовала. Необходи мость в резервной команде отпадает, если класс пользователей неве лик или сплочен настолько, что интересы группы может в полной мере представлять один человек.

Глава 6. Как отобрать пользователей для работы над проектом Сторонник продукта от класса «Химики» Сторонник продукта от класса «Отдел закупок Сторонник продуета от класса «Отдел охраны труда и техники безопасности» Сторонник продукта от класса "Отдел охраны труда и техники безопасности» Рис. 6-3. Структура команды из аналитиков и сторонников продукта для системы контроля химикатов Безголосый класс пользователей Аналитик требований в компании Humongous Insurance был очень доволен, узнав, что пользующийся авторитетом сотрудник, Ребекка, согласилась стать сторонником продукта для новой системы обработки исков. У Ребекки было много идей насчет возможностей и пользовательского интерфейса системы. Вдохновленная возможно стью работать под руководством эксперта, команда разработчиков с удовольствием реализовала ее предложения. Однако, выпустив продукт, они были шокированы ко личеством жалоб на трудности работы с системой.

Ребекка - опытный пользователь. Предложенные ею функции, обеспечивающие удобство работы с системой, хороши для таких же опытных пользователей, как и она сама, однако 90% клиентов, гораздо менее опытных, нашли, что система интуитивна непонятна и трудна для освоения. Аналитик требований вовремя не понял, что у сис темы обработки исков по крайней мере два класса пользователей. Большая группа начинающих пользователей оказалась лишенной права на участие в разработке тре бований и пользовательского интерфейса, поэтому компании Humongous пришлось потратиться на переделку проекта, а она обошлась дорого. Аналитику следовало привлечь второго сторонника продукта - выразителя интересов большого класса не опытных пользователей.

108 Часть II. Разработка требований к ПО Как «продать» идею о необходимости привлечения сторонника продукта Будьте готовы встретить сопротивление, когда вы предложите при влечь к работе над проектом сторонников продукта. «Пользователи слишком заняты». «Менеджеры хотят сами принимать решения». «Они затормозят нашу работу». «Мы не можем себе этого позволить». «Я не знаю, что могу предложить в качестве сторонника продукта». Некото рые пользователи не хотят высказывать свои требования к системе, которая, как они думают, заставит их изменить методы работы или создаст угрозу увольнения. Иногда менеджеры неохотно делегируют обычным пользователям полномочия, касающиеся требований.

Отделив бизнес-требования от требований пользователей, вы смягчите эти препятствия. Будучи реальным пользователем, сторон ник продукта принимает решения на уровне интересов пользователей в рамках, налагаемых бизнес-требованиями проекта. Финансовый ме неджер сохраняет всю полноту власти, чтобы принимать решения, ка сающиеся вида продукта, его границ, графика работы и затрат. Доку ментируя и обсуждая роль и обязанности апологета продукта, вы дае те предполагаемым кандидатам на эту роль возможность уверении отвечать на вопрос, чем же они занимаются.

Если же вы столкнетесь с сопротивлением, укажите, что недостаточ ное участие пользователей — общепризнанная основная причина про вала проектов по разработке ПО (The Standish Group, 1995). Напомните оппонентам о проблемах предыдущих проектов, вызванных недоста точным вовлечением пользователей в работу. Каждая компания хранит свои страшилки о новых системах, которые не удовлетворили потреб ности пользователей, или оказались не столь полезны, или не оправ дали ожидания. Вы не можете позволить себе переделывать системы или отказываться от них, если они не соответствуют необходимым тре бованиям, только потому, что никто не разобрался в требованиях. При влечение сторонников продукта уменьшает такой риск.

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

Глава 6. Как отобрать пользователей для работы над проектом 10!) Некоторые менеджеры изменяют решения, принятые квалифици рованным и официально назначенным сторонником продукта. Воз можно, у менеджера в последнюю минуту появилась новая безум ная идея, он из прихоти захотел изменить направление работы или думает, что знает все потребности пользователей. Зачастую резуль тат такого поведения — недовольные пользователи, срыв сроков сдачи проекта из-за того, что разработчики пытаются реализовать последние замечания менеджеров, а также расстроенные сторон ники продукта, чувствующие, что руководство им не доверяет.

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

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

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

Остерегайтесь пользователей, пытающихся выступить от имени класса, к которому они не относятся. В случае с системой контроля химикатов компании Contoso сторонник продукта от класса «Со трудники склада химикатов» настаивала, что может выразить тре бования класса пользователей «Химики». Ее было весьма трудно убедить, что это не его работа, однако аналитик не позволил ей ока зывать давление. Менеджер проекта пригласил сторонника от клас • са «Химики», и тот проделал блестящую работу по сбору, оценке и передаче требований этих специалистов.

Кто принимает решения Кто-то должен устранять конфликты между требованиями разных классов пользователей, сглаживать противоречия и решать возникаю щие вопросы относительно границ проекта. На ранних стадиях проек та необходимо определить тех, кто будет принимать решения, касаю щиеся требований. Если не ясно, кто за это отвечает, или уполномо ченные лица отказываются брать на себя такую ответственность, обязанность принимать решения по умолчанию возлагается на разра 110 Часть II. Разработка требований к ПО ботчиков. Это — неудачный выход, поскольку у разработчиков обычнс нет необходимых знаний, опыта и стратегического видения для приня тия оптимальных бизнес-решений.

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

Аналитики иногда прислушиваются к наиболее громогласному сотруд нику или мнению начальства. Это понятный, но не лучший выбор. По возможности решения должны принимать сотрудники на низшем уровне организационной иерархии, которые непосредственно зани маются выпуском продукта и знают все о нем. Прежде чем принимать ся за выработку первого решения, каждая группа должна определить соответствующее правило решения (decision rule) — согласованный метод принятия решения (Gottesdiener, 2001). Лично мне нравится со вместное принятие решений или принятие решений в ходе совещания (когда собираются идеи и мнения множества заинтересованных лиц), а не принятие решений через достижение консенсуса всех заинтере сованныхлиц. Последний вариант — идеальный, однако вы не можете постоянно тормозить работу, ожидая, пока все заинтересованные ли ца согласуют каждый вопрос.

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

1 Если отдельные пользователи не могут прийти к согласию при опре делении требований, решение принимают сторонники продукта.

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

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

1 Иногда все корпоративные клиенты одновременно требуют, чтобы архитектура проекта удовлетворяла именно их требования. В таком случае опять-таки на основе бизнес-целей проекта определите, кто из клиентов оказывает наиболее сильное влияние на успех или про вал проекта, Глава 6. Как отобрать пользователей для работы над проектом 5- i Иногда требования, высказываемые менеджером пользователей, не совпадают с интересами реальных пользователей. И хотя требо вания последних должны соответствовать бизнес-требованиям, менеджеры, которые не входят в конкретный класс пользователей, обязаны прислушаться к стороннику продукта, выражающему мне ние соответствующего класса.

1 Если представление разработчиков о создаваемом продукте не совпадает с пожеланиями клиентов, последнее слово за клиентами.

Не оправдывайте любые запросы клиента только потому, что «клиент Ловушка всегда прав». Клиент прав не всегда. Однако у него есть своя точка зрения, и коман да разработчиков должна понимать и уважать ее.

i Аналогичная ситуация возникает, если требования маркетологов или менеджеров по продукту конфликтуют с представлением разработ чиков о продукте. Мнение маркетологов, как представителей клиен та, более весомо. Однако я знаю случаи, когда они потакали клиенту в его любых желаниях, как бы невыполнимы и дороги те ни были.

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

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

112 Часть II. Разработка требований к ПО Что теперь?

I Сравните схему на рис. 6-1 с тем способом, посредством которого вы узнаете мнение клиентов. Возникают ли у вас проблемы с распространением информа ции? Определите кратчайшие и наиболее подходящие пути распространения ин формации, которые пригодятся для сбора требований в будущем.

I Определите для своего проекта различные классы пользователей. Какие них привилегированные, а какие (если таковые имеются) - нет? Кто бы мог стать хо рошим сторонником продукта для каждого из важных классов пользователей?

I Используя табл. 6-2 в качестве отправной точки, определите обязанности сто ронника продукта. Обсудите конкретные пункты с каждым предполагаемым сто ронником продукта и его менеджером.

I Определите, кто должен принимать решения по вопросам, связанным с требова ниями к проекту. Насколько эффективен процесс принятия решений, используе мый в настоящее время? Где он дает сбой? Правильно ли выбраны лица, прини мающие решения? Если нет, кто должен принимать решения? Предложите ли цам, принимающим решения, последовательность действий для достижения согласия по вопросам требований.

Глава 6. Как отобрать пользователей для работы над проектом Как услышать голос клиента «Доброе утро, Мария. Я — Фил, аналитик требований к новой информационной системе для сотрудников, которую мы соби раемся разрабатывать для вас. Спасибо, что согласились стать сторонником продукта этого проекта. Ваша информация нам очень пригодится. А теперь расскажите мне, что же вам все - таки нужно ?» «Гм, что же мне нужно, — размышляет Мария. — Не представ ляю, с чего и начать. Ну, новая система должна работать на много быстрее предыдущей. Потом, вы же знаете, как старая система зависает, если имя какого-либо сотрудника оказыва ется слишком длинным — нам приходится обращаться в служ бу поддержки, чтобы они ввели имя. В новой системе длинные имена должны обрабатываться без сбоев. Да, согласно ново му закону, нам нельзя использовать номера социального страхования в качестве идентификаторов сотрудников, и с вводом новой системы в эксплуатацию нам придется заме нить все эти данные. Новые идентификаторы предполагается сделать шестизначными числами. Также пригодилась бы функция отчета о времени, затраченном каждым сотрудников в текущем году на обучение. А еще мне хотелось бы получить возможность менять имена сотрудников, даже если их семей ное положение осталось прежним».

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

114 Часть II. Разработка требований к ПО Сердце процесса формулирования требований - - их выявление felicitation), когда потребности и ограничения высказывают лица, заин тересованные в проекте. Цель — обозначить требования пользо вателей, которые занимают средний уровень в трехступенчатой моде ли требований к ПО (подробнее об этом в главе 1, два других уровня — бизнес-требования и функциональные требования). Это задачи, кото рые пользователям необходимо выполнять средствами системы, а также представления пользователей об эффективности, удобстве и простоте работы с системой и других атрибутах качества системы.

В этой главе обсуждаются общие принципы эффективного выявления требований.

Аналитику необходима структура для систематизации массива ин формации, полученной в процессе выявления требований. Просто за давая пользователям вопрос: «Чего вы хотите?», вы получите массу не упорядоченной информации, в которой легко утонуть. Вопрос: «Чтс вам требуется делать?» — гораздо лучше. В главе 8 рассказывается как с помощью таких приемов, как варианты использования продукте или построение таблицы откликов на события, создать структуру для упорядочения пользовательских требований.

Результат этапа формулирования требований -- согласованное:

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

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

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

Глава 7. Как услышать голос клиента 3- стратегии и способы выявления требований (например, сочетание опросов, семинаров, встреч с клиентами, интервью и других прие мов с возможным использованием различных подходов для разных групп заинтересованных лиц);

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

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

Pages:     | 1 || 3 | 4 |   ...   | 9 |



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.