Что такое Agile разработка и зачем она нужна
Agile – это метод разработки программного обеспечения. Он разбивает проект на этапы, побуждает команду планировать, выполнять поставленные цели и оценивать результаты. Сотрудники непрерывно сотрудничают друг с другом и совершенствуются.
В отличие от каскадной разработки, где отдел передает эстафету следующему, эта методология подразумевает совместную работу от начала до завершения проекта. Принципы и задачи решает не владелец компании, а вся команда. Это открывает возможности открытого обмена мыслями, адаптации, правильного распределения обязанностей.
Гибкая методология разработки Agile Software Development не определяет размер команды и частоту собраний. Она перечисляет ценности, в центре которых размещены люди.
Немного истории
История появления этой техники уходит корнями к 1930-м годам, когда физик Уолтер Шухарт решил улучшить качество продуктов с помощью циклов «план – дело – исследование – действие». По окончании Второй мировой войны его идеологию активно использовала Toyota.
Уже в 1990-х годах из регби была заимствована техника достижения цели всей командой. Метод получил название Scrum. Его быстро подхватила та же компания Toyota. Перед командой ставилась цель, а она уже сама решала, каким образом ее лучше достичь.
И вот в 2001 году на горнолыжном курорте встретились 17 инженеров, будущих предводителей методологии разработки программного обеспечения Agile. Они хотели ускорить процессы разработки и улучшить качество продукта. Если качество страдало, уже на первых этапах, использовалась обратная связь, чтобы скорее устранить проблемы. С тех пор и стали появляться команды, использующие такую идеологию.
Что такое Agile методология?
Слово agile переводится как «гибкий». Отсюда понятно, что такое разработка Аджаил? Это гибкость всех сотрудников, которые подстраиваются друг под друга и под меняющиеся обстоятельства. Методология базируется на трех китах:
- Владение знаниями из всех областей разработки. Подразумевает, что каждый участник команды владеет базой о смежных специальностях. Так проще решать проблемы, а мозг постоянно находится в тонусе от изучения нового.
- Равность. В команде нет управляющих и подчиненных. Все усилия направлены на работу над проектом, а не на выяснение, кто и что должен делать.
- Итеративность. Никаких долгосрочных планов и раздумий над идеальной версией продукта. Команда стремится как можно быстрее выпустить рабочий прототип. Затем он допиливается и улучшается. Хотя такой подход может затянуть процесс разработки, у программистов всегда есть рабочая версия продукта.
На этих трех китах выстраиваются 12 принципов разработки Agile:
- Саморефлексия, регулярная оценка.
- Упрощение процессов, устранение ненужной работы.
- Гибкость как основа.
- Передача информации через личное общение.
- Разработчики и руководители трудятся вместе от начала и до конца.
- Постоянные изменения в процессах. Формирование конкурентного преимущества софта.
- Самоорганизация.
- Техническое совершенство, улучшение подачи и дизайна проекта.
- Мерило успеха – не затраты, а работающее программное обеспечение.
- Мотивация людей на работу.
- Доставка работающего софта как можно чаще – каждые 2-16 недель.
- Главная задача проекта – удовлетворенность клиента.
Изначально метод разработки Agile относился к программным системам. Но позднее им воспользовались представители среднего и крупного бизнеса, в том числе, банковские компании, правительственные организации и нефтегазовая промышленность.
Основные методы и практики
В evrone.ru пользуются несколькими методами Agile:
- Scrum. Взят из игры в регби. Команда словно готовится к решающему состязанию. Она анализирует свои ошибки и успехи для самосовершенствования, осваивает самоорганизацию. Знания извлекаются из опыта, а решения берутся из наблюдений. Вначале проекта специалисты не знают, с чем придется столкнуться. По окончании работ у них накапливается опыт.
- Kanban. Инструмент со столбцами и карточками на доске. Так оценивается объем незавершенных этапов и решается, кто, сколько и за какой период возьмется выполнять работу. За счет наглядного представления задач, нарабатывается скорость.
- Extreme Programming (XP) – совокупность усиленных лучших практик гибкости. Такое программирование называют экстремальным. В отличие от предыдущих двух инструментов, практика применяется только в создании ПО. Цель – повысить качество и при этом соответствовать изменяющимся техническим требованиям к продукту. Среди принципов XP можно выделить планирование в два этапа (итераций и релиза), очень частые релизы, пользовательские тесты, сравнение системы с чем-то другим, парное программирование.
Этапы разработки
Agile представляет собой четкий алгоритм действий. Его можно разделить на этапы:
- Исследование рынка и формирование стратегии. Этот этап проделывается вместе с клиентом. Определяется цель продукта, потребности пользователей. Анализируются решения конкурентов. Устанавливаются сроки выхода товара на рынок.
- Создание рабочего прототипа, дизайн. Результаты исследований визуализируются. Тогда можно понять будущий функционал и возможности продукта.
- Разработка. Создание рабочей версии. Чем раньше софт попадет к потребителю, тем быстрее команда поймет, что можно доработать. Так продукт делается под клиента.
- Тестирование. С первыми результатами разработки, ПО подвергается проверке. Тестируется дизайн, работоспособность и функционал. Сразу вносятся изменения и версия тестируется повторно.
- Релиз. Минимально жизнеспособный софт выпускается для пользователей. Затем собираются отзывы. На их основании вносятся изменения, убирается лишнее, добавляются востребованные функции.
- Техническое обслуживание. Процесс обработки отзывов, разработка новых задач, улучшение продукта и выпуск новых версий.
Примеры успешного применения
Кейсы крупных компаний, которые воспользовались методикой, показывают преимущества и недостатки Agile. Рассмотрим один из них.
Ticketland
Компания по онлайн-продаже билетов.
Проблемы. У Ticketland возник ряд проблем с медленной разработкой софта, текучкой программистов, неопытностью сотрудников (необходимыми знаниями владели всего несколько человек), отставанием от конкурентов.
Решение. Переход на новую технику разработки повлек за собой изменения. Первым делом, были уволены руководители. Некоторые из них стали членами команды, так как Agile подразумевает равенство и распределение обязанностей самими участниками между собой.
Далее компания ввела обсуждение ретроспектив. Обговаривались провалы и успехи.
Команда решила внедрять минимум технологий. Если кто-то решал использовать новую, он должен обосновать ее преимущества и результат. Решение принималось всеми участниками.
Все предложения стали оценивать в деньгах. То есть каждое нововведение исчислялось прибылью.
Для сотрудников ввели кросс-дисциплину. Каждый должен быть экспертом своего отдела и владеть знаниями в сфере соседних отделов.
Результат. Каков был результат? Двадцатка в Forbes! Компания была оценена в 84,2 млн. долларов.
Коротко о главном
Бизнес постоянно меняется, а Agile помогает шагать в ногу со временем. Единство команды и понимание приоритетов работают на скорость и производительность. Спринтовая техника Scrum и непрерывный Kanban подходят для небольших проектов. Они выполняются в течение 2-3 недель. Для долгосрочных проектов можно комбинировать несколько методологий, например, Agile и каскадную Waterfall. Это позволяет работать в рамках заданного бюджета и сроков.
В Британии лишили лицензии на вещание китайский телеканал
Дудь назвал голосование по поправкам в Конституцию «позором» и опубликовал старое заявление Путина
В ХМАО в суд ушло дело помощника мэра Нефтеюганска
В Челябинске перед выборами напали на координатора штаба Навального
Скончался Дэвид Проуз, сыгравший Дарта Вейдера в оригинальной трилогии Star Wars
Широкий выбор электротранспорта по выгодным ценам со скидками