Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Управление программными проектами Учебно-методическое пособие

..pdf
Скачиваний:
7
Добавлен:
15.11.2022
Размер:
460.97 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ОБРАЗОВАНИЯ «МИРЭА Российский технологический университет»

(РТУ МИРЭА)

Завьялов А. В.

Управление программными проектами

Учебно-методическое пособие

Москва 2021

УДК 005.8:004.4

ББК 65.291.2 З-138

Завьялов А. В. Управление программными проектами [Электронный ресурс]: Учебно-

методическое пособие / Завьялов А.В. — М.: МИРЭА – Российский технологический университет, 2021. — 1 электрон.опт. диск (CD-ROM)

В пособии приведен базовый теоретический материал по теме управления программными проектами, а также задания для самостоятельного более глубокого изучения студентами. Предназначено для использования в практических занятиях по дисциплинам «Управление разработкой программного обеспечения» (направление подготовки бакалавров по направлению 01.03.02 «Прикладная математика и информатика» с профилем подготовки «Системное программирование и компьютерные технологии») и «Управление командными программными проектами» (направление подготовки магистров 01.04.02 «Прикладная математика и информатика», все программы).

Учебно-методическое пособие издается в авторской редакции.

Автор: Завьялов Антон Владимирович, к.т.н., доцент РТУ МИРЭА

Рецензенты:

Силкин Александр Тихонович, д.в.н., главный научный сотрудник АО «Концерн «ВЕГА», Крыжановский Юрий Маркович, к.т.н., профессор РТУ МИРЭА

Системные требования:

Наличие операционной системы Windows, поддерживаемой производителем. Наличие свободного места в оперативной памяти не менее 128 Мб.

Наличие свободного места в памяти постоянного хранения (на жестком диске) не менее 30 Мб. Наличие интерфейса ввода информации.

Дополнительные программные средства: программа для чтения pdf-файлов (Adobe Reader). Подписано к использованию по решению Редакционно-издательского совета МИРЭА — Российский технологический университет.

Обьем: 0.9 мб Тираж: 10

©Завьялов А. В., 2021

©МИРЭА – Российский технологический университет, 2021

ОГЛАВЛЕНИЕ

Введение.......................................................................................................................

4

1.

Проектная деятельность .........................................................................................

5

2.

Жизненный цикл программного продукта ...........................................................

6

3.

Методология гибкой разработки программных продуктов Agile......................

8

4.

Принципы бережливого производства в программных проектах....................

10

5.

Работа в команде ...................................................................................................

12

6.

Коллективный интеллект......................................................................................

14

7.

Процесс разработки программных продуктов Scrum........................................

15

8.

Scaled Agile Framework.........................................................................................

17

Заключение.................................................................................................................

19

Список литературы....................................................................................................

19

3

ВВЕДЕНИЕ

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

Учебный план РТУ МИРЭА по направлению 01.03.02 «Прикладная математика и информатика» с профилем подготовки «Системное программирование и компьютерные технологии» включает дисциплину «Управление разработкой программного обеспечения», в ходе изучения которой студенты активно участвуют в подготовке и проведении занятий. При этом они анализируют как собственный опыт в небольших коллективных разработках, так и организацию научно-исследовательских и опытноконструкторских работ на базовом предприятии.

Дальнейшее развитие управленческих навыков этих студентов происходит в магистратуре РТУ МИРЭА по направлению 01.04.02 «Прикладная математика и информатика» в рамках дисциплины «Управление командными программными проектами». Оно направлено в первую очередь на формирование профессиональных и управленческих навыков, необходимых не рядовому исполнителю, а ведущему разработчику, способному руководить группой, планировать и осуществлять проектную деятельность, анализировать результаты разработки, находить возможности развития программного продукта, команды, технологии разработки и определять приоритеты.

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

4

1. ПРОЕКТНАЯ ДЕЯТЕЛЬНОСТЬ

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

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

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

Существуют различные виды проектов, но в чаще всего в них выделяют следующие этапы:

исследование проблемы;

поиск возможных решений;

формулировка целей и задач конкретного проекта;

реализация;

подготовка результатов;

внедрение;

оценка результатов и рефлексия.

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

5

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

1.Виды результатов проектов.

2.Основные этапы выполнения проектов.

3.Методы изучения деятельности, выявления заинтересованных сторон и их интересов. Виды заинтересованных сторон.

4.Методы генерации и отбора решений.

5.Формулирование целей проекта. SMART-цели.

6.Виды привлекаемых исполнителей и участников проекта.

7.Методы планирования проектов.

8.Методы мониторинга, контроля и корректировки хода выполнения проекта.

