Какой тип жизненного цикла оптимален для вашего проекта?

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


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

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

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

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

Рассмотрим самые популярные типы жизненных циклов.

Водопад


Этот традиционный подход использовался годами и давно доказал свою состоятельность. Министерство обороны США активно способствовало продвижению этого метода, начиная с публикации Стандарта 2167A в 1998 году.

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

Стандартные фазы каскадного жизненного цикла показаны на следующей диаграмме:


Итеративный и инкрементальный типы


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

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


Гибкий тип


Гибкая методология возникла благодаря спросу на программные приложения, способные угнаться за быстро развивающимся интернетом. В некотором роде, гибкие методы являются разновидностью итеративного жизненного цикла, где результаты оцениваются в несколько этапов. Основное различие между ними заключается в том, что гибкая методология позволяет сократить время разработки с месяцев до недель. Компании, практикующие эти методы, способны поставлять программные продукты и обновления в течение довольно короткого срока. Более того, эта концепция затрагивает многие вопросы, которые лишь опосредованно касаются разработки: сотрудничество, документацию и многое другое.

Схема MSF демонстрирует разнообразные компоненты гибкого жизненного цикла:


Другие типы


Существуют и другие методы и методологии, которые практикуются достаточно широко, в том числе, разработка через тестирование (Test Driven Development), RUP или Cleanroom. При ближайшем рассмотрении, все они могут классифицироваться, как разновидности каскадного подхода, основанные на повторяемых действиях и строго определенных границах между фазами, или как итеративные и гибкие методы с гибкими параметрами завершения этапов.

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

1. Насколько стабильны требования к проекту?


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

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

2. Кто является конечным пользователем системы?


Уделите некоторое время изучению пользователей и заинтересованных сторон. Кто они? Что их объединяет? Как они влияют на проект? Контролируемая группа конечных пользователей может помочь вам определить требования к проекту и управлять изменениями. Это значит, что вы можете достичь определенной стабильности требований и использовать каскадный подход.

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

Например, когда Google запустил бета-версию Gmail и сопутствующих продуктов — Google Docs и Calendar, – необходимо было выяснить реакцию пользователей и улучшить приложения в соответствии с этой информацией. Microsoft, разработчик самого популярного в мире ПО, Windows и Office, также пользовался гибкой методологией при разработке.

Согласно Microsoft Solution Framework, практикующей гибкий подход, «короткие итерации позволяют уменьшить погрешность первоначальных оценок и обеспечивают получение быстрой обратной связи для корректировки плана проекта. Каждая итерация должна стабилизировать определенную часть системы». Microsoft и Google выбрали гибкую методологию в связи с большим разнообразием конечных пользователей.

3. Насколько жесткие временные рамки имеет проект?


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

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

4. Каков масштаб проекта?


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

5. Где базируется проектная команда?


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

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

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

6. Какие ресурсы наиболее важны?


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

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

ExecutiveBrief
  • ,
  • ,
  • ,
  • avatar
  • +1
  • 3102

0 комментариев

Оставить комментарий

Комментировать при помощи:


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.