Что такое Agile.
Когда начинаешь интересоваться какие сейчас популярны методологии программирования, то очень быстро натыкаешься на очень красивое, но не понятное слово Agile. Слушая семинары, читая статьи то и дело натыкаешься на фразы: «это не соответствует ценностям аджайла», «следуя принципам аджайла». Самое интересное, что при этом люди говорят, или пишут, очень интересные вещи, которые несомненно смогут помочь твоей личной работе и хочется понять, а что такое Agile и с чем его едят.
Agile - это только концептуальный каркас. Своего рода абстрактный класс, от которого вы можете наследовать свой рабочий процесс и выбрать: вы хотите работать по Extreme programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming. Или по нескольким сразу (SCRUM и Extreme programming прекрасно сочетаются ). Или же у вас непреодолимое желание создать свою методику, но все равно у вас есть шанс быть Agile командой.
Достаточно важно, как для меня, понимать, что Agile это только манифест. То есть, некие правила, соблюдая которые вы сможете хорошо разрабатывать код в приятной рабочей атмосфере. Agile может рассказать что должно быть, но не расскажет как. На вопрос как, вы можете или попытаться ответить сами, или прибегнуть к методологиям, которые исповедуют принципы Agile.
Манифест гибкой разработки состоит из четырех пунктов, каждый из которых представляет собой альтернативу. Что позволяет, с точки зрения авторов Манифеста, лучше понять, с каким выбором команде приходится сталкиваться в процессе разработки, и какой путь ближе к ценностям гибкой разработки:
Разрабатывая программное обеспечение и помогая другим делать это, мы стараемся найти наилучшие подходы к разработке. В процессе этой работы мы пришли к тому, чтобы ценить:
- Личности и их взаимодействия выше, чем процессы и инструменты.
- Работоспособное программное обеспечение выше, чем обширную документацию.
- Сотрудничество с заказчиком выше, чем переговоры по контрактам.
- Умение реагировать на изменения выше, чем следование плану.
Таким образом, хотя и существует ценность в понятиях, стоящих в правой части этих сравнений, мы ценим понятия, стоящие в левой части, больше.
Принципы гибкой разработки, основываясь на ценностях из Манифеста, дополняют их информацией более практического свойства:
- Нашим главным приоритетом является удовлетворение заказчика посредством ранней и непрерывной поставки работоспособного программного обеспечения.
- Приветствуйте меняющиеся требования даже на поздних стадиях разработки. Гибкие процессы используют изменения как средство получить конкурентные преимущества для заказчика.
- Поставляйте работоспособное программное обеспечение часто: от раза в несколько недель, до раза в несколько месяцев, отдавая предпочтение коротким интервалам.
- Представители бизнеса и разработчики должны работать вместе в течение всего проекта.
- Стройте проекты вокруг мотивированных личностей. Предоставьте им среду и поддержку, в которой они нуждаются, и доверьте им самим сделать работу.
- Наиболее эффективный способ передать информацию в команду проекта (а также передавать её внутри команды) – это непосредственное живое общение.
- Основной мерой прогресса проекта является работоспособное программное обеспечение.
- Гибкие процессы поощряют разработку с постоянной скоростью. Спонсоры проекта, разработчики и пользователи должны быть способны поддерживать постоянную скорость на неограниченной дистанции.
- Непрерывное внимание техническому совершенству и хорошему дизайну увеличивает степень гибкости.
- Простота – искусство максимизации работы, которую не надо делать, – является существенным фактором.
- Наилучшие архитектуры, требования и дизайн создаются самоорганизующимися командами.
- Через регулярные промежутки времени команда должна проводить анализ того, как стать более эффективной и улучшать свой процесс работы.
Тут стоит заметить, что ценности – это то, что имеет значение (значимость, полезность), а принципы – это норма и правила поведения. Все, больше ничего нет. Нет практик, нет множества стандартов. Есть только 4-ре ценности и 12-ть принципов, которые полностью изменили мир разработки ПО. Его очень легко понять, но очень сложно применить в реальной работе, хоть применение и дает ошеломляющие результаты.
bkitaec on Апрель 7th, 2010
Спасибо за статью! Такому в универах к сожалению не учат… Все принципы идеальны.)