Работайте с нами по Agile


Можно создавать сайты, программное обеспечение и все что угодно по двум методикам. Первая называется «водопад», а вторая называется «agile». Давайте посмотрим, в чем разница...

Водопад подразумевает следующее:

  1. Подписание договора
  2. Техническое задание на стадии подписания договора
  3. Фиксированная цена за весь продукт
  4. Контакт с клиентом не чаще раза в месяц
  5. Жесткое и сильно связанное кодирование
  6. Изменения в коде не приветствуются, особенно на поздних этапах

Agile подразумевает следующее:

Итерация — повторение какого-либо действия, явления или процесса. В нашем случае означает повтор цикла «совещание—разработка—демонстрация».
  1. Подписание договора
  2. Отсутствие общего технического задания
  3. Список компонентов для составления общего плана
  4. Итерации по две недели. В конце каждой итерации — готовый продукт
  5. Совещания с клиентом после каждой итерации
  6. Составление в конце каждой итерации списка требований к следующей итерации
  7. Несвязанное кодирование
  8. Приветствуются изменения в коде и архитектуре

Чем хорош «водопад»?

«Водопад» хорош с государственными заказчиками или с теми людьми, которым нет дела до конечного программного продукта. «Водопад» хорош когда у заказчика нет времени на общение с разработчиком. 

Чем плох водопад?

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

Чем хорош Agile?

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

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

Чем плох Agile?

Ни заказчик, ни исполнитель не могут точно сказать, сколько денег и времени займет проект. Есть ориентировочные суммы, например: «проект займет примерно  12 недель и будет стоить около 400 тыс. руб.». Это основной и, на наш взгляд, единственный недостаток Agile.

Реальный проект по приготовлению бутерброда.

Этапы Водопад Agile
Заключение довогора 1 день 1 день
Техническое задание и спецификация на бутерброд 1 день
Разрабочик пытается понять ТЗ и задает уточняющие вопросы 1 день
Изготовление бутерброда 1 час 10 минут
Согласование бутерброда с заказчиком 10 минут 1 минута
Внесение изменений в ТЗ, потому что нет огурцов 1 день
Исправление бутерброда 1 час
Итого, время на проект 4 дня 2 часа 10 минут 1 день 11 минут
Результат

Выгоды для обеих сторон очевидны: 

  • Заказчик не парится по поводу огромного ТЗ
  • Сокращается время на предварительное согласование проекта
  • Исполнитель делает сразу то, что его просят без недопониманий
  • Время на разработку сокращается в разы

Вот как выглядит общая схема процесса разработки по Agile:

Которко по основным пунктам:

  1. Концепция — это то, что в общих чертах хочет заказчик
  2. Баклог — это список модулей и «фишек» для создания
  3. Разработчик и заказчик садятся за стол переговоров и решают, что из баклога будет реализовано в следующей итерации, что отражается в отобранном баклоге
  4. Команда разработчиков составляет баклог итерации: список задач на две недели
  5. То, что было сделано за две недели показывается заказчику
  6. Переход к шагу 3: начало новой итерации