XP (Extreme Programming)

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

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

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

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

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