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

Программное обеспечение управления проектами. Учебник

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
ГЛАВА 3. ПОДХОДЫ, СТАНДАРТЫ И МЕТОДОЛОГИИ УПРАВЛЕНИЯ ПРОЕКТАМИ
91
и подходы к управлению проектами в сфере информационных техно­логий, инновационных промышленных продуктов, информационно­технологических решений.
Agile как подход к управлению проектами возник в конце 1990-х гг. в ответ на растущие потребности ИТ-индустрии и недовольство существу­ющими методологиями разработки программного обеспечения, такими как каскадная модель (Waterfall). Традиционные методы управления про­ектами предполагали детальное планирование на начальных этапах проек­та, что затрудняло адаптацию к изменяющимся требованиям и условиям.
Agile представляет собой структурированный и итеративный подход к управлению проектами, который позволяет командам адаптироваться к изменениям и быстро реагировать на новые требования. Это реализует­ся через разделение проекта на короткие циклы (итерации или спринты), в ходе которых достигаются конкретные результаты.
Agile может рассматриваться как семейство гибких фреймворков и подходов к выполнению проектов и как философия и система ценно­стей, сформулированных в Agile Manifesto.
Внутри agile существуют разнообразные фреймворки и методы, в ко­торых конкретизируется и структурируется подход agile к управлению проектами. Каждый из этих фреймворков предоставляет набор правил и процессов, которые команды могут использовать для эффективного выполнения проектов. Наиболее распространённые из них представлены в таблице 3.6.
Наиболее распространенные фреймворки и методы agile
Название
подхода
RAD
RUP
Rapid Application Development (быстрая разработка приложений) акцентирует внимание на быстром прототипировании и итератив­ной доставке результата в условиях жёстких ограничений по сро­кам и бюджету и нечётко определённых требований к продукту
Rational Unified Process (унифицированный процесс фирмы Rational) – гибкая методология разработки программного обе­спечения, разработанная компанией Rational Software (теперь часть IBM). Работа организована по четырем основным фазам: инициация, проработка, конструирование и внедрение, – и ак­центирует внимание на адаптивности, итеративности и объектно­ориентированном подходе. RUP также включает в себя ряд ролей, артефактов и деятельностей, позволяющих командам ориентиро­ваться на лучшие практики при выполнении проектов
Описание подхода
Таблица 3.6
Программное обеспечение управления проектами
92
XP
Extreme Programming (экстремальное программирование) акцен­тирует внимание на гибкости и способности быстро адаптировать­ся к изменениям требований клиентов. XP подчеркивает важность общения, простоты и обратной связи. Элементы XP включают парное программирование, проведение обширного кода-ревью, модульное тестирование всего кода, отказ от программирования функций до тех пор, пока они действительно не понадобятся, а также частое общение с заказчиком и программистами
Окончание табл. 3.6
DSDM
SCRUM Фреймворк для организации гибкого рабочего процесса, акцен-
Kanban
Scrumban
Dynamic Systems Development Method (метод разработки дина мических систем) основан на принципах RAD, обеспечивает структурированный подход к проектам и акцентирует внимание на активном участии пользователей, итеративной разработке и бы­строй доставке
тирует внимание на итеративном и инкрементном процессе, ко­торый заключается в командном подходе, фокусировке на цели каждой итерации и нестандартном распределении обязанностей внутри коллектива. Команды работают в спринтах (обычно 2– 4 недели), по окончании которых предоставляется рабочий ин кремент продукта. Применяется в разных сферах бизнеса
Система планирования для бережливого производства (lean), по­зволяющая реализовать принцип «точно в срок» (just-in-time, JIT). Kanban акцентирует внимание на визуализации работы и опти­мизации потока задач. Для мониторинга статуса задач и поиска узких мест в процессе работы используется доска kanban
Гибридный подход, объединяющий элементы scrum и kanban. Он сохраняет структуру спринта Scrum и роли в команде и в то же время объединяет методы визуального управления kanban, огра­ничения на WIP и приверженность потоку, побуждая команды постоянно модифицировать процессы, принимать во внимание меняющиеся приоритеты и обратную связь
-
-
Agile в широком смысле не является отдельной методологией, это со бирательное название различных гибких методов и практик, основанных на гибких ценностях и помогающих команде проекта:
– сделать фокус на нужды и цели заказчиков и клиентов; – упростить организационную структуру проекта и его процессы; – выполнять работу короткими циклами; – быстро создавать ценный для клиента результат, чтобы получить
обратную связь;
– принимать полномочия и ответственность за результат и демон-
стрировать высокий уровень самоорганизации.
-
ГЛАВА 3. ПОДХОДЫ, СТАНДАРТЫ И МЕТОДОЛОГИИ УПРАВЛЕНИЯ ПРОЕКТАМИ
93
Как философия и система ценностей agile – образ мышления, опре­деляемый на основе ценностей agile- манифеста, направляемый принци­пами и реализуемый в нескольких разнообразных практиках. При этом agile- практик выбирает их, ориентируясь на свои потребности. Agile – это не конкретные процессы и даже не элементы процессов, а высокоуров­невые ценности, следование которым повышает скорость разработки и бизнес- эффект от разрабатываемых продуктов. Agile-манифест включает четыре ключевые ценности (рис. 3.8) и 12 принципов.
Рис. 3.8. Ценности agile
Успех agile- проекта прежде всего зависит от квалифицированных специалистов и их взаимодействия, а не от строгого следования установ­ленным процессам и использования инструментов. Приоритет отдается созданию работающего продукта, а не написанию обширной докумен­тации. Успешное выполнение agile- проекта требует постоянного взаи­модействия и сотрудничества с заказчиком, а не жёсткого следования контрактным обязательствам. Agile-проект должен быть гибким и го­товым к изменениям требований, в отличие от классических подходов, основанных на неукоснительном следовании изначально утверждённому плану.
Двенадцать уточняющих принципов вытекают из этих ценностей:
1)
наивысшим приоритетом является удовлетворение заказчика по­средством ранней и непрерывной поставки ценного программного обеспечения: регулярные релизы продукта, приносящие ценность заказчику;
2)
приветствуются изменения требований даже на поздних стадиях разработки: agile- методологии позволяют адаптироваться к изме­няющимся требованиям;
3)
частая поставка работающего программного обеспечения: рели­зы продукта происходят с периодичностью от нескольких недель до нескольких месяцев, более короткий срок предпочтительнее;
Программное обеспечение управления проектами
94
4)
ежедневное сотрудничество бизнеса и разработчиков: бизнес­эксперты, аналитики и разработчики должны работать вместе на про­тяжении всего проекта;
5)
над проектом должны работать мотивированные профессионалы: ко­манде необходимо создать условия, обеспечить поддержку и доверие;
6)
непосредственное общение является наиболее эффективным и дей­ственным методом передачи информации внутри команды: личное общение предпочтительнее письменной документации;
7) работающий продукт
8)
поддержание постоянного темпа разработки: участники agile- проекта
–
основной показатель прогресса;
должны иметь возможность постоянно поддерживать ритм работы над проектом;
9)
постоянное внимание к техническому совершенству и качеству про­ектирования повышает гибкость проекта;
10)
простота как возможность минимизации лишней работы крайне необходима: процессы упрощаются для повышения эффективности;
11)
самоорганизующиеся команды создают лучшие архитектуры, тре­бования и дизайн: команда самостоятельно организует свою работу;
12)
команда должна систематически анализировать способы улучшения эффективности и корректировать стиль своей работы: регулярные ретроспективы и внесение изменений для улучшения процессов.
Несмотря на то что принципы agile впервые возникли в отрасли раз­работки программного обеспечения, за последние годы они нашли при­менение во многих других предметных областях.
Преимущества и недостатки agile представлены в таблице 3.7.
Преимущества и недостатки agile
Преимущества agile Недостатки agile
Гибкость и адаптивность: agile по­зволяет быстро адаптироваться к изменяющимся требованиям и при­оритетам, что особенно важно в дина­мичной бизнес- среде
Улучшенное взаимодействие с кли­ентами: постоянное сотрудничество с заказчиком обеспечивает лучшее понимание его потребностей и ожи­даний, что приводит к более точным результатам
Таблица 3.7
Сложность масштабирования: приме­нение agile в крупных организациях и больших проектах может быть ус­ложнена из-за необходимости коор­динации множества команд
Требует высокой вовлеченности кли­ента: успех agile зависит от постоян­ного участия и вовлеченности заказ­чика, что не всегда возможно
ГЛАВА 3. ПОДХОДЫ, СТАНДАРТЫ И МЕТОДОЛОГИИ УПРАВЛЕНИЯ ПРОЕКТАМИ
Быстрая поставка: частые итерации и релизы позволяют быстрее достав­лять работающие части продукта, обеспечивая раннюю окупаемость и тестирование на практике
Сложность планирования и про­гнозирования: agile ориентирован на адаптивное планирование, что может затруднить долгосрочное про­гнозирование и оценку бюджета
95
Окончание табл. 3.7
Повышенное качество продукта: по­стоянное тестирование и интеграция позволяют обнаруживать и исправлять ошибки на ранних стадиях разработки
Мотивация и вовлеченность коман ды: самоорганизующиеся команды и высокая степень автономии спо­собствуют повышению мотивации и ответственности сотрудников
Постоянное улучшение: с помощью ретроспектив и анализа команды по­стоянно совершенствуют свои про­цессы и практики
Возможные проблемы с документа­цией: из-за фокуса на работающий продукт документация может быть недостаточно полной или подробной
-
Подходит не для всех проектов: agile может быть менее эффективным для проектов с четко определёнными тре­бованиями и сроками или для проек­тов в высоко регулируемых отраслях
Выделяют две группы подходов в рамках agile: 1) agile, основанный на итерациях, 2) agile, основанный на потоке. В первом случае команда работает в рамках итераций (временные рамки имеют одну и ту же дли­тельность), каждая из которых дает работоспособный, протестированный результат (рис. 3.9).
Рис. 3.9. Agile, основанный на итерациях
Команда проекта может работать над несколькими свой ствами сразу, но чаще всего в первую очередь реализуются наиболее приоритетные свой ства, которые передаются заказчику по завершении итерации, после чего команда переходит к работе над следующими по важности функ­циями. При этом никогда не производится одновременная работа над всеми выявленными требованиями.
В потоковом agile команда берет для работы свой ства из бэклога в за­висимости от своей ресурсной возможности начать работу, не опираясь на расписание итераций, т. е. временные рамки блоков различны (рис. 3.10).
Программное обеспечение управления проектами
96
Рис. 3.10. Agile, основанный на потоке
Команда определяет для себя поток работ с помощью столбцов доски задач и управляет незавершенными работами в каждом столбце. При этом сохраняется небольшой объём незавершенных работ, чтобы было легче определить проблемы на раннем этапе и сократить объём доработок при необходимости внесения изменений.
Agile, основанный на итерациях, характерен для scrum, а аgile, осно­ванный на потоке, – для kanban. Рассмотрим их более подробно.
Scrum – фреймворк, который был разработан в 1990-х гг. Кеном Швабером и Джефом Сазерлендом для сферы разработки программно­го обеспечения. В современном управлении проектами scrum успешно применяется для решения комплексных проблем в самых разнообразных предметных областях: от маркетинга до организационных изменений, от научных исследований до разработки инновационных ИТ-решений.
В основе scrum лежит три принципа:
1.
Прозрачность (transparency): все аспекты процесса разработки долж­ны быть видимы для всех участников проекта. К таким аспектам можно отнести общие цели, текущий статус работы, препятствия, которые могут возникнуть.
2.
Инспекция (inspection): регулярный обзор и анализ текущего состо­яния продукта и процесса для выявления отклонений от плана или стандартов качества.
3.
Адаптация (adaptation): возможность и готовность корректировать продукт и процесс на основе выводов, полученных в ходе инспекций, чтобы постоянно улучшать эффективность и качество.
Этот процесс цикличен и повторяется с необходимой периодично­стью на ежедневной, еженедельной или ежемесячной основе, что по­зволяет обнаружить потенциальные возможности, возникающие в ходе выполнения работы. Все решения по проекту принимаются на основе данных, собранных к текущему моменту.
Scrum состоит из ролей, событий, артефактов и правил (рис. 3.11) и от­носится к итеративным подходам для поставки работающего продукта.
ГЛАВА 3. ПОДХОДЫ, СТАНДАРТЫ И МЕТОДОЛОГИИ УПРАВЛЕНИЯ ПРОЕКТАМИ
Рис. 3.11. Элементы scrum
97
Основа scrum – это scrum- команда, для которой предусмотрено три
роли:
1)
владелец продукта (product owner) отвечает за бизнес- результат команды, определяет то, что необходимо сделать в продукте, при­оритизирует задачи и требования, взаимодействует с клиентами, пользователями и другими заинтересованными лицами для сбора требований и получения обратной связи;
2)
скрам- мастер (scrum master) отвечает за то, чтобы команда работала эффективно, и воспитывает в ней самоорганизацию, помогает ко­манде решать проблемы, которые мешают её работе, обучает прин­ципам и практикам scrum, обеспечивает соблюдения всех процессов и ритуалов scrum.
3)
команда разработки (development team) включает от трёх до девяти человек, которые непосредственно работают над задачами, опреде­лёнными и приоритизированными владельцем продукта, а также проводят регулярную оценку своей работы.
Команда разработки состоит из профессионалов, которые создают продукт и его инкремент. Команда разработки самостоятельно организует свою работу и управляет ею (получаемая синергия влияет на оптимиза­цию работы и эффективность команды разработки).
Команда разработки в scrum имеет следующие характеристики:
– cамоорганизация: команда самостоятельно принимает решения
о том, как выполнять задачи, распределение ролей и обязанностей происходит без внешнего вмешательства;
– кросс- функциональность: обладает полным набором компетенций,
необходимых для создания и развития продукта;
– размер команды: оптимальный размер – от трех до девяти человек,
слишком большие команды могут быть менее эффективными из-за сложности коммуникаций;
Программное обеспечение управления проектами
98
– ответственность: каждый участник команды отвечает за свой
вклад, но команда несет коллективную ответственность за резуль­тат и достижение целей спринта;
– вовлеченность в проект: все члены команды работают над проек-
том на постоянной основе;
– коллаборация и взаимодействие: в команде поощряется активное
взаимодействие и обмен знаниями, ежедневные встречи помогают синхронизировать усилия и решать возникающие проблемы;
– постоянное улучшение: команда регулярно проводит ретроспек-
тивы для анализа своей работы и выявления возможностей для улучшения.
Структуру процесса работы над scrum- проектом можно представить в виде последовательности мероприятий и соответствующих им арте­фактов (рис. 3.12).
Рис. 3.12. Примерная схема ведения проекта по scrum
При работе над проектом владелец продукта на регулярной основе проводит встречи с заказчиком и собирает его пожелания по функцио­налу продукта. Все требования, задачи, функции, улучшения и другие элементы продукта владелец продукта собирает в артефакте, который называется «бэклог продукта». В отличие от технического задания бэклог продукта может меняться на всем протяжении работы над проектом.
Каждое мероприятие в scrum имеет заранее определённую макси­мальную продолжительность, т. е. ограничено по времени. Вся работа в scrum разбивается на короткие итерации, спринты, каждый из которых длится от одной до четырех недель. При этом продолжительность по­стоянна для всех спринтов в проекте. В конце каждого спринта команда разработки представляет заказчику ценный для него новый функционал продукта. Спринты идут друг за другом без перерывов. Данный процесс
ГЛАВА 3. ПОДХОДЫ, СТАНДАРТЫ И МЕТОДОЛОГИИ УПРАВЛЕНИЯ ПРОЕКТАМИ
99
связывается воедино scrum- событиями, которые представляют собой встречи команды: планирование спринта, ежедневный scrum, обзор спринта и ретроспективу.
Планирование спринта необходимо для определения состава работы, которая будет выполнена в спринте. Максимальная продолжительность мероприятия по планированию спринта – четыре часа для двухнедель­ных спринтов и восемь часов для месячных спринтов. Модератором мероприятия является scrum master, он следит за продолжительностью и своевременным закрытием. Scrum-команда обсуждает функциональ­ность, которую можно разработать во время спринта. Владелец продукта представляет элементы бэклога, объясняет их значение и приоритет. Команда обсуждает каждый элемент, задает вопросы и уточняет детали. Scrum-команда формулирует цель спринта и решает, как именно вы­бранный функционал встроится в разрабатываемый продукт. Выбранные для спринта элементы бэклога в совокупности с планом их доставки называются бэклогом спринта. За оценку размера элементов бэклога в scrum отвечает команда разработки. Никто не может навязать ей свою оценку. В scrum используется относительная оценка элементов бэклога путем сравнения их друг с другом по сложности, усилиям и времени. Этот подход позволяет команде оценивать задачи не в абсолютных чис­лах (например, в часах или днях), а в относительных значениях, таких как story points или t-shirt sizes. К концу совещания по планированию спринта работа разделяется на задачи продолжительностью в один день или меньше.
Ежедневный scrum – это 15-минутное совещание команды, которое проводится каждый день в одно и то же время с целью планирования теку­щей работы и определения потенциальных проблем. Продолжительность встречи от 15 до 20 минут. Scrum-мастер координирует такие совещания, но ответственность за проведение ежедневного scrum несет команда.
В конце каждого спринта проводят обзор спринта (sprint review, обзор итерации), на котором демонстрируется новая функциональность про­дукта и команда получает обратную связь от заинтересованных сторон. В данном мероприятия обычно участвует вся команда scrum, а также мо­гут быть приглашены стейкхолдеры. Продолжительность обзора сприн­та – один час на каждую неделю спринта. Результатом обзора спринта становится обновленный бэклог продукта, и намечаются элементы бэкло­га для следующего спринта.
Ретроспектива спринта проводится после обзора спринта, перед пла­нированием следующего спринта. Ретроспектива помогает команде раз­работки проанализировать свою работу и обсудить проблемы, возникшие во время спринта. Цель этого мероприятия – создание конкретного плана
Программное обеспечение управления проектами
100
улучшений в процессе работы команды. В отличие от обзора спринта, где обсуждают продукт, на ретроспективе обсуждаются процессы, взаи­модействия и инструменты работы в команде.
Артефактами в scrum называют ключевые документы и результаты, которые создаются и поддерживаются в процессе работы над проектом. Артефакты обеспечивают прозрачность процессов, помогают команде следовать плану и оценивать прогресс.
К основным артефактам относят:
1.
Бэклог продукта (product backlog) – приоритизированный список всех функций, требований, улучшений и исправлений, которые не­обходимо реализовать в продукте проекта. Бэклог продукта управля­ется владельцем продукта. Он является динамическим и регулярно обновляется по мере получения новой информации и обратной связи от заказчиков и клиентов.
2.
Бэклог спринта (sprint backlog) – это набор задач и элементов из бэклога продукта, выбранных для реализации в текущем спринте. Бэклог спринта отвечает на вопросы: зачем, что и как делать в рам­ках текущего спринта для реализации бэклога продукта. Элементы для бэклога спринта выбираются командой во время планирования спринта и детализируются на более мелкие задачи.
3.
Инкремент (increment) – совокупность всех завершенных элементов бэклога продукта за текущий и все предыдущие спринты. Каждый инкремент должен быть работающим и потенциально готовым к релизу, обеспечивая наращивание функциональности продукта.
Вспомогательные артефакты помогают управлять ожиданиями в про­екте. Все участники процесса – scrum- команда, заинтересованные лица – должны обладать общим контекстом о том, куда движется проект и что выполняется в настоящее время. Для управления ожиданиями помогают метрики и инструменты:
1. Определение завершенности (definition of done) – набор критериев, которым должен соответствовать элемент бэклога продукта (функ­циональность, требование, задача, баг), чтобы считаться полностью завершенным. Определение завершенности помогает команде под­держивать качество и согласованность работы.
2.
Диаграмма сгорания (burndown chart) – графическое представление оставшегося объёма работы (задач) по мере прохождения спринта. Диаграмма помогает команде и заинтересованным лицам проекта отслеживать прогресс и прогнозировать завершение задач.
3.
Доска задач (task board), или scrum- доска, которая используется для визуализации статуса задач в спринте. Такая доска имеет колонки для разных этапов работы, которые соответствуют этапам спринта:
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]