Читаем Экстремальное программирование полностью

Отличительной чертой этого показателя является то, что объем работ – сильно изменяющаяся переменная. В течение десятилетий программисты привыкли жаловаться: Заказчики не могут сказать нам, чего они хотят. Когда мы даем им то, о чем они нас просили, они говорят, что им это не нравится. И это абсолютная горькая правда всей индустрии производства программного обеспечения. В самом начале работы над проектом требования заказчика никогда не бывают четкими и ясными. Заказчики никогда не могут сказать вам, что именно они хотят.

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

Что, если посмотреть на нечеткость требований не как на проблему, а как на удобную возможность? В этом случае мы можем обнаружить, что показатель объема работ является наиболее удобной в управлении переменной из тех четырех переменных, о которых я говорил ранее. Так как этот показатель наименее четко очерчен, мы можем формировать его в соответствии с нашими собственными предпочтениями и предпочтениями заказчика – немного в эту сторону, немного в ту сторону. Если время поджимает и надо выпускать очередную версию продукта, у нас всегда будет что-то, что мы можем отложить до следующей версии. Однако если мы будем стараться не втискивать в рамки одной версии слишком много работы, то сохраним возможность выпустить продукт требуемого качества в указанные сроки.

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

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

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

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

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

<p>Глава 5</p><p>Стоимость внесения изменений</p>

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

Перейти на страницу:

Похожие книги

Иная жизнь
Иная жизнь

Эта книга — откровения известного исследователя, академика, отдавшего себя разгадке самой большой тайны современности — НЛО, известной в простонародье как «летающие тарелки». Пройдя через годы поисков, заблуждений, озарений, пробившись через частокол унижений и карательных мер, переболев наивными представлениями о прилетах гипотетических инопланетян, автор приходит к неожиданному результату: человечество издавна существует, контролируется и эксплуатируется многоликой надгуманоидной формой жизни.В повествовании детективный сюжет (похищение людей, абсурдные встречи с пришельцами и т. п.) перемежается с репортерскими зарисовками, научно-популярными рассуждениями и даже стихами автора.

Владимир Ажажа , Владимир Георгиевич Ажажа

Альтернативные науки и научные теории / Прочая научная литература / Образование и наука
100 великих загадок Африки
100 великих загадок Африки

Африка – это не только вечное наследие Древнего Египта и магическое искусство негритянских народов, не только снега Килиманджаро, слоны и пальмы. Из этой книги, которую составил профессиональный африканист Николай Непомнящий, вы узнаете – в документально точном изложении – захватывающие подробности поисков пиратских кладов и леденящие душу свидетельства тех, кто уцелел среди бесчисленных опасностей, подстерегающих путешественника в Африке. Перед вами предстанет сверкающий экзотическими красками мир африканских чудес: таинственные фрески ныне пустынной Сахары и легендарные бриллианты; целый народ, живущий в воде озера Чад, и племя двупалых людей; негритянские волшебники и маги…

Николай Николаевич Непомнящий

Приключения / Научная литература / Путешествия и география / Прочая научная литература / Образование и наука