Для управления проектами используют методологии. Так называют специальные стандарты, согласно которым применяют инструменты, ставят задачи и распределяют время команды. Одна из самых востребованных методологии в IT — Agile.
Само слово обозначает не только методологию, но и философию, которая лежит в ее основе. Говоря про Agile, зачастую имеют в виду набор ценностей, по которым должна работать команда.
Основной из этих ценностей, как и следует из названия, считается гибкость. Смысл Agile в том, чтобы с легкостью адаптироваться к быстро меняющимся задачам и новым условиям.
Этим Agile отличается от своего главного конкурента — классической методологии Waterfall. Последняя завоевала популярность в середине прошлого века и до сих пор применяется в менее динамичных сферах.
Waterfall предполагает четкое следование установленному плану. Сначала команда составляет задание, потом согласовывает его, а затем идет по плану разработки и предоставляет готовый продукт.
А в 2001 году группа разработчиков сформулировала Agile-манифест, который стал новым стандартом для управления проектами в IT. Его суть сводилась к тому, чтобы создать первую версию продукта как можно быстрее, а дорабатывать ее уже потом. В том числе, и внедряя новые функции, которые изначально не были запланировали.
Для этого команда по Agile работает в режиме небольших итераций. В каждой из них они выполняют установленные задачи, а затем проводят анализ результатов. По их итогам цели могут изменяться в следующей итерации.
Их всего четыре:
Сейчас эти принципы во многом кажутся банальностью, но в тот момент, когда их сформулировали, они были инновационными и во многом определили лицо современной разработки.
В 2001 году команда разработчиков из 17 человек подписала своего рода меморандум, в который вошло 12 главных принципов. Их до сих пор используют как базис Agile.
Agile — целое семейство методологий. Но в основе всех них лежат общие принципы, которые выгодно отличаются от устаревших моделей, прежде всего, Waterfall.
В чем уникальность Agile:
Их еще называют фреймворками. Есть две самых популярных методологии на основе Agile, с которым сталкивается большинство команд в сфере IT.
Это доминирующая методология в разработке программного обеспечения. В ее основе лежат итерации или спринты — небольшие отрезки времени, в течение которых команда должна предоставить результат.
Обычно спринт проходит за 2-4 недели. В конце происходит демо — демонстрация продукта или какой-то его функции.
В классическом виде эта методология предусматривает отсутствие руководителя. Есть только Scrum-мастер, который помогает команде в работе.
Основные инструменты:
Команда в этой методологии состоит из developers (инженеров) — сотрудников, которые непосредственно работают над задачей. Обычно их меняют только по окончанию проекта.
Scrum-мастер — менеджер и учитель методологии, который помогает команде решать проблемы и задает вектор развития. К его обязанностям относятся организационные функции. Он доносит точку зрения клиента до сотрудников.
Рroduct owner — это владелец продукта. Его роль выполняет представитель заказчика или непосредственно сам клиент.
В основу этой методологии положили японскую систему с карточками, которую использовали на автомобильных производствах. Еще в 50-е годы там применяли систему досок, на которые вешали карточки со списком работ.
Сейчас Kanban знаком многим по программам — таск-трекерам, которые используются не только в IT. Это Trello или Jira.
Основа методики в том, чтобы эффективно декомпозировать большую работу на несколько маленьких задач. Таким способом происходит управление проектами.
Все задачи, которые надо решить, появляются на доске и отправляются в одну из нескольких колонок. Член команды берет задачу в виде карточки в работу, а затем двигает ее по горизонтали из одной колонки в другую в зависимости от прогресса.
Это позволяет сразу всей команде видеть, как идет работа и на каком этапе находится задача.
Главная цель такого подхода — построить своеобразный конвейер. Работникам не нужно планировать задачи и выставлять приоритеты. У них есть список задач, которые они просто выполняют.
Число колонок на доске в Kanban может быть разным. Обычно они имеют статусы: «Создано», «В работе», «На согласовании», «Выполнено» и т.д.
На карточках всегда задают сроки. Предполагается, что член команды закрывает одну задачу и сразу берет другую.
В Kanban также есть регулярные встречи, которые называют каденциями: ежедневные, ежемесячные с обзором риском, квартальные с разработкой стратегии и несколько других.
В Agile работа над проектом происходит на основе спринтов. Это небольшие отрезки времени, в течение которых команда работает над продуктом. Есть несколько стандартных этапов:
Спринты повторяются до конца процесса разработки, когда финальную версию приложения отдают заказчику.
Эта методология не зря стала одной из самых популярных на рынке. Вот список ее преимуществ.
Основное качество Agile обеспечивает львиную долю преимуществ. В отличие от устаревших методик, этот подход дает возможность отвечать на вызовы рынка. За счет гибкости, он позволяет быстро менять продукт под новые требования и перестраиваться в процессе разработки.
В классической методологии цели и задачи проекта принимают раз и навсегда. Это удобнее с точки зрения планирования, но повышает вероятность провала. С таким подходом полностью готовый продукт может оказаться невостребованным, если в его основе лежала изначально ложная гипотеза. Agile позволяет уйти от этого риска, так же как от вероятности создания приложения, которое не будет отвечать требованиям заказчика. За счет регулярных встреч и ежемесячного планирования проект проще «развернуть» на полпути и направить в нужное русло.
Гибкий подход к разработке позволяет создать готовый продукт несмотря не на что. Это делается за счет адаптации, даже если одна задача заняла слишком много времени, разработчики могут убрать другой функционал и все равно выпустить готовый продукт вовремя.
Agile дает возможность максимально использовать потенциал сотрудников. Благодаря большей автономности они несут больше личной ответственности за проект и активнее в него вовлекаются.
Планирование небольшими спринтами позволяет не только вовремя изменять продукт, но и лучше работать с ошибками. В Agile баг, появившийся в одном цикле, обычно можно починить уже в следующем, не дожидаясь сдачи всего проекта.
Эта методология позволяет уменьшить количество отчетов, которые заставляют членов команды терять время и выгорать.
У этой методологии есть и свои недостатки.
С этим бывает тяжело работать заказчикам, которым важна определенность. В некоторых сферах, где применяют строгую регуляцию, внедрение Agile может быть затруднено.
Методология предполагает, что представители заказчика тесно взаимодействуют с командой и активно погружаются в задачи. Это само по себе требует не только времени, но и квалификации. Хотя и положительно влияет на качество продукта.
В команде, работающей по Agile, сравнительно сложно поменять сотрудника. Ему нужно будет долго входить в курс дела, изучая произошедшее во всех предыдущих спринтах.
Если команда раньше не работала по Agile, то сходу внедрить методологию может быть проблематично. Зачастую для этого требуется привлекать сторонних консультантов. Без них многие команды вводят отдельные части методологии, которые не работают по отдельности.
Эта методология больше всего подходит для стартапов, небольших проектов и IT-компаний. Главноологию целиком.
Кроме IT, Agile используют в маркетинге и различных творческих сферах. Эта методология не работает в предсказуемых и типовых проектах, в которых и цель, и пути ее достижения точно определены и существуют в строгих рамках.
Если на этапе планирования можно четко описать результат и определить список работ, то использовать Agile обычно не стоит.е в них — высокий уровень неопределенности в требованиях к продукту.
В таких проектах методология позволяет использовать все плюсы и нивелировать минусы. В других компаниях Agile применяют с оговорками, так как его недостатки выходят на первый план.
В целом этот подход изначально применялся не ко всем проектам, а только к сфере IT. В настоящее время по Agile работают большинство лидеров рынка, включая Google, Adobe и Microsoft.
Но его отдельные элементы используют практически все команды разработчиков, а многие внедряют метод