Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Кент Бек - Экстремальное программирование

.pdf
Скачиваний:
260
Добавлен:
15.03.2016
Размер:
2.66 Mб
Скачать

Разработка чужими силами 195

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

В рамках ХР взаимоотношения меняются малозаметным, но важным образом. Изначально разговор об объеме работ обсуждается с использованием слова «например». «Например, за 5 000 000 немецких марок мы могли бы реализовать все эти истории за 12 месяцев». Заказчик должен решить, стоят ли эти истории пяти миллионов немецких марок. Если эти истории — это все, что должна реализовать команда, то это хорошо. Существует вероятность, что заказчик заменит некоторые из историй более полезными для него. Никто не станет жаловаться, если вместо чего-либо он получит что-либо другое, более ценное. Однако недовольство и жалобы возникают тогда, когда кто-либо получает что-либо, о чем он просил, но при этом оказалось, что это не то, что ему нужно.

Вместо фиксированных цены/даты/объема работ команда ХР предлагает нечто наподобие подписки. Команда обязуется работать на заказчика с максимальной скоростью в течение определенного промежутка времени. Они будут следить за мнением заказчика относительно направления развития разработки. В начале каждой итерации заказчик получает формальную возможность изменить направление развития разработки и добавить совершенно новые истории.

Еще одно различие, связанное с применением ХР, заключается в использовании небольших версий. Вы никогда не должны работать над проектом ХР в течение 18 или даже 12 месяцев, не внедрив его в производственных условиях. Когда команда заключает контракт на реализацию историй в течение 12 месяцев, они играют с заказчиком в игру в планирование для того, чтобы определить объем работ, связанных с первой версией. Таким образом, когда речь идет о 12-месячном контракте, система начнет эксплуатироваться в производственных условиях спустя три или четыре месяца после начала работ, после этого новые версии будут выпускаться с периодичностью в один или два месяца. Постепенное введение системы в эксплуатацию обеспечивает заказчику возможность расторгнуть контракт в случае, если процесс разработки идет медленнее, чем планировалось, или если в результате изменения бизнес-условий реализация всего проекта потеряла смысл. Кроме того, так как проект развивается от итерации к итерации, на шкале времени у заказчика появляются точки, в которых он получает возможность изменить направление развития проекта.

Разработка чужими силами

Когда разработка осуществляется руками сторонних исполнителей (outsourcing), в результате у заказчика оказывается кусок кода, который не-

196 Глава 26 • ХР в работе

известно как поддерживать и модифицировать. В этом случае есть три варианта:

новую эволюцию системы можно выполнить своими силами;

можно нанять для выполнения модификации системы тех же самых разработчиков, которые работали над ее созданием (однако они могут попросить за это слишком много денег);

можно обратиться к другим разработчикам, которые плохо знакомы

скодом.

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

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

Разработка своими силами

Наверное, вам показалось, что я не в восторге от выполнения разработки чужими руками. Дело в том, что если разработка выполняется на стороне, это, как правило, означает, что существует некоторый акт приема-сда- чи работы. Проект передается заказчику в виде большого единого продукта, готового к употреблению. Это нарушает принцип постепенного изменения. Однако существует некоторая весьма удобная вариация на эту тему, которую можно реализовать благодаря использованию ХР. Что, если вы постепенно будете заменять членов команды, занимающейся разработкой, техническими специалистами, которые являются сотрудниками фир- мы-заказчика? Именно это я и называю «выполнением разработки своими силами» (insourcing).

Разработка своими силами — это подчас малоэффективное занятие, так как собственные технические сотрудники подчас не обладают необходимыми для этого знаниями и опытом. Если разработка выполняется силами сторонних специалистов, заказчик получает в свое распоряжение систему, разработанную с использованием опыта и навыков специалистов

Заключение

Все методики основаны на страхе. Вы пытаетесь развить у себя привычки, которые помогут вам не допустить, чтобы ваши страхи воплотились в реальность. В этом отношении ХР ничем не отличается от любой другой методики. Разница состоит в том, что страхи запечатлены в ХР. Методика ХР — это мое детище, и поэтому она отражает мои собственные страхи. Я боюсь:

делать бессмысленную работу;

останавливать проекты из-за того, что я не достиг достаточного технического прогресса;

делать плохие бизнес-решения;

иметь дело с плохими техническими решениями, которые сделаны за меня бизнесменами;

прийти к концу карьеры разработчика программных систем и понять, что было бы лучше, если бы я больше времени проводил с детьми;

делать работу, которой я не могу гордиться.

ХР также отражает вещи, которых я не боюсь:

кодировать;

изменять мой взгляд на вещи;

продолжать работу, ничего не зная о будущем;

надеяться на других людей;

изменять анализ и дизайн функционирующей системы;

писать тесты.

Ядолжен был научиться не бояться этих вещей. Это не пришло ко мне само собой, особенно если учесть, что так много людей говорили мне о том,