Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 6. Управление проектами.

Презентация:



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

Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 8. Управление качеством.
Система управления проектами для учреждений образования.
Стратегическое планирование Тема 8. План Сущность стратегического планирования Сущность стратегического планирования Процесс стратегического планирования.
Ключевые элементы Дорожной карты ТП «МРЭ» Успешная дорожная карта содержит четкое определение желаемого результата, за которым следует описание конкретного.
Формализованные методы в управлении предприятием Докладчик: С.И. Шаныгин Федеральное государственное бюджетное образовательное учреждение высшего профессионального.
ПРОЦЕСС УПРАВЛЕНИЯ ПРОЕКТОМ И ОРГАНИЗАЦИОННАЯ СТРУКТУРА.
Маркетинговый подход в менеджменте Маркетинг Маркетинг - метод регулирования взаимоотношений внешней среды организации с возможностями самой организации,
Положение об отделе В.Андреев, Д.Сатин. Штат отдела начальник отдела; бизнес-аналитик; проектировщик пользовательских интерфейсов; специалист по анализу.
Предмет и задачи информационного менеджмента Тема 2.
Жизненный цикл и фазы проекта. Контрольные вопросы Понятие жизненный цикл проекта Фазы жизненного цикла проекта Наиболее часто допускаемые ошибки.
IT-Project Management Управление проектами в области информационных технологий Управление стоимостью.
Задачи решаемые EPCM командой Июль 2009 г.. Термины и определения EPCM (EPCM = Engineering Procurement Construction Management - управление проектированием,
Анализ проекта [Проект] [Докладчик]. Исполнение и цели Цель: укажите исходные цели или цели проекта –Перечислите критерии оценки успешного выполнения.
Организация деятельности менеджеров проектов средствами информационных технологий.
Разработка программного обеспечения (Software Engineering) Часть 1. Введение.
Управление проектами Лекция 1. Основы управления проектами.
Педагогический проект Новосибирский учебно-методический и консультационный центр Learn & Teach.
Методология проектирования RAD МДК Раздел 1.
Выполнили студенты группы ЗСР-401 С Трапезникова О. А. Груздева Л. А. Найдина О. А.
Транксрипт:

Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 6. Управление проектами

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

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

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

Процесс планирования проекта Определение проектных ограничений Первоначальная оценка параметров проекта Определение этапов выполнения проекта и контрольных отметок while пока проект не завершится или не будет остановлен loop Составление графика работ Начало выполнения работ Ожидание окончания очередного этапа работ Отслеживание хода выполнения работ Пересмотр оценок параметров проекта Изменение графика работ Пересмотр проектных ограничений if (возникла проблема) then Пересмотр технических или организационных параметров проекта end if end loop

План проекта 1.Введение. Краткое описание целей проекта и проектных ограничений (бюджетных, временных и т.д.), которые важны для управления проектом. 2.Организация выполнения проекта. Описание способа подбора команды разработчи­ ков и распределение обязанностей между членами команды. 3.Анализ рисков. Описание возможных проектных рисков, вероятности их проявле­ния и стратегий, направленных на их уменьшение. 4.Аппаратные и программные ресурсы, необходимые для реализации проекта. Перечень ап­паратных средств и программного обеспечения, необходимого для разработки программного продукта. Если аппаратные средства требуется закупать, приводится их стоимость совместно с графиком закупки и поставки. 5.Разбиение работ на этапы. Процесс реализации проекта разбивается на отдельные процессы, определяются этапы выполнения проекта, приводится описание резуль­ татов ("выходов") каждого этапа и контрольные отметки. 6.График работ. В этом графике отображаются зависимости между отдельными про­ цессами (этапами) разработки ПО, оценки времени их выполнения и распределе­ние членов команды разработчиков по отдельным этапам. 7.Механизмы мониторинга и контроля за ходом выполнения проекта. Описываются пре­доставляемые менеджером отчеты о ходе выполнения работ, сроки их предостав­ления, а также механизмы мониторинга всего проекта.

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

График работ Определение этапов Определение зависимых этапов Оценка ресурсов Для этапов Распределение персонала по этапам Создание графиков работ Диаграммы процессов и временные диаграммы Требования к ПО

Временные и сетевые диаграммы ЭтапДлительность (дни) Зависимость Т18 Т215 Т315Т1 (М1) Т410 Т510Т2, Т4 (М2) Т65Т1, Т2 (М3) Т720Т1 (М1) Т825Т4 (М5) Т915Т3, Т6 (М4) Т1015Т5, Т7 (М7) Т117Т9 (М6) Т1210Т11 (М8)

Временные и сетевые диаграммы

ЭтапИсполнитель Т1Джейн Т2Анна Т3Джейн Т4Фред Т5Мэри Т6Анна Т7Джим Т8Фред Т9Джейн Т10Анна Т11Фред Т12Фред

Управление рисками Риск можно понимать как вероятность проявления каких-либо неблагопри­ятных обстоятельств, негативно влияющих на реализацию проекта. Возможные риски для программных проектов: 1.Риски для проекта, которые влияют на график работ или ресурсы, необходимые для выполнения проекта. 2.Риски для разрабатываемого продукта, влияющие на качество или производитель­ность разрабатываемого программного продукта. 3.Бизнес-риски, относящиеся к организации-разработчику или поставщикам.

Управление рисками РискТипы рискаОписание риска Текучесть разработчиковРиск для проектаОпытные разработчики покидают проект до его завершения Изменение в управлении организацией Риск для проектаОрганизация меняет свои приоритеты в управлении проектом Неготовность аппаратных средств Риск для проектаАппаратные средства, которые необходимы для проекта, не поступили вовремя или не готовы к эксплуатации Изменение требованийРиск для проекта и для разрабатываемого продукта Появление большого количества непредвиденных изменений в требованиях, предъявляемых к разрабатываемому ПО Задержка в разработке спецификации Риск для проекта и для разрабатываемого продукта Спецификации основных интерфейсов подсистем не поступили к разработчикам в соответствии с графиком работ Недооценка размера разрабатываемой системы Риск для проекта и для разрабатываемого продукта Размер системы значительно превысил первоначальную оценку Недостаточная эффективность CASE-средств Риск для разрабатываемого продукта CASE-средства, предназначенные для поддержки проекта, оказались менее эффективными, чем ожидалось Изменения в технологии разработки ПО Бизнес-рискОсновные технологии построения программной системы заменяются новыми Появление конкурирующего программного продукта Бизнес-рискНа рынке программных продуктов до окончания проекта появилась конкурирующая программная система Возможные риски программных проектов

Управление рисками Схема процесса управления рисками 1.Определение рисков. Определяются возможные риски для проекта, для разрабатывае­мого продукта и бизнес-риски. 2.Анализ рисков. Оценивается вероятность и последовательность появления рисковых ситуаций. 3.Планирование рисков. Планируются мероприятия по предотвращению рисков или минимизации их воздействия на проект. 4.Мониторинг рисков. Постоянное оценивание вероятностей рисков и выполнение мероприятий по смягчению последствий проявления рисковых ситуаций. Определение рисков Анализ рисков Планирование рисков Мониторинг рисков Список потенциальных рисков Список первостепенных рисков Мероприятия по предотвращению рисков Оценки рисков

Определение рисков Список возможных категорий рисков: 1.Технологические риски. Проистекают из программных и аппаратных технологий, на основе которых разрабатывается система. 2.Риски, связанные с персоналом. Связаны с членами команды разработчиков. 3.Организационные риски. Проистекают из организационного окружения, в котором выполняется проект. 4.Инструментальные риски. Связаны с используемыми CASE- средствами и другими средствами поддержки процесса создания ПО. 5.Риски, связанные с системными требованиями. Проявляются при изменении требова­ний, предъявляемых к разрабатываемой системе. 6.Риски оценивания. Связаны с оцениванием характеристик программной системы и ресурсов, необходимых для реализации проекта.

Определение рисков Категория рисковПримеры рисков Технологические рискиБаза данных, которая используется в программной системе, не обеспечивает обработку ожидаемого объема транзакций. Программные компоненты, которые используются повторно, имеют дефекты, ограничивающие их функциональные воз­можности Риски, связанные с персоналом Невозможно подобрать работников с требуемым профессиональным уровнем. Ведущий разработчик заболел в самое критическое время. Невозможно организовать необходимое обучение персонала Организационные риски В организации, выполняющей разработку ПО, произошла ре­организация, в результате чего изменились приоритеты в управлении проектом. Финансовые затруднения в организации привели к уменьше­нию бюджета проекта Инструментальные риски Программный код, генерируемый CASE-средствами, не эф­фективен. CASE-средства невозможно интегрировать с другими средствами поддержки проекта Риски, связанные с системными требованиями Изменения требований приводят к значительным повторным темными требованиями работам по проектированию системы. Первоначальная нечеткая формулировка пользовательских требований привела к значительным изменениям системных требований, проявившихся на поздних стадиях разработки проекта Риски оцениванияНедооценки времени выполнения проекта. Скорость выявления дефектов в системе ниже ранее запланированной. Размер системы значительно превышает первоначально рассчитанный

Анализ рисков РискВероятность * Степень ущерба Финансовые затруднения в организации привели к уменьшению бюджета проекта НизкаяКатастрофическая Невозможно подобрать работников с требующимся профессиональным уровнем ВысокаяКатастрофическая Ведущий разработчик заболел в самое критическое время СредняяСерьезная Программные компоненты, используемые повторно, имеют дефекты, ограничивающие их функциональные возможности СредняяСерьезная Изменения требований приводят к значительным повторным работам по проектированию системы СредняяСерьезная В организации, выполняющей разработку ПО, произошла реорганизация, в результате чего изменились приоритеты в управлении проектом ВысокаяСерьезная База данных, которая используется в программной системе, не обеспечивает обработку ожидаемого объема транзакций СредняяСерьезная Список рисков после проведения их анализа

РискВероятность * Степень ущерба Недооценки времени выполнения проектаВысокаяСерьезная CASE-средства невозможно интегрировать с другими средствами поддержки проекта ВысокаяТерпимая Первоначальная нечеткая формулировка пользовательских требований привела к значительным изменениям системных требований, проявившихся на поздних стадиях разработки проекта СредняяТерпимая Невозможно организовать необходимое обучение персонала СредняяТерпимая Скорость выявления дефектов в системе ниже ранее спланированной СредняяТерпимая Размер системы значительно превышает первона­ чально рассчитанный ВысокаяТерпимая Программный код, генерируемый CASE-средствами, неэффективен СредняяНезначительная Анализ рисков Список рисков после проведения их анализа (продолжение) * Вероятность риска считается очень низкой, если она имеет значение менее 10%; низ­кой, если ее значение от 10 до 25 %; средней при значениях от 25 до 50%; высокой, если значение колеблется от 50 до 75%; очень высокой при значениях более 75%.

Анализ рисков Планирование заключается в определении стратегии управления каждым значимым риском, отобранным для мониторинга после анализа рисков. РискСтратегия Финансовые проблемы организации Подготовить краткий документ для руководства организации, показывающий важность данного проекта для достижения финансовых целей организации Проблемы неквалифицированного персонала Предупредить заказчика о потенциальных трудностях и возможной задержке проекта, рассмотреть вопрос о покупке компонентов системы Болезни персоналаРеорганизовать работу команды разработчиков таким образом, чтобы обязанности и работа членов команды перекрывали друг друга, вследствие этого разработчики будут знать и понимать задачи, выполняемые другими сотрудниками Дефектные системные компоненты Заменить потенциально дефектные системные компоненты покупными компонентами, гарантирующими качество работы Изменения требованийПопытаться определить требования, наиболее вероятно подверженные изменениям; в структуре системы не отображать детальную информацию Реорганизация компании- разработчика Подготовить краткий документ для руководства компании, показывающий важность данного проекта для достижения финансовых целей компании Недостаточная производительность базы данных Рассмотреть возможность покупки более производительной базы данных Недооценки времени выполнения проекта Рассмотреть вопрос о покупке системных компонентов, исследовать возможность использования генератора программного кода

Анализ рисков Существует три категории стратегий управления рисками: 1.Стратегии предотвращения рисков. Согласно этим стратегиям следует проводить мероприятия, снижающие вероятность проявления рисков. Примером может служить стратегия исключения потенциально дефектных компонентов. 2.Минимизационные стратегии. Направлены на уменьшение возможного ущерба от рисков. Примером служит стратегия уменьшения ущерба от болезни членов команды разработчиков. 3.Планирование "аварийных" ситуаций. Согласно этим стратегиям необходимо иметь план мероприятий, которые следует выполнить в случае проявления рисковой си­туации. В табл. 4.7 это стратегия поведения при возникновении финансовых про­блем у организации разработчика.

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

1. Объясните, почему нематериальность программных систем порождает особые проблемы в процессе управления программными проектами. 2. Объясните, почему хорошие программисты не всегда могут быть хорошими менеджера проектов. 3. Объясните, почему процесс планирования проекта является итерационным и почему план должен постоянно пересматриваться в течение всего срока выполнения проекта. 4. Менеджер проекта предупреждает о возможной задержке выполнения работ, которой можно избежать только за счет бесплатных сверхурочных работ команды разработчиков. Все члены команды имеют семьи, требующие определенной доли внимания. Обсудите возможность отклонения предло­жения менеджера о бесплатных сверхурочных работах либо согласия предпочесть интересы организации семейным интересам. Какие аргументы наиболее весомы в этой дискуссии? 5. Как опытному программисту, вам предложили возглавить управление проектом, но вы чувствуете, что больше пользы можете принести в качестве технического специалиста, а не менеджера проекта. Обсудите возможности принятия или отклонения предложения возглавить программный проект. Вопросы для обсуждения