Академический Документы
Профессиональный Документы
Культура Документы
1
формальный процесс?
Ю.А.Назаренко
Полгода назад Вы утвердили у Заказчика Техническое задание на ПО. Свобода
творчества программиста ограничена суровыми рамками раз и навсегда утвержденного
документа. И вот продукт готов, все в строгом соответствии, но... Заказчик недоволен.
Вполне закономерный результат, ибо бизнес, как и все в этой жизни, меняется, не
взирая на то, что у вас записано в утвержденном ТЗ! Ваш приятель и коллега по цеху
проектных менеджеров, получив хороший заказ, напрочь отказывается от ТЗ, как
архаичного, попахивающего милитаризмом инструмента, и делает ставку на ум, талант
и интуицию программиста! Полгода упорного труда и... тот же результат. В чем корень
зла? Существует ли приемлемое решение навязшей в зубах проблемы?
В настоящей статье нет детального анализа и сравнительной оценки современных
методов и средств разработки требований к программному обеспечению
информационных систем. По глубокому внутреннему убеждению автора, корни многих
проблем отечественной IT-индустрии кроются не в отсутствии или неправильном
использовании соответствующих технологий, а в недостаточном внимании
руководителей организаций-разработчиков и заказчиков программного обеспечения к
вопросам проектного менеджмента вообще и управления требованиями – в частности.
1
Статья изначально опубликована в №3/2002 журнала «Корпоративные системы». Повторно публикуется с
некоторыми изменениями с согласия Главного редактора этого издания.
2
Здесь и далее по тексту статьи используется авторская интерпретация на русский язык терминов и
определений, взятых из оригинальных версий международных стандартов
Ю.Назаренко. Управление требованиями к ПО: телепатия или формальный процесс?
Стандарт Определение
такими прилагательными, как плохое, хорошее или превосходное.
ПРИМЕЧАНИЕ 2 “Присущие” характеристики (в противоположность
“назначенным”) означают реально существующие, перманентные свойства
объекта.
[2] SEI CMM version 1.1 for Качество - (1) Уровень соответствия системы, компоненты или процесса
Software специфицированным требованиям; (2) Уровень соответствия системы,
компоненты или процесса потребностям или ожиданиям заказчика или
пользователя.
[3] ISO/IEC 14598-1. Качество – полная совокупность характеристик сущности, приводящих к
Information Technology - способности этой сущности удовлетворять сформулированным,
Software Product Evaluation - предполагаемым и подразумеваемым потребностям.
Part 1:
General Overview
Как мы видим, во всех определениях, в той или иной ипостаси, так или иначе,
присутствует ключевой элемент, без которого не существует самого понятия качества, -
требования к объекту, продукту, сущности. Последнее из приведенных определений
подчеркивает недвусмысленную связь между качеством производимого нами продукта
и уже сформулированными, еще предполагаемыми и даже только подразумеваемыми
потребностями наших заказчиков, т.е. требованиями.
Виды и иерархия требований
Как уже отмечалось выше, требования играют ключевую роль в определении качества
продукта, являясь оценочным (нормативным) базисом характеристик, соответствие
которым приводит к удовлетворенности заказчика/конечного пользователя. Тем не
менее, применение этого принципа в отношении программной продукции не столь
однозначно, как кажется на первый взгляд. Действительно, программное обеспечение
само по себе (т.е. - вне контекста использования), не может удовлетворять или не
удовлетворять потребности заказчика/конечного пользователя. ПО всегда является
составной частью или компонентой какой либо системы или бизнес-системы, так же как
оборудование, здания и сооружения, персонал, бизнес-процессы (см. Рис.1).
Следовательно и требования к ПО не должны существовать сами по себе, в отрыве от
требований к системе или бизнесу, в контексте которых это ПО будет использоваться.
Многолетний негативный опыт зарубежного и отечественного «тяжелого
программостроения» показывает, что игнорирование требований и условий бизнеса
(бизнес-системы) в требованиях к ПО непременно приводит к неудовлетворенности
заказчика/конечного пользователя.
Требования к
Бизнес-система Системе в
Бизнес-система целом
Детальные Детальные
Детальные Детальные
требования к Детальные требования к
требования к требования к
зд аниям и требования к ПО бизнес-
оборуд ованию персоналу
сооружениям процессам
Рис.1
Харьков, 2002 TelesensKSCL Ukraine Ltd
2
Ю.Назаренко. Управление требованиями к ПО: телепатия или формальный процесс?
Де-факто признанный в мире стандарт SEI CMM for Software [2] следующим образом
трактует виды и иерархию требований, используемых при разработке программных
продуктов:
Уровень требований Определение
1
Здесь и далее по тексту под системой или бизнес-системой или просто бизнесом будем понимать полный
набор компонент, включая здания и сооружения, персонал, бизнес-процессы, оборудование, программное и
прочие виды обеспечения, интегрированные для выполнения специфической функции или бизнес-функции
или набора таких функций
достижению 2-го и всех последующих уровней зрелости по модели SEI CMM for
Software[2].
Инжиниринг требований
Инжиниринг требований
Рис.2
1
Интерпретация автора статьи.
Харьков, 2002 TelesensKSCL Ukraine Ltd
4
Ю.Назаренко. Управление требованиями к ПО: телепатия или формальный процесс?
Предварительные Производственные
Архитектурные итерации Внешние релизы
итерации итерации
R D I DP R D I DP R D I DP R D I DP
∇ ∇ ∇
LCO LCA IOC
Milestone Milestone Milestone
Рис.3
Как показано на Рис.3, для эволюционно-итеративной модели характерно то, что
практически все основные виды работ в области требований (R), дизайна (D),
реализации (I) и развертывания (DP) программного обеспечения выполняются
итеративно на протяжении всего цикла проекта (высота «столбиков» условно
индицирует примерную степень завершенности соответствующих частей проекта на
каждой фазе).
1
Здесь и далее по тексту автор не преследует целью адекватно отобразить статическую часть процесса
разработки ПО (потоки работ и артефакты), как это представлено в Rational Unified Process
Вместо заключения
По утверждению ведущего эксперта в области совершенствования процессов
разработки ПО Карла Виггерса [5], деятельность в области инжиниринга требований в
большей степени носит коммуникативный, нежели технический характер.
Действительно, невозможно переоценить роль коммуникаций между Заказчиком и
Исполнителем проекта ПО в процессе управления требованиями – составной и
основополагающей части инжиниринга требований. Надо сказать, что в обоих примерах
неудачной реализации IT-проектов, приведенных в начале статьи, напрочь
отсутствовало управление требованиями, как формальный процесс, а вместе с ним и
коммуникации между Заказчиком и Исполнителем проекта.
Многих из нас часто и сильно пугает само словосочетание «формальный процесс». В
нашем воображении возникают горы толстых многотомных инструкций и процедур,
одно только чтение которых, не говоря уже об их исполнении, вызывает устойчивую
головную боль. И здесь, как в случаях с неудачными проектами, свою пагубную роль
играет дефицит коммуникации – едва ли не самая большая профессиональная ошибка
руководителей проектов и IT-организаций, предпочитающих решать технические, а не
организационные проблемы. А ведь даже самый простой, кратко и ясно описанный
процесс, не будет работать в компании, где отсутствуют механизмы доведения до
сотрудников политической установки высшего руководства следовать формальным
процессам. Если конечно таковая имеется.
На сегодняшний день существует множество современных, гибких, масштабируемых,
адаптируемых, несложных в понимании и применении технологий и инструментов,
обеспечивающих требуемый уровень формализации процессов создания ПО. Кроме
того, существует множество квалифицированных опытных консультантов, готовых
прийти на помощь в обучении персонала и внедрении формальных процессов. Дело за
Об авторе
Юрий Анатольевич Назаренко является заместителем директора
TelesensKSCL Ukraine по качеству и управлению персоналом.
Отвечает за совершенствование бизнес-процессов создания и
поддержки программных продуктов компании на базе стандартов SEI-
CMM и ISO9000:2000, подготовку и переподготовку кадров. Обладает
более чем 15-летним практическим опытом инженерной и
руководящей работы в аэрокосмической отрасли и ядерной
энергетике. Принимал непосредственное участие в разработке и
испытаниях компьютерных систем управления и программного
обеспечения военного и гражданского назначения. Участвовал в
создании и руководил работой инженерного подразделения первого
украинско-американского совместного предприятия по автоматизации
украинских АЭС.
Тел.: +380(572)190-568
mailto:Y.Nazarenko@telesenskscl.com.ua
Приложение А
1
Здесь и далее по тексту настоящей Политики под группой специалистов, отвечающих за аллокирование
требований бизнеса на ПО, понимается один и более бизнес-аналитиков, квалифицированных в предметной
области и в сфере разработки прикладного программного обеспечения
2
Согласованным считается требование, по которому все идентифицированные критические проблемы
разрешены, а по некритическим – достигнута договоренность о способе и сроках разрешения