Найти тему
Аспро.Agile

История появления Agile

Оглавление

Разработчики программного обеспечения прошлого века столкнулись с проблемой. Рынок активно рос за счет спроса, не по дням, а по часам. А вот методы разработки остались те же. Команды попросту не успевали выпускать ПО в темпе, который требовала индустрия. Компании тонули в микроменеджменте, лишнем регулировании процессов и реагировать на изменения им было тяжело.

-2

Разработка затягивалась на месяцы и за это время ситуация на рынке менялась. Спрос смещался на другой функционал, и к моменту релиза программа оказывалась никому не нужной.

В разработке тогда использовалась каскадная модель, также известная как «Водопад». Структура метода была такой:

  1. Определение требований.
  2. Проектирование.
  3. Реализация.
  4. Воплощение
  5. Тестирование и отладка.
  6. Инсталляция.
  7. Поддержка.

Если упрощать, то создается объемное техзадание, на основе которого строится вся работа. Модель не предусматривает отклонений от этой инструкции, то есть какой продукт «заказывали», такой и получаем. Но разработка — это долгий процесс. Планирование на такой длительный срок часто оказывается делом неблагодарным: за это время рынок может уже измениться. Плюс есть шанс, что на середине проекта найдется критическая недоработка в техзадании и разработка затянется.

-3

Поэтому в 1990-х годах специалисты стали развивать альтернативные методы разработки ПО. Впоследствии исследователи объединят их в семейство Agile-методологий. Большинство из них направлены на работу в разрезе итераций, отрезков, по результатам которых корректируется курс проекта. Это позволяет не упираться в техзадание и адаптироваться к ситуации: добавлять и убирать функционал, менять позиционирование.

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

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

В 2001 году независимые практики вывели 4 основных ценности и 12 принципов Agile.

Ценности Agile

  1. Люди и взаимодействие важнее процессов и инструментов.
  2. Работающий продукт важнее исчерпывающей документации.
  3. Сотрудничество с заказчиком важнее согласования условий контракта.
  4. Готовность к изменениям важнее следования первоначальному плану.

Группа не отрицает важности того, что справа, но видит большую ценность в том, что слева.

Принципы Agile

  1. Высший приоритет — удовлетворение потребностей заказчика. Это достигается благодаря регулярной и ранней поставке продукта.
  2. Изменение требований приветствуется на любой стадии разработки. Agile позволяет изменять продукт для получения конкурентного преимущества.
  3. Рабочий продукт нужно выпускать так часто, как это возможно.
  4. Создатели продукта и представители бизнеса работают вместе ежедневно.
  5. В команде должны работать мотивированные профессионалы. Нужно создать для них комфортные условия и полностью им довериться.
  6. Общение лицом к лицу — это самый эффективный способ общения с командой и внутри нее.
  7. Прогресс измеряется рабочим продуктом.
  8. Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм.
  9. Внимание к качеству исполнения продукта и проектированию повышает гибкость проекта.
  10. Нужно стремиться к минимизации лишней работы.
  11. Самые лучшие решения появляются у самоорганизующихся команд.
  12. Команда должна систематически анализировать способы улучшения эффективности и на основе этого корректировать рабочий процесс.

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