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

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

Три проведенных в середине.
1990-х гг. важных анализа дали похожие результаты относительно состояния индустрии разработки ПО. Во всех было получено заключение, что процент успеха проектов по созданию ПО чрезвычайно низок.
Ключевые моменты .
А В индустрии ПО практика управления его созданием по-прежнему соответствует незрелому процессу, характеризующемуся излишними объемами дефектов и доработок.
А Около 10% традиционных проектов завершаются успешно, при этом успех определяется как соответствие ожиданиям заказчика по стоимости, срокам, качеству, набору возможностей и получению прибыли.
А Факторы управления созданием ПО являются определяющими для успеха или неудачи проекта.
Данное приложение обобщает результаты этих анализов.
Примеры успешных и неудачных программных систем.
Книга «Patterns of Software Sysems Failure and Success» [Jones, 1996]) является подробным анализом состояния индустрии ПО. Джонс проанализировал тысячи проектов, сгруппировав их по шести направлениям: системное ПО, информационные системы, коммерческое ПО, ПО для управления ресурсами, ПО для военных нужд и ПО для конечных пользователей. Общие оценки коренных причин удач и неудач проектов по созданию ПО, выполненные автором, сведены в таблицу А. 1.
Таблица А.1.
Технологии, используемые при осуществлении проектов по созданию ПО
Технологии неудачных проектов
Технологии удачных проектов
Отсутствие «исторических» данных о ходе выполнения проекта*
Точное измерение параметров проекта*
Неудача при попытке использования инструментов для автоматизации оценок*
Раннее использование инструментов для выполнения оценок*
Неудача при попытке использования инструментов для автоматизации планирования*
Использование инструментов планирования.на протяжении всего проекта*
Неудача при попытках отследить прогресс или пройденные контрольные точки*
Формализованные отчеты об успехах*
Неудача при попытке использования эффективной архитектуры*
Формализованное планирование архитектуры*
Неудача при попытке использования эффективных методов разработки*
Формализованные методы разработки*
Неудача при попытке рассмотрения разработки
Формализованное рассмотрение разработки
Неудача при попытке использования проверок кода
Формализованные проверки кода
Неудача при попытке использования формализованного управления рисками*
Формализованное управление рисками*
Неформализованное, неадекватное тестирование
Формализованные методы тестирования
Определение спецификаций и проектирование, выполнявшиеся вручную
Автоматизированное определение спецификаций и проектирование
Неудача при попытке использования .
формализованного управления конфигурацией*
Автоматизированное управление конфигурацией*
Изменение более 30% требований пользователя*
Изменение менее 10% требований пользователя*
Ненадлежащее использование языков 4GL
Использование подходящих языков
Излишняя и неопределенная сложность
Контролируемая и определяемая сложность
Недостаточное повторное использование сертифицированных материалов или его полное отсутствие
Значительное повторное использование сертифицированных материалов
Неудача при попытке описания элементов баз данных
Формализованное планирование баз данных
* Факторы, влияющие на управление проектом
Джонс приводит интересное наблюдение, касающееся этой таблицы:.
Представляется одновременно интересным и значимым, что первые шесть из шестнадцати [так в оригинале] технологических факторов, определяющих провалы, являются конкретными неудачами в области управления проектами, кроме того, три технологических недостатка из всех остальных могут быть так или иначе отнесены на счет неправильной практики руководства.
Джонс определяет также культурные и человеческие факторы, которые отличают успешные проекты от неудачных. Они представлены в таблице А. 2.
Таблица А.2.
Социальные факторы, наблюдаемые в проектах по созданию ПО
Неудачные проекты
Удачные проекты
Излишнее давление сроков
Реалистичные ожидания по срокам
Административный отказ от оценок
Административное приятие оценок
Серьезные трения с клиентами
Сотрудничество с клиентами
Разногласия по вопросам общей политики
Совпадающие управленческие цели
Недостаточное внутрикомандное взаимодействие
Слаженное внутрикомандное взаимодействие
Неопытные старшие администраторы
Опытные старшие администраторы
Недостаток практики у менеджеров проекта
Квалифицированный менеджмент проекта
Неквалифицированный технический персонал
Квалифицированный технический персонал
Использование неспециалистов для выполне¬
Использование специалистов для выполнения
ния критичных работ: обеспечения качества,
критичных работ: обеспечения качества,
тестирования, планирования, оценок
тестирования, планирования, оценок
Примеры успехов и неудач оцениваются с различных точек зрения. Джонс детально описывает отличия между шестью направлениями и между проектами разного масштаба. Одной из главных его посылок является общность этих факторов для всех областей.
Я могу согласиться с большинством общих посылок, обобщенных в этих двух таблицах, но у меня несколько иное мнение по вопросу об относительной важности различных факторов и деталей реализации, связанных с успешным применением некоторых технологий. Например, три самых первых фактора в таблице А.1, может быть, и являются наиболее распространенными характеристиками, но я не думаю, чтобы именно они были наиболее важными определяющими факторами успехов и неудач. Мои взгляды на этот вопрос изложены в главе 4.
«Хаос».
В отчете «Chaos» [Standish Group, 1995] основное внимание уделяется индустрии коммерческого ПО и даются три основных вывода:.
■ В 1995 г. американские компании потратят на закрытые из-за неудач проекты $81 млрд.
■ 31% проектов от общего числа изученных оказались закрыты до своего завершения.
■ 55% проекта по созданию ПО превысили свой первоначальный бюджет более чем на 50%.
■ В больших компаниях только 9% проектов по созданию ПО были выполнены в срок и уложились в рамки бюджета. Для средних и малых компаний аналогичные значения возрастают до 16% и 28% соответственно.
Отчет определяет десять главных причин, обеспечивающих проектам удачу, и десять главных причин, по которым они оказываются рискованными. (Рискованные проекты называются в нем «проблемными».) Эти факторы сведены в таблицу А.З. Большая часть отчета «Хаос» касается проблем и препятствий в том виде, как они воспринимаются менеджерами корпоративных информационных систем. Рассмотрению возможных решений в отчете уделяется минимальное внимание. Тем не менее в нем содержится описание лекарства, необходимого для лечения болезни; этот подход в большей степени ориентирован на процесс, а не на борьбу с отдельными симптомами.
Таблица А.З.
Факторы, влияющие на успех проектов по созданию ПО
Успешные проекты
% ответов
Проблемные проекты
% ответов
Вовлечение пользователей
15.9
Неучастие пользователей
12.8
Поддержка высшего руководства
13.9
Неполные требования
12.3
Ясное изложение требований
13.0
Изменяющиеся требования
11.8
Надлежащее планирование
9.6
Отсутствие поддержки руководства
7.5
Реалистичность ожиданий
8.2
Технологическая.
некомпетентность
7.0
Более мелкие контрольные точки проекта
7.7
Недостаток ресурсов
6.4
Компетентность персонала
7.2
Нереальные ожидания
5.9
Право собственности на продукт
5.3
Неясные цели
5.3
Ясность общей концепции и целей
2.9
Нереалистичные временные рамки
4.3
Тщательно выполняющие.
свои обязанности, внимательные.
работники
2.4
Новизна технологии
3.7
Другое
13.9
Другое
23,0
В отчете утверждается следующее:.
Исследование, выполненное Standish Group, также показало, что более жесткие временные рамки с предоставлением пользователю программных компонентов как можно раньше и чаще способствуют увеличению вероятности успеха. Более жесткие временные рамки приводят к итерационному процессу разработки, созданию прототипов, реализации, тестированию и внедрению небольших элементов. Такой процесс известен под названием «растущее ПО» в отличие от старой концепции «разрабатываемого ПО». Растущее ПО позволяет привлекать пользователя на более ранних стадиях, у каждого компонента есть автор или небольшая группа авторов, а ожидания реалистичны. Кроме того, каждый программный компонент имеет ясное и точное описание и набор целей. Компоненты ПО и небольшие проекты обычно оказываются менее сложными. Упрощение проекта - предприятие, имеющее смысл, поскольку сложность приводит только к путанице и возрастанию стоимости.
В отчете «Хаос» отражены убеждения, распространенные среди менеджеров ПО, в частности то, что причины успеха или неудачи кроются прежде всего в процессе определения требований. Из приведенных данных следует: если организация осознает, что именно она создает (требования), то вопрос о том, как это должно строиться (процесс), не представляет большой проблемы. На самом деле это далеко не так: на определение требований обычно уходит около 10% ресурсов жизненного цикла; остальные 90% тоже должны быть задействованы надлежащим образом. Поскольку работа по определению требований преобладает на ранних стадиях жизненного цикла, удобно использовать требования в качестве козла отпущения. В отличие от того, что вытекает из приведенных данных, рекомендации, выдаваемые в отчете о разбиении проблемы на небольшие части, являются проницательными и не противоречат духу современного итерационного процесса.
Доклад рабочей группы Научного совета по обороне о приобретении ПО для оборонных целей на коммерческой основе.
Отчет Научного совета по обороне «Report of the Defense Science Board Task Force on Acquiring Defense Software Commercially» [Defence Science Board, 1994] содержит следующие заключения:.
■ Современная практика Министерства обороны несовместима с коммерческой практикой.
■ Подходы Министерства обороны к управлению созданием программ не способствуют использованию коммерческой практики.
■ Наблюдается дефицит подготовленного соответствующим образом персонала, связанного с ПО, на всех уровнях Министерства обороны.
■ Министерство обороны не полностью определило «за» и «против», касающиеся использования коммерческих компонентов.
■ Министерство обороны не уделяет достаточного внимания архитектуре.
■ Министерство обороны не способствует адекватному технологическому взаимодействию с коммерческим сектором.
В отчете утверждается, что, хотя Министерство обороны и изучило множество проектов по созданию ПО (перечислены 18 проектов), большинство рекомендаций, полученных в результате этого изучения, остаются нереализованными.
Принципиальные причины, по которым проекты Министерства обороны по созданию ПО сталкиваются с проблемами, определены следующим образом:.
■ Плохое определение требований.
■ Неадекватное управление процессом создания ПО.
■ Отсутствие сплоченных производственных коллективов.
■ Неэффективное управление субподрядчиками.
■ Отсутствие должного внимания к процессу.
■ Совершенно недостаточное внимание, уделяемое архитектуре.
■ Плохо описанные, неадекватно контролируемые интерфейсы.
■ Обновление ПО для решения проблемы дефицита аппаратуры.
■ Основное внимание уделяется нововведениям, а не стоимости и риску.
■ Ограниченные возможности по адаптации оборонных стандартов или полное их отсутствие.
Даются следующие основные рекомендации:.
■ Использовать коммерческую практику (например, итерационную разработку и процессы с упреждающим развитием архитектуры).
■ Использовать коммерческие компоненты и технологии.
■ Инвестировать больше средств в обучение сотрудников Министерства обороны.
В отчете обсуждаются способы разрешения выявленных рисков. Он не переоценивает необходимость лучшего выполнения работы по определению требований и контролю над ними, как это делалось во многих предыдущих исследованиях, проводимых Министерством обороны. Эта тема упоминается и ей уделяется должное внимание при обсуждении наряду с другими не менее важными факторами. В отчете «Хаос» основная вина за неудачу проекта возлагается на недостаточную работу с требованиями. Министерство обороны соглашалось с этим в конце 1980-х гг., но, кажется, доросло до более взвешенной самооценки и одновременного понимания симптомов и самой болезни.

Популярные статьи

Свежие статьи