Ответ на вызов
Agile (эйджел,
живой, подвижный, гибкий)
- подход (методология) «гибкой» разработки программного обеспечения.
Agile
- ответная реакция
на новые условия управления в динамичной глобальной информационной
среде.
Эффективно и выгодно работать «как
раньше»
стало невозможно. |
Традиционные методологии, которые
использовались в статической (медленно меняющейся среде)
стали
ущербными.
Все более обострялись проблема
неудовлетворенности Заказчика и разработчиков друг другом:
-
Заказчик не способен сформировать
для разработчиков четкие
исчерпывающие требования к продукту - у него
есть только идея приложения и он не представляет всю
его функциональность.
-
У
группы проекта есть разный взгляд на функциональность приложения
и она не может договориться, как же будет удобнее/разумнее реализовать
ту или иную часть функциональности приложения.
-
Традиционный
подход с минимизацией
изменений (управление
изменениями) в проекте становится трудоемким,
малоэффективным и замедляет ход проекта.
В Agile реакция на
изменения важнее, чем следование плану |
При жестком сроке и в условиях постоянных изменений разработчики
вынуждены формализовывать процессы взаимодействия с Заказчиком.
При
этом Заказчик вынужден оплачивать документы, которые не несут реальной
ценности.
В Agile
сотрудничество с заказчиком важнее, чем
контрактные обязательства |
С появлением веб-приложений внедрение новой функциональности
стало происходить значительно быстрее,
что усилило конкуренцию (кто применил новую
технологию раньше других – выигрывает).
Agile предоставил быстрые поставки
новой функциональности |
Родившись в
программистской среде
Agile
применяется практически везде.
Суть
Agile-подхода:
-
разработка ведется
короткими циклами (итерациями, спринтами), продолжительностью 1-4 недели;
-
в конце каждой итерации
заказчик получает продукт (или его часть),
который можно использовать;
-
команда разработки
сотрудничает с Заказчиком в ходе всего проекта;
-
изменения в проекте
приветствуются и быстро включаются в работу.
| |
Ценности и принципы
Agile
Agile
опирается на совокупность ценностей и принципов,
изложенных в Agile Manifesto (Манифесте
Agile).
Ценности Agile:
-
Люди и взаимодействие важнее процессов и инструментов.
-
Работающий продукт важнее исчерпывающей документации.
-
Сотрудничество с заказчиком важнее согласования условия контракта.
-
Реагирование на изменение важнее следования первоначальному плану.
Принципы
Agile
-
Наивысший приоритет — удовлетворение пользователей.
-
Изменение
требований приветствуется.
-
Работающий продукт следует выпускать как можно чаще.
-
Представители бизнеса и разработки должны работать вместе ежедневно.
-
Над проектом должны работать мотивированные профессионалы.
-
Непосредственное общение является наиболее практичным и эффективным.
-
Работающий продукт — основной показатель прогресса.
-
Инвесторы, разработчики и пользователи должны иметь возможность
поддерживать постоянный ритм бесконечно.
-
Постоянное внимание техническому совершенствованию и качеству
проектирования повышает гибкость проекта.
-
Простота — искусство минимизации лишней работы — крайне необходима.
-
Самые лучшие требования, архитектурные и технические решения
рождаются у самоорганизующихся команд.
-
Команда должна систематически анализировать возможные способы
повышение эффективности и соответственно корректировать стиль своей
работы.
| |
Agile в
управлении
Методология Agile говорит о том, что не нужно пытаться с первого раза
создать сложный и безупречный продукт — нас могут обогнать маленькие и
быстрые конкуренты.
К
моменту, когда мы завершим весь цикл работ, наш проект может стать
никому не нужен либо его концепция устареет.
А
денег, времени и сил будет потрачено много.
-
Agile нужен, чтобы в сжатые сроки запустить продукт
и показать клиенту результат
Для этого большой проект разбивается на отрезки (итерации) длиной от
1 до 4 недель, в конце каждого из которых клиент должен получить
работающий продукт. Выгоднее оперативно
занять никем не освоенный сегмент рынка, опередив всех своих
конкурентов. После получения обратной связи
от клиента продукт с каждой новой итерацией становится лучше и
ценнее для клиента. Можно дополнительно
инвестировать в команду.
-
Agile нужен для гибкого управления бизнесом в постоянно меняющемся
мире
Привлечение большого
количества пользователей
зачастую это приводит к раздуванию штата и
ухудшению управляемости. Agile
позволяет почти не расширять
штат за счет октаза от от жестких
регламентов и микроконтроля.
Согласно методике Agile, руководитель не контролирует команду, а
задаёт рамки, указывает цели и даёт достаточно свободы в принятии
решений. После чего поддерживает, фокусирует, направляет и устраняет
препятствия на пути команды. Для эффективной работы команда должна
быть самоорганизованной единицей. Контроль как инструмент управления
в Agilе-подходах заменяется на полную прозрачность процесса, которая
в трех простых вещах: каждый в команде знает, что делают все
остальные. Каждая команда знает, зачем она делает то, что делает (иными
словами, ориентирована на бизнес-цель). Проблемы,
промахи и ошибки не замалчиваются, а обсуждаются и решаются.
-
Agile мотивирует команду, не прибегая к материальным стимулам
По итогам каждого отрезка заказчик оценивает результат и даёт
обратную связь. Забеги на короткие дистанции дают ощущение быстрой
победы, а благодаря регулярному общению и тесной связи с бизнесом
команда ощущает значимость своей работы для общего дела. 98 %
компаний, внедривших Agile, отмечают рост мотивации своих
сотрудников.
-
Agile подходит не только для IT-бизнеса
Agile-подходы применяются в производстве физических вещей,
в банках, в финансовой сфере, в госуправлении.
В госучреждениях
Великобритании Agile — негласный стандарт. Данные о потребностях
граждан постоянно анализируются и работа сервисов госуслуг
корректируется, исходя из собранной информации (например, становятся
более удобными часы работы).
| |
Agile в образовании + EduScrum
Agile
в
Сбербанке (Германа Грефа)
За
популярность в России Agile может быть признателен Герману Грефу. Именно
он во всеуслышание высказался в поддержку этого гибкого метода и
продолжает обосновывать, почему это важно для банковской сферы (и не
только).
Герман Греф:
Борис Вольфсон
| |
Аgile-подходы
Популярных
agile-подходы:
-
Scrum
-
eXtreme
Programming
(экстремальное программирование,
XP)
-
«парное программирование», когда один программист занимается
кодированием, а его напарник в это же время непрерывно
просматривает только что написанный код.),
-
Lean
Software Development
(бережливая разработка программ,
Lean)
-
разработка с полным сосредоточением на том, что нужно делать в
настоящий момент
-
безжалостное
избавление от всего избыточного (бесполезные
собрания, задачи, документация...)
-
команда работает как единое системное
целое, где каждый делает то, что лучше умеет, а
не загружен на 100%.
-
эффективное обеспеченность ресурсами + доверие и
уважение к разработчикам.
-
постоянное обучение +
принятие решения в последний
момент (когда будем знать больше).
-
Kanban
(Канбан)
-
разработка, реализующая
принцип «точно в срок»
-
с
равномерным распределением
нагрузки между работниками.
-
прозрачностью для всех всего процесса
-
списочной визуализацией получаемых и доступных для каждого
задач.
|
для чтения
kmp |