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

О том, что это такое и чем Agile отличается от привычных подходов к управлению проектами, рассказывает старший инженер по тестированию компании «Аплана» и преподаватель корпоративного университета — Роман Дмитриев.

Многие инновационные компании на протяжении почти двух десятков лет используют Agile для совершенствования своей работы. О том, что это такое и чем Agile отличается от привычных подходов к управлению проектами, рассказывает старший инженер по тестированию компании «Аплана» и преподаватель корпоративного университета — Роман Дмитриев.

Что такое Agile

Agile (с англ. «гибкий») — это образ мышления со своей системой ценностей, для реализации которых на практике применяют различные фреймфорки управления рабочим процессом. Фреймворк — это набор базовых элементов и правил, своего рода каркас, на котором строится процесс.

Agile похож на философию. Он содержит в себе ряд установок, которым следуют, и которые влияют на поведение. Например, буддисты верят в возможность достижения просветления. Для этого они медитируют, практикуют умеренность и стараются не причинять вреда другим. А евангелисты Agile убеждены, что работающие продукты выпускают команды самостоятельных профессионалов.

Термин Agile появился в 2001 году, когда семнадцать разработчиков (включая создателей фреймворка Scrum — Джеффа Сазерленда и Кена Швабера) собрались на американском курорте Сноубёрд, чтобы обсудить легковесные методы разработки ПО. Результатом встречи стало создание Agile-манифеста, состоящего из четырех ценностей и 12 принципов. Спустя время, все легковесные методы разработки, удовлетворяющие манифесту, стали называться гибкими.

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

Звучит довольно сложно, поэтому объясню некоторые термины. Итак, эмпирическое управление — метод проб и ошибок. Руководитель действует опытным путем, получает некий результат, анализирует его и дальше действует исходя из анализа. Итеративный подход (от англ. iteration — «повторение») — повторение одной и той же последовательности действий из раза в раз. Это можно представить в виде замкнутого цикла, который повторяется из раза в раз. Например, итерацией в Scrum являются спринты, длительность которых может быть от одной до четырех недель.

Инкрементальный подход (от англ. increment — «увеличение») — частичная реализация и медленное наращивание функциональности, дополнительных характеристик. Фактически, это «приращивание» чего-либо к чему-то уже имеющемуся. В данном контексте это означает, что с каждым витком итерации происходит «прирост» функциональности продукта. Динамическое образование требований означает, что требования формируются в процессе, они не статичны, а постоянно меняются.

Agile-методология управления проектами или гибкий подход

Разобраться в том, что из себя представляет Agile, действительно, может быть непросто. Особенно, если учесть, что в сети часто встречаются статьи с заголовками: «Agile-методология разработки» или «Agile-методология управления проектами». Это говорит о том, что не все верно понимают его значение. Agile — это не методология. Возможно, ошибка появилась при переводе, а затем ее подхватили и растиражировали. В англоязычных источниках ничего об этом нет.

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

Agile и Waterfall

Раньше превалировали более тяжеловесные модели. Одной из самых распространенных для управления процессом разработки ПО была Waterfall или «Каскадная модель» (среди других — V-модель, спиральная модель и прочие). Этот подход хорошо работал для больших команд и позволял справляться с невозможными до этого проектами.

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

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

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

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

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

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

Компании, внедрившие Agile

Если посмотреть, какие западные IT-компании используют Agile в своих бизнес-процессах, то получится список лидеров Кремниевой долины: Apple, Facebook, Google, Amazon, Netflix, Uber, Airbnb.

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

Среди российских компаний тоже немало приверженцев Agile, например, Сбербанк (Agile-технологии в Сбербанке трансформировались и приобрели свой формат — Sbergile), МВидео, МТС, Яндекс и прочие. Agile применяется не только в IT, но и в производственном секторе. Например, Toyota, Procter&Gamble и многие другие уже оценили все преимущества Agile для управления проектами и продолжают развиваться в этом направлении.

Советуем прочесть

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