Projecto

Итеративная разработка/управление проектами: путь от хаоса к успеху

Короткие итеративные циклы в работе далеко не новы, но они лучше остальных подходят для условий неопределённости. Адаптировать продукт можно буквально на ходу. Знаменитую фразу про «украл, выпил, в тюрьму» можно перефразировать для итеративных проектов примерно так: «запланировали, сделали, переделали… переделали снова… и снова…».

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

Вместо отвлечённых примеров давайте погрузимся в детали и разложим всё по полочкам.

Определение итеративной разработки/управления проектами

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

Если сильно упростить, то это научный аналог метода проб и ошибок: попробовали концепцию, не получилось, вернулись в исходную точку, попробовали новую концепцию, получилось, двинулись дальше и так далее, от итерации к итерации.

Почти все гибкие методологии управления проектами близки к такой идеологии. Метод итераций широко применяется в Agile-подходах: Scrum, Kanban, бережливое производство (lean), Six sigma, метод критического пути и т.д.

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

Основная проблема коротких итераций – потенциальная возможность застрять в бесконечных циклах доработок, когда проект рискует превратиться в одно сплошное «вечное улучшение». Это будет состояние, похожее на «Ещё чуть-чуть, и мы точно выпустим первую стабильную версию!», которое никогда не заканчивается.

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

Итеративная разработка Vs Инкрементная

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

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

А инкрементный подход – это когда продукт проектируется таким, каким он должен получиться на выходе. В соответствии с планом (или календарным графиком) разработка разбивается на небольшие шаги (инкременты), и начинается работа. Границами инкрементов могут выступать, например, какие-то специальные самодостаточные функции или реализация подсистем. После каждого шага нет остановок или какого-то комплексного анализа. Деление на инкременты делается скорее для удобства управления. Конечный продукт планомерно обрастает новыми функциями по мере их реализации – но всё в рамках изначального генерального плана. Отклонения от плана маловероятны.

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

Из каких элементов (этапов) состоит цикл итеративной разработки

Каждая итерация включает в себя следующие этапы и элементы:

  1. Планирование (Plan)

Цель: определение задач и целей на конкретную итерацию.

Составляющие компоненты или шаги:

  1. Анализ и проектирование (Analyze & Design)

Цель: разработать архитектуру и выбрать подходящие технические решения.

Составляющие компоненты или шаги:

  1. Разработка (Develop)

Цель: реализовать намеченные цели и задачи для конкретной итерации.

Составляющие компоненты или шаги:

  1. Тестирование (Test & Review)

Цель: выявить ошибки и проверить то, что получилось, на предмет соответствия исходным требованиям (поставленным задачам/целям).

Составляющие компоненты или шаги:

  1. Демонстрация и обратная связь (Demo & Feedback)

Цель: получить фидбэк от пользователей и заказчиков (пример того, как это можно сделать в рамках подхода Voice of Customer).

Составляющие компоненты или шаги:

  1. Корректировка и доработка (Evaluate & Adapt)

Цель: улучшить (оптимизировать) продукт на основе полученных данных.

Составляющие компоненты или шаги:

∞ Начало новой итерации (заход на новый цикл)

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

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

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

  1. Гибкость и адаптивность. Вы можете вносить изменения в проект на любом этапе разработки, адаптируясь к новым требованиям и внешним условиям (буквально на ходу).
  2. Быстрое выявление и исправление ошибок. Это становится возможно благодаря этапам тестирования и сбора обратной связи, плюс в каждой итерации предусматривается место (время и ресурсы) для внесения корректировок.
  3. Возможность улучшения и усовершенствования продукта. Каждая итерация делает продукт лучше (актуальнее и конкурентоспособнее).
  4. Быстрое приближение к первой работоспособной версии продукта. Достаточно в первых итерациях поставить цель реализации минимальной жизнеспособной модели. Соответственно, работающий продукт уже можно демонстрировать заказчикам и потенциальной аудитории, собирать актуальную обратную связь. А это всегда твёрдая база для дальнейших шагов и оптимизаций.
  5. Снижение рисков. Разделение работы на небольшие циклы помогает выявлять потенциальные проблемы на ранних этапах, снижая вероятность провала всего проекта. Даже если потери будут, они будут минимальными.
  6. Повышение прозрачности процесса. И клиенты, и заказчики, и сама команда разработчиков будут видеть реальный результат своей работы, а также смогут вживую изучать все изменения и улучшения. Регулярные отчёты и обратная связь позволяют всем заинтересованным сторонам следить за ходом реализации проекта и понимать, на каком этапе находится работа.
  7. Улучшение взаимодействия команды. При итеративной разработке обсуждения проводятся чаще, а сами коммуникации становятся более продуктивными. Исполнители лучше понимают цели проекта и свои задачи. Соответственно, им становится проще находить эффективные решения и сглаживать острые углы.
  8. Возможность тестирования гипотез. Если продукт создаётся в условиях неопределённости, итеративный подход позволяет проверять идеи на практике и быстро корректировать общую стратегию.

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

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

Выводы и рекомендации

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

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

Exit mobile version