понедельник, 23 февраля 2009 г.

Agile. Анархия. Адреналин.

Нет вы не ошиблись, заголовок написан правильно. Именно об этих трех разных и в тоже время близких понятиях я и хочу поговорить. Итак начнем.

Agile

Что это такое? Если перевести в словарике дословно, то получается:

прил. проворный; быстрый, живой, подвижной, расторопный, шустрый
Т.е. если мы говорим об Agile в программировании, то Agile это практика быстрой разработки. Говоря слово "практика" вместо слова "методология", я делаю это нарочно, чтобы показать, что нет такой Agile Methodology. И это не только мое мнение, покопайтесь в гугле и вы найдете много материалов со схожей точкой зрения. Тот же самый RUP, со всеми его структурами, ролями и процессами, можно "оживить" всего навсего грамотным планированием, короткими итерациями и быстрой выдачей готовой продукции.

Анархия

Слышал не однократно, что в Agile не надо ничего документировать, что типа требования на салфетке или кусочке туалетной бумаги - это максимум что необходимо. По мне это просто анархия в коде разрабатываемого продукта: пишешь, исходя из требований в твоей голове на скорость, чтобы в следующей итерации так же быстро все удалить, исправить, переписать и выдать снова. Так вот, как бы не так! Agile - это НЕ Анархия. В Agile все намного сложнее и структурированнее. Все знают что и когда делать, какой таск выполнять и куда что заливать. Т.е. наличие процессов очевидно. Вы говорите нет требований, так фигушки. Они есть и еще более четко сформулированы, чем на многих других проектах, имеющих тяжелые талмуды в виде System and Business Requirements, System Architecture и т.д. если подходить окончательно занудно к этому вопросу, то разработка системы без первоначальных бизнес требований, без архитектуры системы, без обдуманного выбора технологии - это не разработка, а скорее всего "тяжелые роды у самки гиппопотама". Ответьте: Сколько будет стоить поддержка проекта, если у вас не будет на него никакой документации? И сколько в итоге он проживет? И не надо прикрываться словом Agile, если у вас на проекте полный "разброд и шатание".

Адреналин

Адреналин - это то что многие получают от интересной работы. Чтобы он выделялся в организме нужна мотивация и желание сделать работу "быстрее, выше, сильнее". Agile дает нам это. Индивидуальная мотивация сотрудников это путь к успешной сдаче проекта. Но для этого необходимо, чтобы наши менеджеры нас правильно направили, чтобы доводы приводимые ими были ощутимы и серьезны. Т.е. нас мотивирует наш руководитель, которого в свою очередь должен мотивировать его руководитель и так далее.

Вывод

Давайте теперь подытожить все вышесказанное. Agile в программировании - это практика быстрой разработки. В Agile все намного сложнее и структурированнее. Agile не против процессов и проектной документации, а только ЗА них. Agile дает нам адреналин в условиях индивидуальной мотивации сотрудников.
А теперь самое важное:
1. Использование Agile в параллели с "тяжелыми" методологиями не запрещено, а только приветствуется.
2. Проектная документация при Agile разработке есть и должна "есть", т.е. быть.
3. Личная заинтересованность проектной команды - путь к успеху.
4. Не стоит начинать аджайлить, если у вас нет грамотных проектных менеджеров при планировании, разработке, контроле и сдаче проекта.


PS Прошу извинить, если получилось очень тезисно, уж сильно накипело, вот и излил душу в той манере, что смог.


2 комментария:

Sergey Nazarenko комментирует...

Сорри, как-то все в куче в статье - и методологии и практики, и agile и rup.

Agile - это направление в разработке ПО, постулаты которого зафиксированы в agilemanifesto и стоящими на ними принципами.

Методологии Agile (не Agile методология, как в тексте) - это XP или Scrum - достаточно четкие методологии со своими принципами, подходами, иструментами.

Практики Agile - это просто конкретные практики того как можно работать в соответствии с принципами Agile и методологии из которой они "пришли", такие как Daily Scrum Meeting или Continuous Integration.

А.Б. комментирует...

Добрый день, простите, что долго не отвечал, все как-то руки не доходили.
Итак, по порядку.
Я высказал свое мнение на счет Agile. В моем понимании - это практики, но никак не методологии. Само слово методология слишком тяжелое, чтобы его сочетать с подвижностью.
Ваши примеры практик никак не противоречат моему пониманию. Именно совместное использование подобных практик и есть Agile. Возьмите любую методологию, наложите на нее Agile практики и вы уже получите результат.

Спасибо.

Условия копирования публикаций:

Все публикации в данном блоге являются частной собственностью авторов. Любое копирование информации допускается только при условии указания имени автора и активной ссылки на источник.