9.Способы оценки результатов.

10.Методы рефлексии и совершенствования процессов.

11.Наставничество и методы фасилитации проектов.

12.Свод знаний по управлению проектами PMBoK.

Данные темы представлены в приведенных источниках [1.1–1.6].

2.ЖИЗНЕННЫЙ ЦИКЛ ПРОГРАММНОГО ПРОДУКТА

Всоответствии со стандартом ISO 12207 к основным этапам выполнения программных проектов относятся:

системный анализ и разработка спецификаций;

предварительное (эскизное) проектирование;

детальное (техническое) проектирование;

кодирование и отладка компонентов;

интеграция компонентов и комплексная отладка;

испытания и документирование;

поддержка эксплуатации;

сопровождение [2.1].

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

6

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

В частности, унифицированный процесс Rational (RUP) определяет фазы жизненного цикла (начало, проектирование, конструирование и внедрение), разделяемые вехами, а также процессы, выполняемые с различной интенсивностью, на протяжении всего жизненного цикла:

управление проектом;

моделирование производства;

управление требованиями;

анализ и проектирование;

реализация;

тестирование;

управление конфигурацией;

управление средой разработки;

распространение.

Подходы к организации жизненного цикла и процессов разработки различаются также степенью формализованности. Программные продукты, предназначенные для ответственных применений чаще создаются с помощью высокоформализованных подходов (например, ISO 12207, RUP), что не исключает возможности настройки процесса под нужды конкретного заказчика и разработчика. Другие программные продукты могут разрабатываться с помощью более гибких и низкоформализованных подходов (XP, Agile, Scrum). Зачастую такие подходы представляют собой совокупность практик и приемов для организации проекта, а не устанавливают жесткую структуру жизненного цикла. Предпринимаются также попытки создать гибридные процессы, совмещающие гибкость разработки, минимизацию требований к структуре цикла, исполнителей и артефактов и при этом наличие необходимой для развития продукта документации (например, ICONIX).

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

1.ISO 12207.

2.eXtreme Programming.

3.Rational Unified Process.

7

4.ICONIX.

5.Свод знаний по разработке программного обеспечения SWEBoK.

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

Основные источники для изучения указаны в списке литературы [2.1– 2.5]. Гибкие подходы к разработке программных продуктов Agile, Scrum, SAFe будут рассматриваются в других разделах.

3. МЕТОДОЛОГИЯ ГИБКОЙ РАЗРАБОТКИ ПРОГРАММНЫХ ПРОДУКТОВ AGILE

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

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

Подход базируется на манифесте, сформулированном 17-ю экспертами в области разработки программного обеспечения в 2001 году. Манифест провозглашает четыре базовые ценности:

люди и взаимодействие важнее процессов и инструментов;

работающий продукт важнее исчерпывающей документации;

сотрудничество с заказчиком важнее согласования условий контракта;

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

Также установлено 12 принципов Agile:

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

8

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

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

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

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

непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри команды.

работающий продукт - основной показатель прогресса.

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

постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта.

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

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

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

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

1.Scrum (рассматривается в следующем разделе).

2.Система визуализации и управления потоком работ Kanban.

3.Практики DevOps.

4.Методы оценки и планирования в Agile.

Основная информация по этим темам приведена в источниках [3.1–3.7].

9

4. ПРИНЦИПЫ БЕРЕЖЛИВОГО ПРОИЗВОДСТВА В ПРОГРАММНЫХ ПРОЕКТАХ

Бережливое производство (Lean) – концепция управления, направленная на непрерывное улучшение процессов за счет выявления, устранения потерь, оптимизации потока и стандартизации.

К основным элементам Lean относятся:

определение создаваемой ценности продукта;

анализ потока формирования ценности;

визуализация процессов;

стандартизация процессов;

применение подхода «вытягивающих» (pull) систем;

непрерывное совершенствование.

Анализ и визуализация потока формирования ценности выполняется с целью выявления и последующего устранения различных видов потерь:

перепроизводство (избыточные функции и характеристики продукта);

излишняя обработка (выполнение работ, которые не приносят ценности

ине являются необходимыми для организации процесса);

лишние действия (сбор, перемещение, копирование, передача артефактов между исполнителями);

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

ожидания (простои из-за отсутствия необходимых данных или решений);

брак (невыявленные в ходе тестирования ошибки и проблемы, требующие исправления, устранения последствий, восстановления состояния и данных);

запасы (потери времени и других видов ресурсов из-за планирования их использования с избытком).

При анализе операций и действий их разделяют на три группы:

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]