четверг, 27 августа 2015 г.

Agile или Waterfall?

У меня долго не получалось примененять гибкие методологии для управления проектами по разработке ПО. Некоторые моменты были полезны, но в целом отказаться от долгосрочного календарного планирования не удавалось. Без построения и регулярного обновления диаграммы Ганта я не мог сам себе ответить на главный вопрос заказчика и руководства: "когда же все будет готово?"

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

Инженерные и управленческие практики Agile позволяют создать команду и инфрастуктуру, в которой можно решать задачи с хорошо предсказуемой скоростью и качеством результата. Благодаря этому, управление проектом сводится к формированию линейной последовательности задач (беклог) с адекватным буфером по срокам и регулярному отслеживанию хода выполнения задач проекта. Проект может быть разделен на вехи с промежуточными результатами, может быть большим и непрерывным, это никак не влияет на управление производством. Задачи из проекта последовательно подаются в производство и выполняются командой, результат становится доступен предельно быстро.

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

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

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

А как вы организуете свои проекты?

Комментариев нет:

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

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

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