Вопрос №24
Q: Расскажите про основные особенности Agile подхода к разработке ПО
A: Раньше продукты делали сразу целиком, т. е. в рамках каскадной модели (Waterfall model), где все происходит поэтапно и последовательно. Для этого они шли по цепочке:
1. идея
2. техзадание
3. дизайн
4. программирование
5. тестирование
6. Релиз
Если на этапе дизайна появлялась новая идея, приходилось игнорировать её или переделывать все предыдущие этапы. Это было неудобно — проект или получался хуже, чем мог бы, или растягивался во времени и не укладывался в бюджет. Прогрессивные разработчики стали пробовать новые подходы к работе. Так появились Скрам, Канбан и ещё с десяток новых техник. Команды могли тестировать и изменять продукты в процессе работы. Эксперименты оказались удачными: клиенты получали отличные продукты, разработчики выдерживали сроки и бюджеты, а размеры компании не влияли на продуктивность команд.
Чтобы найти формулу успешных продуктов, в 2001 году 17 практиков современных подходов собрались в маленькой горной деревушке Сноубёрд. Они обсудили свои стратегии разработки и сделали открытие: подходы у всех разные, но общие идеи совпадают. Эти идеи легли в основу «гибкой» философии, которую назвали Аджайлом. Их записали в Agile Манифесте и дополнили Принципами Аджайла.
Гибкая методология разработки (англ. Agile software development, agile-методы) — серия подходов к разработке программного обеспечения, ориентированных на использование итеративной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля. Существует несколько методик, относящихся к классу гибких методологий разработки, в частности экстремальное программирование, DSDM, Scrum, FDD.
На что обратить внимание в определении?
1. Agile - серия подходов к разработке. Это значит, что Agile включает в себя целое семейство методик. И говорить, к примеру, что Agile - это SCRUM(хотя SCRUM и является самой популярной Agile методологией), абсолютно некорректно.
2. Agile подразумевает итеративную разработку. Работа идет короткими отрезками времени(спринтами), по окончанию отрезка - промежуточный вариант рабочего продукта. Работающий продукт выпускается как можно чаще, с периодичностью от пары недель до пары месяцев. Тем самым удовлетворяются потребности заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения.
4. Требования к продукту формируются динамически. Команды могут тестировать и изменять продукты в процессе работы — за это Agile подходы и назвали гибкими. На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе. Изменение требований приветствуется, даже на поздних стадиях разработки.
5. Команда состоит из специалистов различного профиля.
Итого:
1. Самое главное люди и взаимодействие.
2. Работающий продукт важнее исчерпывающей документации(которую очень ча
Post #234
206