Подписаться на рассылку

Что такое Agile

27.09.2016 663 0
Время на чтение:4 мин. Нет времени читать?

Agile — это методология создания проектов разработки ПО, которая появилась в начале 2001 года на встрече 17 независимых практиков нескольких методик программирования. Agile в первую очередь базируется на принципах, ценностях и практиках многих успешных компаний. Agile позволяет минимизировать риски путем коротких циклов, что длятся в среднем на протяжении 1-2 недель.

 

Как это работает?

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

Что же мы делаем в Agile-итерациях?

  1. Анализируем требования.
  2. Проектируем.
  3. Кодируем.
  4. Тестируем.
  5. Документируем.

Как же разбить проект на Agail-итерации?

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

Банкомат должен:

  • Принять карточку и проверить PIN.
  • Запросить сумму для выдачи.
  • Выдать деньги.
  • Выдать чек.
  • Отобразить баланс.
  • Вернуть банковскую карту.

Функций можно придумать и записать очень много, но предложив даже эти 6 функций, становится уже видно, что банкомат который выполняет пункты 1, 3, 6 и возвращает фиксированную сумму вполне жизнеспособный.

Теперь необходимо посмотреть на зависимости функционала и объединить их в группы:

  • Принимать карточку и проверять PIN + Вернуть банковскую карту;
  • Запросить сумму для выдачи + Выдать деньги;
  • Выдать чек;
  • Отобразить баланс.

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

 

Методики Agile

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

Что такое Scrum?

Scrum — это своеобразный каркас разработки, позволяющий решать проблемы, создавая при этом продукты высокой значимости. Классический Scrum предусматривает в своем составе 3 роли:

  1. Product owner — заказчик или клиент, определяющий условия к разработке продукта.
  2. Scrum master — помогает команде в повышении эффективности путем устранения препятствий, помогая, обучая и мотивируя команду.
  3. Development team — команда разработки, которая работает непосредственно над созданием продукта, в состав данной команды может входить дизайнер интерфейса, тестировщик, специалист по написанию технических текстов и прочие.

Как видим, методы разработки первоочередно сосредоточены на общении в команде, о чем и говорят основные принципы Agile.

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

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

В Манифесте говорится о том, что:

Что такое Agile | YOTTOS

Методология Agile обладает рядом преимуществ, позволяющих выделить её на фоне остальных методологий.

 

Преимущества Agile:

 

  1. Высокое качество web — продукта.

В связи с тем, что сам заказчик является вовлеченным в процесс каждого цикла, возможность корректировки процесса достаточно высока, а поэтому и качество продукта в результате намного выше.

  1. Высокая скорость разработки продукта.

Один цикл, как правило, занимает по времени приблизительно 2 недели, что к поставленным срокам дает результат.

  1. Вероятность риска минимальна.

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

  1. Прозрачные методы оплаты.

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

Комментарии