Что такое Agile и как стать agile-разработчиком

профессии будущегоIT-индустрияIT-разработчикипрограммистыонлайн-курсы
Главная картинка статьи Что такое Agile и как стать agile-разработчиком
Designed by tirachardz/freepik

При найме на работу в IT-компании всё чаще и настойчивее звучит пункт: «знание методологии agile». Попробуем разобраться, что это такое, и есть ли курсы для разработчиков, где этому обучают.

Краткое описание

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

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

Зачем нужен Agile?

Agile что это такое простыми словами

Designed by freepik

Методика Agile пошла, как водится, из западной IT-среды, а начало ей было положено в 2001 году, когда группа разработчиков выпустила одноименный манифест, состоящий из 12 пунктов.

Откуда возникла нужда в Agile-разработке? Дело в том, что в цифровой индустрии главенствовал так называемый waterfall-подход. Он гласит, что разработка программного продукта должна пройти несколько обязательных этапов, прежде чем он увидит свет:

  1. Сбор спецификаций (требований);

  2. Анализ требований;

  3. Формирование архитектуры продукта;

  4. Создание дизайна продукта;

  5. Написание кода;

  6. Тестирование и отладка;

  7. Выпуск в релиз.

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

В чем суть Agile-разработки

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

  1. Команда планирует и реализует базовую функцию продукта;

  2. Пока идет тестирование, разработчики приступают ко второй функции;

  3. К моменту выхода в релиз базовой фичи, на отладку передается вторая;

  4. В этот момент команда уже приступает к третьей.

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

Методика Agile нагляднее всего работает в игровой индустрии. Там уже давно подмечено: как игру ни полируй, на финальном этапе всё равно появится масса багов и мелких недоделок. Особенно, если вы создаете масштабный AAA-проект.

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

Итак, польза Agile-подхода к разработке очевидна:

  • Ускоренный вывод продукта на рынок;

  • Гибкий подход к приоритетам пользователей, которые регулярно меняются и нередко тяжело поддаются прогнозам;

  • Улучшение обратной связи между IT и бизнесом. Это позволяет реагировать на конъюнктуру рынка, менять ценовую политику, формировать штат разработчиков и решать ещё массу текущих задач.

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

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

Кому нужно изучать Agile?

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

Однако Agile-подход нужно изучать и владельцам IT-бизнеса. Он требуется управляющим проектами (Project Manager, Product Manager) и их ассистентам, требуется дизайнерам, SMM-специалистам, редакторам и копирайтерам — в общем всем, кто так или иначе трудится над высоконагруженными сложными проектами в IT.

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

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

Где можно научиться Agile-разработке

Agile обучение

Designed by freepik

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

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

  1. Как планировать спринты (краткосрочные цели) и составлять бэклоги (очередность задач и перечень всех функций);

  2. Как измерять результаты спринтов и облекать их в осязаемые цифры и показатели;

  3. Как повысить производительность труда всех сотрудников и побудить их к самоорганизации;

  4. Методика Kanban-разработки — визуализация результата при планировании;

  5. Модель внесения изменений по Коттеру — метод, помогающий управлять задачами спринта, сплачивать команду и прогнозировать результат.

Перечень далеко не полный, он просто помогает понять примерное содержание онлайн-курсов по Agile. Нужно учитывать, что задачи для разработчиков и для менеджмента всё-таки отличаются, поэтому и учебные программы будут несколько разными по наполнению.

ВАЖНО! Обращайте внимание на конечный результат курсов. Если вы нацелены на освоение новой специальности (например, project management), итогом должен стать диплом о профессиональной переподготовке. Это будет весомым плюсом при трудоустройстве.

Знание Agile-методик и вакансии в России

Беглого взгляда на рынок труда в стране достаточно, чтобы понять: сотрудники, владеющие Agile, чрезвычайно востребованы. Мы нашли примерно 1700 вакансий на hh.ru для самых разных специалистов, где так или иначе фигурирует пункт «знание Agile-методик». И даже если работодатель не заостряет на этом внимания, будьте готовы, что вас спросят о них на собеседовании.

Чаще всего владение методиками Agile требуют от проект-менеджеров и их помощников, product-менеджеров, специалистов по финтеху, IT-разработчиков разного уровня (от Junior до Senior). Реже мелькают web-дизайнеры, SMM-специалисты, копирайтеры.

Вакансии Agile Coach

Отдельная позиция есть и для тех, кто будет натаскивать сотрудников по Agile, то есть для коучей. И это может стать ещё одной точкой развития карьеры, если вы тем или иным образом были задействованы в IT, имеете опыт разработки и хотите им поделиться.

Чего обычно ждут от кандидатов на должность Agile-коуча:

  1. Опыт работы с фреймворками SCRUM, Kanban;

  2. Знание процессных и продуктовых практик;

  3. Знание инструментов мониторинга, которые используются в разработке, таких как Jira;

  4. Знание методов проведения совещаний, постановки задач, мотивации сотрудников на работу;

  5. Подтверждения работы в командах и применения методик Agile.

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

Выводы

Методология разработки Agile уже давно стала стандартом для многих IT-компаний. Изучить её стоит всем, кто так или иначе связан с созданием и выводом на рынок программных продуктов, организацией работы коллективов разработчиков.

У Agile-методики есть свои недостатки и не всегда она применима на практике, но, изучив её, вы станете значительно компетентнее и серьезно расширите свои возможности на рынке труда.


Загрузка…