Новые методологии программирования
Страница 10. XP (Extreme Programming)



XP (Extreme Programming)

Из всех гибких методологий эта - самая известная. Отчасти это произошло потому, что лидеры ХР, в особенности Кент Бек (Kent Beck) наделены замечательной способностью привлекать к себе внимание. Немаловажную роль сыграл и талант Кента вербовать сторонников своего движения и вести их за собой. Можно даже сказать, что популярность ХР стала в некотором роде проблемой, так как эта методология практически вытеснила все остальные, а вместе с ними и те ценные идеи, которые они несут.

Истоки ХР ведут к сообществу разработчиков ПО на языке Smalltalk, а именно к тесному сотрудничеству Кента Бека и Уорда Каннингэма (Ward Cunningham) в конце 80-х годов. В начале 90-х годов оба они оттачивали свои методики на многочисленных проектах, разрабатывая идеи по созданию нового подхода к разработке ПО, который был бы адаптивным и ориентированным на человека.

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

Первая стадия проекта завершилась в начале 1997. После этого проект некоторое время продолжался, затем стал испытывать затруднения, которые привели к тому, что в 1999 году дальнейшие разработки были прекращены. Впрочем, эта система и по сей день используется для выплаты зарплаты десяти тысячам сотрудников компании.

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

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

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

У ХР много лидеров, большинство из которых работало над Крайслеровским проектом. В результате образовалось множество источников информации, касающихся этой методологии. Лучшим кратким изложением ХР была статья Джима Хайсмита (Jim Highsmith) в журнале "Cutter". Однако теперь получается, что написана она аутсайдером, так как сейчас Джим пропагандирует свою собственную методологию, о которой я расскажу позже. Кент Бек написал книгу Extreme Programming Explained, которая представляет собой настоящий манифест ХР. В книге дается логическое обоснование этой методологии и достаточно подробное ее описание, так что читатели сами могут решить, будут ли они следовать ХР в дальнейшем.

Недавно появились еще две книги. Первую написали трое участников Крайслеровского проекта: Рон Джеффрис (Ron Jeffries), Энн Андерсон (Ann Anderson) и Чет Хендриксон (Chet Hendrickson). Называется она Extreme Programming Installed и представляет собой описание XP, построенное на опыте работы авторов в этом проекте. Кент Бек и я написали книгу Planning Extreme Programming, в которой раскрываются принципы адаптивного планирования.

Помимо книг, существует изрядное количество web-ресурсов. Чтобы начать знакомство с ХР лучше обратиться к более структурированной информации на сайтах Рона Джеффри xProgramming.com и Дона Веллса (Don Wells) extremeProgramming.org. Целое море интересных материалов содержится на xPlorations Билла Уэйка (Bill Wake). Первоначально практически все обсуждение и развитие идей, касающихся ХР, происходило на wiki web (среда для совместного ведения записей) Уорда Каннингэма. На этот сайт и по сей день интересно заходить, однако в таком обилии информации легко потеряться. Роберт Мартин, широко известный своими работами в области C++ и объектно-ориентированного проектирования, также пополнил ряды сторонников XP. На сайте его компании ObjectMentor можно найти ряд работ на эту тему, включая описание варианта XP, который построен на основе RUP и носит название dX. Кроме этого его компания является спонсором дискуссионной группы XP на сайте egroups. Интересный взгляд на ХР "со стороны" мы находим у Марка Полка (Mark Paulk), одного из лидеров СММ-сообщества. Он рассматривает ХР как раз в перспективе СММ.

 
« Предыдущая статья   Следующая статья »