Методологии проектного управления

r

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

Waterfall

Основные этапы

Аналитика (определение требований)

r

Самый первый этап, во время которого определяют и анализируют требования проекта: системные требования, требования к ПО, пожелания заказчика и т. д. и т. п. На основе всей этой информации создают входную документацию, где описывают, что должно получиться в итоге (не важно, что это будет — софт или авианосец), но не то, как именно это всё нужно будет делать. Короче, на этом этапе пишут первую, обобщённую, версию ТЗ.

Проектирование

r

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

Разработка (реализация)

r

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

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

r

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

Эксплуатация и техническая поддержка

r

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

Манифест методологии

Следуйте правилам

Нет ТЗ (технического задания)— нет продукта

Чем подробнее ТЗ, тем лучше продукт

Следите, чтобы не было изменений

Основные принципы

Жесткая последовательность этапов разработки

переход к новому этапу только после успешного завершения предыдущего

фиксирование стоимости продукта

заказчик не привлекается к непосредственному процессу разработки

изменения могут быть внесены только после завершения всего процесса разработки

Преимущества

Удобная отчетность

Оценка стоимости и сроков проекта

Понятная и проста] структура процесса разработки

Стабильность задач

Недостатки

Лишенный гибкости продукт

"Стойкость" к изменениям

Инерционность

Повышенный риск

Выбор методологии

Подходит компаниям, если

большая часть или вся работа над проектом проводится на аутсорсе

есть четкая концепция продукта

нет ограниченности во времени

создание бизнеса на соблюдении строгой последовательности выполнения задач

НЕ подходит команиям, если

компания хочет создать инновационный продукт или крупный проект

компания не уверена в концепции

финансовые ресурсы не являются ключевым ограничением

гибридная методология

r

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

Agile

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

Основные принципы

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

r

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

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

r

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

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

r

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

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

r

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

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

r

Agile-команды успешны, потому что в них работают только те люди, которые необходимы для проекта. Если участники Agile-команды получат поддержку, возможность работать вместе и инструменты, необходимые для работы, все остальное приложится.

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

r

Все мы знаем, что главное в управлении проектами — личное сотрудничество. Этот принцип применим и во времена «новой нормы», при гибридных и удаленных моделях работы. Zoom и Teams — отличная альтернатива телефонным звонкам и электронной почте, а в ключевых точках проекта возможны и личные встречи команд.

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

r

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

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

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

r

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

Простота как искусство сократить до минимума лишнюю работу крайне необходима

r

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

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

r

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

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

r

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

Манифест Agile

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

r

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

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

r

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

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

r

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

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

r

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

Преимущества

Короткие и понятные итерации

Высокая степень вовлеченности исполнителей, организаторов и заказчиков проекта

Во главе угла стоит рабочий продукт как основной показатель прогресса проекта

Минимизация рисков, благодаря гибской системе внесения изменений

Недостатки

Стимулирование постоянных изменений проекта

Повышенные требования к квалификации и опыту команды

Философский характер методологии

r

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

Сложность подсчета итоговой суммы работы

факторы выбора

Agile подходит компаниям, если

start -up

работает опытная команда

нужно быстро получить рабочую версию

заказчик выступает в качестве партнера

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

НЕ подходит компаниям, если

компания не готова тратить доп ресурсы на налаживание коммуникаций

продукт должен быть создан к конкретному сроку

бюджет ограничен

нужна документация по всем процессам

Семейство методов

Scrum

ключевые шаги в технологии

выбор владельца продукта

сбор команды проекта

поиск скрам-мастера

составление эклог продукта

планирование спринтов

организация ежедневных пятнадцатиминутных "мин-апов"

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

проведение ретроспективы

основные элементы

Product Backlog

r

список требований к проекту

Sprint Backlog

r

список требований, которые нужно выполнить в ближайший спринт

Sprint Goal

r

цель спринта

Sprint Burndown Chart

r

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

преимущества

самоорганизованные команды

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

легко адаптировать продукт к рынку

легко маштабируется

подходит для всего

недостатки

требуется экспертиза в команде

страх отпустить вожжи

если известны все требования к продукту - нецелесообразно

требует дополнительной роли scrum - мастера

плохо подходит для больших команд

Extreme

Programming (XP)

Lean

RUP

Crystal

DSDM

FDD

Kanban

цель - получать готовый качественный продукт вовремя

преимущества

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

r

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

быстрое понимание узких мест системы

обеспечение качества

недостатки

большой уровень гибкости, можно уйти не туда

рушит российский менталитет ТК РФ

r

человек в рамках рабочего дня может быть не загружен на 100%, то есть не все восемь часов cотрудник должен что-то делать.

Какую методологию выбрать?