Баннер мобильный (1) Пройти тест

Agile

Глоссарий

12 сентября 2023

Поделиться

Скопировано

Содержание

    Agile — это группа методик для гибкого управления проектами в команде разработки. Рабочий процесс при таком подходе разбивается на небольшие временные промежутки, их еще называют спринтами (от английского sprint — бег на короткую дистанцию) или итерациями. Во время каждого спринта команда разработки создает часть продукта, которую можно протестировать и оценить. Такой подход позволяет вносить существенные изменения в проект, даже когда разработка в самом разгаре.

    Agile-разработка

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

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

    • составление полного технического задания;
    • проектирование;
    • разработка;
    • тестирование;
    • итоговый результат.

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

    Типы Agile-методологий

    Agile — это общее название нескольких методик, объединенных идеей гибкости работы. В эту группу входят разные методы, например:

    • Scrum. Работа в этой методике строится по итерациям. Все задачи, необходимые для завершения продукта, формируются в специальный перечень — бэклог, а главная роль отведена заказчику, который определяет вид и функционал продукта.
    • Kanban. В нем упор сделан на визуализации задач на досках и оптимизации рабочего процесса. Kanban-команды стремятся сократить время на реализацию проекта и повысить эффективность.
    • Extreme Programming основывается на таких практиках, как парное программирование, разработка через тестирование и непрерывная интеграция, то есть постоянное добавление новых элементов в основной проект.

    Принципы Agile

    Agile-подход к разработке строится на нескольких принципах:

    • Люди и взаимодействие важнее процессов и инструментов. Поэтому методология подходит как небольшим стартапам, так и крупным корпорациям. Не важно, где происходит общение и ставятся задачи — в чате Telegram или в таск-менеджере, — главное, чтобы все участники процесса понимали цели проекта и знали, что происходит на текущем этапе.
    • Работающий продукт важнее исчерпывающей документации. Благодаря этому принципу разработка Agile начинается быстрее — уже на первых этапах вместо составления объемного технического задания создаются и тестируются прототипы, на которых проверяются гипотезы.
    • Сотрудничество с заказчиком важнее согласования условий контракта. Работа по методологии Agile предполагает активное участие клиента, поэтому она не подходит заказчикам, которые не готовы вникать в работу, уделять со своей стороны достаточно времени проекту и экспериментировать.
    • Готовность к изменениям важнее следования первоначальному плану. Этот принцип — фундамент гибкой разработки. Невозможно идеально распланировать все заранее, а некоторые светлые идеи приходят именно в процессе работы над продуктом. Agile позволяет концентрироваться на задачах, которые важны сейчас, и не тратить ресурс на продумывание двух-трех шагов наперед.

    Как устроена Agile-команда

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

    • product owner;
    • project-менеджеры;
    • UX-дизайнеры;
    • технические писатели;
    • разработчики (тип разработчика зависит от профиля проекта);
    • тестировщики.

    При этом даже человек на должности product owner формально не является руководителем, он просто берет на себя ответственность за формулировку требований к продукту: доносит до остальной команды видение того, как должен выглядеть продукт и каким функционалом он должен обладать.

    Читайте также: Главные профессии в IT

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

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

    Пример применения методологии Agile
    Применение методологии Agile в Netflix

    Как внедрить Agile-подход

    При переходе на новую модель компании могут допустить ошибки:

    • не провести обучение сотрудников;
    • не учесть специфику разработки;
    • не учесть финансовый аспект перестройки компании;
    • использовать только часть методов, которые сами по себе работать не будут.

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

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

    Коротко о главном

    • Agile — группа методик для гибкого управления проектами в команде разработки.
    • Рабочий процесс при таком подходе разбивается на небольшие временные промежутки, их еще называют спринтами или итерациями.
    • Scrum — методика, в которой все задачи, необходимые для завершения продукта, формируются в специальный перечень — бэклог.
    • Kanban — методика, в которой упор сделан на визуализации задач на досках и оптимизации рабочего процесса.
    • Extreme Programming основывается на таких практиках, как парное программирование, разработка через тестирование и непрерывная интеграция.
    • Agile-подход к разработке строится на принципе «Люди и взаимодействие важнее процессов и инструментов».
    • В Agile-командах важна кросс-дисциплинарность.
    • Чтобы внедрить Agile, можно постепенно тестировать методологию на небольших группах.

    Поделиться

    Скопировано

    1 комментарий

    Комментарии
    • Иван

      Полезная статья