Agile
Оглавление
ОПРЕДЕЛЕНИЕ
Agile — это подход к управлению проектами, который помогает быстрее создавать качественные продукты и правильно их развивать. Такой результат становится возможным благодаря гибкости рабочих процессов и эффективному взаимодействию всех заинтересованных сторон: клиентов, заказчиков и команды проекта.
Например, чтобы продукт был полезен клиентам, заказчики и команда проекта должны развивать его в правильном направлении, отвечая на запросы пользователей и учитывая их потребности. Команда проекта сможет развивать и масштабировать продукт, не полагаясь на ошибки и технические ограничения, если он будет работать по отраслевым стандартам: планировать внедрение с учетом возможных точек роста и рисков.
Важно понимать, что гибкий подход противоположен каскадному (последовательному) способу выполнения проектов. Каскадный подход не работает, когда команда создает что-то совершенно новое, чего раньше не было. Если попытаться заранее составить план и строго его придерживаться, есть риск застрять на каком-то этапе или не получить в итоге то, что нужно.
Поэтому в ИТ важен пошаговый, гибкий подход к разработке. Это позволяет быстро тестировать гипотезы и проверять их с клиентами на средних этапах. И если что-то изменится, то подстройте свои планы и приоритеты под эти изменения. Гибкость и адаптируемость, эффективность и качество — ключевые черты Agile-подхода. Но важна и скорость, ведь если слишком долго работать над проектом и постоянно откладывать запуск, то терпению заказчиков или финансированию может прийти конец.
Но скорость ради скорости не в духе Agile. Соблюдение основных принципов позволяет команде достичь оптимального баланса между тремя основными критериями: удовлетворенность пользователей, скорость работы, качество работы. По сути, вы должны найти общую область соприкосновения между «Делай правильно» (то, что нужно пользователю и заказчику), «Делай правильно» (не используй костыли, пиши хороший код сейчас с глазом на глаз в будущее) и «Делай быстро» (не задерживать релизы, стараться опередить конкурентов).
Помимо прочего, такая расстановка приоритетов способствует созданию здоровых отношений между командой и клиентами.
На самом деле цель Agile — поддерживать баланс между интересами клиентов, потребностями пользователей и возможностями команды. Основное отличие Agile-управления проектами от других подходов заключается в том, что команду разработчиков мотивируют не рабочие процессы, а высокоуровневые ценности.
ДЛЯ ЧЕГО НУЖНА МЕТОДОЛОГИЯ ГИБКОЙ РАЗРАБОТКИ?
Итак, для чего же применяется методология Agile?
СИЛЬНЫЕ И СЛАБЫЕ СТОРОНЫ AGILE
Почему Agile так популярен среди менеджеров и подрядчиков? Потому что такой подход выгоден для всех участников рабочего процесса:
- Вся команда свободна в принятии решений во всем, что касается проекта: выбирает технологии, архитектурные решения, подходы и практики.
- Каждый разработчик получает возможность работать с технологиями, которые ему интересны и влияют на продукт, и тем самым чувствовать смысл своего труда и собственную ценность для команды.
- Бизнес получает современный продукт, отвечающий потребностям пользователя. Сотрудникам приятно и интересно работать, рабочие процессы мобильны и гибки.
- Пользователь получает действительно полезный продукт, на развитие которого он может влиять. Продукт своевременно обновляется: появляются новые функции, устраняются ошибки.
- Все в плюсе: проект заканчивается качественным продуктом, который легко изменить. Пользователи с удовольствием им пользуются, а команда создателей мотивирована на продолжение своей работы.
Напомним основные вызовы, к которым должна быть готова Agile-команда:
- Проект становится менее предсказуемым. Из-за этого иногда сложно точно оценить сроки выполнения задач и ресурсы, которые необходимо будет использовать.
- Взаимодействие с клиентами и общение внутри команды займет гораздо больше времени, чем до Agile. Быстро протестировать и согласовать результаты можно только тогда, когда все на связи.
- Подготовка документации усложнится из-за того, что в Agile-парадигме проект и его требования меняются в процессе работы над продуктом. Если вы хотите нанять новых сотрудников в середине проекта, заставить их начать работу может быть сложно.
- Проект может легко пойти не так, потому что Agile не предполагает тщательного планирования до начала работы и предполагает изменение требований к продукту в процессе его создания. Во избежание этого важно выстроить однозначную и регулярную коммуникацию с заказчиком. Полностью устранить недоразумения вряд ли удастся, но свести их количество к минимуму можно.
КОМУ ПОДОЙДЁТ AGILE
Когда команда состоит из нескольких человек, для работы достаточно простого Telegram-чата. Но чем больше команда, тем сложнее эффективно организовать ее работу. И нужно использовать более сложные инструменты. Вам стоит попробовать Agile, если:
- Команда путается в задачах: трудно определить, где чья зона ответственности, части команды плохо общаются друг с другом и теряют важную для работы информацию.
- Agile помогает поддерживать прозрачность рабочих процессов даже для очень больших команд: Kanban, Scrum — какую бы реализацию вы ни выбрали, гибкое управление позволит вам быстро перемещаться по статусам задач, отслеживать ход проекта и четко понимать, кто за что отвечает.
- Вы ограничены жесткими временными рамками: например, вам нужно запустить новый продукт раньше конкурентов. Методы Agile помогают минимизировать последствия неверных решений и вовремя изменить направление проекта.
- Результат проекта заранее неизвестен: например, вы что-то изобретаете или запускаете инновационный стартап. Agile позволит вам проложить наилучший путь к осуществимому продукту, несмотря на изменение цели в процессе.
Главный критерий, по которому Agile-менеджмент может вам не подойти, — это неготовность команды или партнеров к использованию Agile. Основной принцип этого подхода — тесное взаимодействие всех участников рабочего процесса. Работа не пойдет, если кто-то не согласится на контакт.
ПРИНЦИПЫ AGILE
Agile — это семейство процессов разработки, а не единый подход к разработке программного обеспечения, и он определяется Манифестом Agileagila. Agile не включает практики, но определяет ценности и принципы, которыми руководствуются команды.
Agile Manifesto был разработан и принят 11-13 февраля 2001 года в The Lodge at Snowbird Ski Resort в горах Юты. Манифест Agile содержит 4 основные идеи и 12 принципов. Важно отметить, что Agile Manifesto не содержит практических советов.
Ключевые идеи:
- люди и взаимодействие важнее процессов и инструментов
- рабочий продукт важнее исчерпывающей документации;
- сотрудничество с заказчиком важнее согласования условий договора;
- Готовность к изменениям важнее, чем следование первоначальному плану.
- Основные принципы Agile Manifesto:
- Наивысшим приоритетом является удовлетворение потребностей клиентов за счет своевременной и бесперебойной поставки ценного программного обеспечения;
- изменение требований приветствуется даже в конце разработки (это может повысить конкурентоспособность получаемого продукта);
- частая поставка рабочего ПО (раз в несколько недель или месяцев, предпочтительно на более короткий срок);
- общение представителей бизнеса и разработчиков должно быть ежедневным на протяжении всего проекта;
- проекты должны строиться вокруг заинтересованных людей, которым должны быть обеспечены правильные условия работы, поддержка и доверие;
- самый эффективный способ обмена информацией в коллективе – личная встреча;
- запуск программного обеспечения — лучший показатель прогресса;
- спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп в течение неопределенного времени;
- постоянное внимание к техническому совершенству и хороший дизайн повышают гибкость;
- простота очень важна, как искусство не делать ненужной работы;
- лучшие требования, архитектура и дизайнерские решения исходят от самоорганизованных команд;
- команда регулярно думает о том, как повысить свою эффективность и соответствующим образом корректирует рабочий процесс.