- •Содержание
- •1.13. Задания для самопроверки 59
- •1.17. Задания для самопроверки 88
- •1.19. Задания для самопроверки 108
- •1.23. Задания для самопроверки 116
- •1.27. Задания для самопроверки 125
- •1.37. Задания для самопроверки 144
- •1.48. Задания для самопроверки 159
- •Перечень рисунков
- •Перечень таблиц
- •Введение
- •Принятые сокращения
- •1.Жизненный цикл разработки по
- •Программные проект и его атрибуты
- •Ролевые модели в программном проекте
- •Размер и сложность программного проекта
- •Характеристики программного проекта
- •Качество программного продукта
- •Экран проекта и сводка о подходе
- •Критерий smart для формулирования целей
- •Критерии успешности программного проекта
- •Модели жизненного цикла
- •Водопадная модель
- •Модель быстрой разработки приложения
- •Пошаговая модель
- •Спиральная модель Боэма
- •Прототипная модель
- •Выбор модели жизненного цикла
- •Задания для самопроверки
- •2.Типовой каркас для разработки по
- •Программная разработка
- •Планирование проекта
- •Модель cocomo для оценки трудозатрат в проекте
- •Модель slim для оценки трудозатрат в проекте
- •Разработка спецификации требований
- •Отслеживание и контроль
- •Верификация и валидация
- •Обеспечение качества
- •Конфигурационное управление
- •Метрики
- •Повышение квалификации
- •Задания для самопроверки
- •3. Модели зрелости способностей cmm/cmmi
- •Ключевые области процесса в модели cmm
- •Характеристика уровней зрелости в модели cmm
- •Интегрированная модель зрелости способностей cmmi
- •История возникновения
- •Уровни зрелости и области процесса
- •Уровни способностей процесса в модели cmmi
- •Специальные и общие цели и практики процессных областей
- •Характеристики уровней зрелости в модели cmmi
- •Задания для самопроверки
- •4.Управление рисками в программном проекте
- •Модели esi и pmi управления рисками
- •Выявление рисков
- •Анализ рисков
- •Расстановка приоритетов для рисков
- •Планирование рисков
- •Исполнение ответных стратегий
- •Оценивание результатов исполнение ответных стратегий
- •Документирование действий по рискам
- •Заключительное оценивание рисков
- •Задания для самопроверки
- •5.Стандарты качества iso в применении к по
- •Структура и принципы семейства стандартов iso 9000
- •Модели iso 9000 на базе процессов
- •Самооценивание по ключевым элементам iso 9000
- •Задания для самопроверки
- •6.Формальные методы в разработке по
- •Инструменты формализации и верификации
- •Взаимодействие функциональностей
- •Интегрированная технология анализа и верификации
- •Задания для самопроверки
- •7.Некоторые общие технологические приемы
- •Инспекции по Фейгану
- •Диаграммы Исикавы («рыбий скелет»)
- •Инструменты
- •Swot-анализ
- •Сбалансированный экран результативности
- •Технологическая дорожная карта
- •Метод Дельфи
- •Деревья решений
- •Сравнительное ранжирование
- •Методология подвижного программирования
- •Принципы подвижного программирования
- •Рабочий цикл и роли участников
- •Рабочие документы и обстановка
- •Задания для самопроверки
- •8.Сертификация программного обеспечения в авиации
- •История создания серии документов do-178 и ed-12
- •Уровни программного обеспечения
- •Процессы жизненного цикла по авиационных систем
- •Цели процессных деятельностей
- •Рабочие документы и категории их контроля
- •Процесс планирования по
- •Процессы разработки по
- •Определение требований
- •Проектирование
- •Кодирование
- •Верификация
- •Конфигурационное управление
- •Обеспечение качества
- •Контакт с органом сертификации
- •Выводы и рекомендации
- •Задания для самопроверки
- •9.Задания для самостоятельной работы
- •Темы, связанные с единым каркасом для разработки по
- •Перечень тем
- •Краткое описание каждой темы
- •Тема 2. Программная архитектура базового инструмента для распределенного управления программными проектами
- •Тема 3. Профили типовых рабочих компонентов для разработки приложений
- •Тема 1. Прототип метрической базы данных для управления разработкой приложений
- •Тема 5. Репозиторий повторно используемых компонентов
- •Тема 6. Сквозной пример для единого каркаса разработки приложений
- •Темы, связанные применением формальных методов перечень тем
- •Тема 1. Сравнительный анализ систем верификации
- •Тема 2. Формализация протоколов связи краткое описание каждой темы
- •Тема 1. Сравнительный анализ систем верификации
- •Тема 2. Формализация протоколов связи
- •10.Литература
- •11.Приложения
- •Шаблон для одностраничного экрана проекта
- •Примерная структура положения о работе и тз
- •Примерная форма еженедельного отчета
- •Примерная форма презентации на ежемесячном операционном обзоре
- •12.Указатель
Документирование действий по рискам
Документация – это физическая демонстрация управления рисками, которая обеспечивает обоснование действий группы для тех, кто непосредственно не вовлечен в детали проекта, и является ценным историческим источником. Все это необходимо для переноса полезного опыта на другие проекты.
Входными данными для этого шага служат результаты управления рисками, результаты проекта, предположения и впечатления о ходе проекта, интерпретация и анализ проектных данных. Инструментами являются простые по форме отчеты о конкретных рисковых событиях и регулярные отчеты по проекту. После подготовки каждого такого документа он должен пройти обзор, и только затем распространяться среди прикосновенных лиц и помещаться в архив проекта. В результате постепенно накапливается файл с историей развития проекта.
Ключ к успеху – удобная для всех участников система документации! При создании таких документов полезно держать в виду следующие два вопроса: «Если меня завтра не станет, то может ли кто-либо разобраться в этом?» и «Можно ли заполнить эту форму или отчет в конце рабочего дня в пятницу?» Если ответом на второй вопрос будет: «Можно, но плохо именно в этот момент», то плохо будет всегда, так что это верный знак того, что надо что-то менять в подходе к составлению таких отчетов и документов.
Практический подход к документированию управления рисками руководствуется следующими принципами:
Документирование – это непрерывный процесс
У документации различные пользователи: она дает исторический след проекта, дает сводки «усвоенных уроков» и функционирует как механизм коммуникации между прикосновенными лицами.
Документация должна быть: текущей, точной и полной, ясной и лаконичной.
Руководствуйтесь здравым смыслом при документировании.
Распространяйте свою документацию и читайте документацию других.
Заключительное оценивание рисков
По завершении программного проекта очень полезно провести заключительное оценивание рисков в нем как часть ретроспективного обзора (post-mortem review) выполненного проекта, как успешного, так и неуспешного.
Такая оценка проводится по следующим направлениям:
Затраты, график, производительность: Каковы «усвоенные уроки»? Удовлетворен ли заказчик? Каковы последствия данного проекта для будущих проектов и будущего организации?
Признание и награждение отличившихся участников проекта.
Оценивание степени достижения целей проекта.
Отдельно полезно осознать и задокументировать, что было сделано правильно, каким новым приемам научились участники разработки, какие новые идеи были найдены, и какими можно поделиться с другими разработчиками в данной организации.
В зависимости от качества таких оцениваний, могут создаваться или сокращаться будущие риски в новых проектах, меняться в ту или иную сторону образ и репутация данной организации-разработчика. Такая работа способствует созданию возможностей на будущее через возможные усовершенствования в контракте, позиционирование данной организации как разработчика и улучшение связи с общественностью (public relations).
Выявленные в результате такого оценивания типы рисков и рисковых событий уточняют сами риски и могут относиться к следующим категориям:
деловые риски – несут вероятность как выигрыша, так и потерь – это нормальные риски ведения дела;
чистые риски – несут вероятность только потерь – часто могут быть застрахованы страховыми компаниями;
внешние события – вне контроля или влияния со стороны разработчиков:
непредсказуемые – регуляторные, природные катаклизмы, окружающая среда, общественный интерес;
предсказуемые – колебания рынка, валют, инфляция, налогообложение;
внутренние события – в рамках контроля или влияния разработчиков:
финансовые – затраты на запуск, бюджет заказчика, точность требований, ценовая политика, время выхода на рынок, тип контракта, движение наличности;
по графику – ползучие требования, кадры, реалистичность, доступность оборудования и технологий, трудности запуска, каскадные задержки, неадекватное планирование;
технические – экспертиза, зрелость технологии, размер и сложность, требования интеграции/инсталляции, настройка на потребителя, сопровождение;
юридические – неоднозначность в контракте, невозможность выполнить, право копирования, торговые секреты, патенты, лицензии.
Разумеется, разработчики могут влиять только на риски, находящиеся под их контролем. В Табл. 17 приводится примерный перечень таких рисков и соответствующих инструментов для управления ими.
Табл. 17. Риски, контролируемые разработчиками
|
Проявления |
Инструменты |
Финансовые |
Потенциальные денежные приобретения Потенциальные денежные потери Профиль движения наличности Будущие потенциал и вероятность дела Требуемые вложения и отдача |
Результат в ожидаемом денежном выражении (EMV) Анализ безубыточности (break-even) Доходность продаж (ROS) Возврат от инвестиций (ROI) Доходность активов (ROA) Анализ движения наличности (cash flow) Анализ затрат ЖЦ (LCC) Экономическая добавленная ценность (EAV) |
График |
Реалистичность сроков Загрузка ресурсов Доступность ресурсов Гибкость требований |
Экспертное суждение Сетевой анализ (PERT, CPM, PDM) Анализ диаграмм Гантта Анализ диаграмм этапов |
Технические |
Наличие внутренних экспертов Наличие внешних экспертов Знание технологии и предмета Доступ к обучению Сложность Зрелость технологии |
Экспертное суждение Исторические данные Анализ через деревья решений |
Юридические |
Нарушения контракта и его прекращение Нарушения патентов Нарушение прав копирования Раскрытие или кража торговых секретов Заявки контракта |
Специальные статьи контракта Гарантии Страхование Арбитраж Судебное разбирательство |
К десяти самым серьезным рискам в программном проекте обычно относят следующие:
Неточность метрик – значения метрик, служащие основой для анализа и принятия решений, могут оказаться неточными.
Неадекватность измерений – измерения метрик, служащих основой для анализа и принятия решений, могут быть проведены с ошибками.
Чрезмерное давление графика – этапы поставок спланированы с превышением нагрузки на исполнителей.
Некомпетентность руководства – no comment
Неадекватность оценки затрат – затраты на разработку оценены неверно.
Синдром «серебряной пули» – мнение, что существует одно решение для всех проблем в проекте.
Ползучесть требований пользователя – в процессе разработки меняются исходные требования, вызывая необходимость переделок или отказа от части уже выполненных работ
Низкое качество – no comment
Низкая производительность труда – фактическая производительность труда оказалась меньше расчетной
Отмененные проекты – проект прекращен по не зависящим от исполнителей причинам, что очень демотивирует команду для следующих проектов.
В Табл. 18 представлены данные из источников США по проценту проектов, подверженных самым распространенным общим рискам в ПО.
Табл. 18. Самые распространенные общие риски в ПО
Системы управления информацией |
|
Системное программное обеспечение |
||
80 |
Ползучесть требований пользователя |
|
70 |
Долгосрочный график (>3 лет) |
65 |
Чрезмерное давление графика |
|
65 |
Неадекватность оценки затрат |
60 |
Низкое качество |
|
60 |
Избыточный документооборот |
55 |
Превышение затрат |
|
50 |
Подверженные ошибкам модули |
50 |
Неадекватное конфигурационное управление |
|
35 |
Отмененные проекты |
|
|
|
|
|
Программное обеспечение военного назначения |
|
Программное обеспечение по контракту |
||
90 |
Избыточный документооборот |
|
60 |
Высокие затраты на сопровождение |
85 |
Низкая производительность труда |
|
50 |
Трения между подрядчиком и клиентом |
75 |
Долгосрочный график (>3 лет) |
|
45 |
Ползучесть требований пользователя |
70 |
Ползучесть требований пользователя |
|
30 |
Неожиданные критерии приемки |
45 |
Неиспользуемое программное обеспечение |
|
20 |
Право собственности на программное обеспечение и поставки |
|
|
|
|
|
Программное обеспечение пользователя |
|
Коммерческое программное обеспечение |
||
80 |
Непередаваемые приложения |
|
70 |
Неадекватная документация пользователя |
65 |
Скрытые ошибки |
|
55 |
Низкая удовлетворенность пользователя |
60 |
Несопровождаемое программное обеспечение |
|
50 |
Избыточное время выхода на рынок |
50 |
Избыточные приложения |
|
45 |
Вредные действия конкурентов |
20 |
Право собственности на программное обеспечение и поставки |
|
30 |
Расходы на судебные разбирательства |
Типичные ответные стратегии на некоторые их этих рисков состоят в следующем.
Ползучесть требований пользователя: прототипирование, совместное проектирование приложения (Joint Application Development – JAD), информационная инженерия (Information Engineering – IE).
Давление графика, долгосрочный график, время выхода на рынок: технологии планирования, технологии для сокращения графика (готовые модули, повторное использование компонентов, системы САПР, объектно-ориентированные анализ, проектирование и средства кодирования, информационная инженерия и быстрая разработка приложений), структурный анализ, инспекции и обзоры.
Превышение затрат: технологии точных оценок, технологии, снижающие стоимость разработки, передача проектов на сторону (outsourcing).
Низкое качество и модули с ошибками: средства оценки качества и надежности методы предотвращения дефектов, методы устранения дефектов, программы измерения качества.
Высокая стоимость сопровождения: анализаторы структурной сложности, средства реструктуризации (для языков COBOL и C), средства обратного восстановления (reverse engineering), анализ модулей с ошибками и удаление их.
В то же время ряд рисков сопротивляется любым известным стратегиям, и для которых есть только паллиативные решения:
Чрезмерный документооборот1: военные и другие стандарты, в прошлом бумага была дешевле компьютерной памяти, решению может помочь развитие технологий.
Неадекватная пользовательская документация: процент людей, умеющих хорошо писать документацию, не слишком высок, документация получается лучше у больших компаний, графический интерфейс (GUI) и мультимедийность могут поменять подходы к документации.
Низкая удовлетворенность пользователя: GUI, эксперты по интерфейсу, улучшение пользовательской документации, улучшение функций подсказки (HELP).
Трения между заказчиком и клиентом: партнерство, управление рисками в команде.
Юридические проблемы: обсуждать проблемы на переговорах, нанимать юристов, понимающих вопросы ПО, прибегать к посредничеству до арбитража и спора в суде.