Читаем Постигая Agile полностью

Многие разработчики – даже очень умные! – стремятся делать наоборот. Они будут настраивать свои команды на создание кода, пригодного для повторного использования, и потратят много времени, пытаясь спроектировать компоненты, которые можно применять многократно. Но планировать повторное использование очень трудно, и совсем непросто довести до конца разработку чрезмерно абстрактного и обобщенного кода. Ведь объем работы, который придется выполнить для создания общей структуры, ровно такой же, какой необходим для выполнения проекта под ключ. Архитектура для многократно используемой библиотеки, созданная сегодня, вскоре превращается в препятствие, которое команда должна обойти или боится трогать.

Многие люди считают, что хрупкий, трудно изменяемый код – это ошибка, типичная для новичков. Но нередко даже лучшие разработчики создают код, который непросто модифицировать. (Неопытные программисты редко создают достаточно большой исходный код, чтобы в нем проявились такие проблемы.) И необязательно написанное ими программное обеспечение будет плохим или неудачно спроектированным. В большинстве случаев это сводится к вопросу, какой код написан: «заумный» или простой.

Для разработчиков (особенно для умных) вполне естественно пытаться решить не только сегодняшние, но и завтрашние проблемы. Большинство из нас присутствовали на сессиях по планированию, которые казались нескончаемыми, потому что каждый думал лишь о своих проблемах и о том, как их решить. И чем крупнее проблема, которая возникла перед командой, тем больше усилий она требует.

Scrum-команды избегают трудностей, связанных с бесконечным планированием, разбивая проект на спринты. Они сосредоточены на сегодняшних задачах и оставляют все остальное на потом, принимая решение о планировании в последний ответственный момент. И когда XP-команды занимаются итерационным планированием, используя квартальные и недельные циклы, они действуют таким же образом.

Принятие решений в последний ответственный момент – это инструмент не только планирования. Он ценен также при проектировании и кодировании. И это главное средство, при помощи которого XP-команды реализуют принцип простоты.

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

Код «с душком» и антипаттерны, или как понять, что ты переборщил со сложностью

Простота начинается с понимания того, как не делать слишком много.

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

Тем не менее он пользовался им десять лет. Но поскольку весь этот сложный набор приспособлений работал не слишком хорошо, приходилось избегать рецептов, для которых требовался кухонный комбайн. Когда же наконец он засунул агрегат на дальнюю полку (потому что рука не поднималась выкинуть «весьма неплохой» электроприбор) и купил самый дешевый кухонный комбайн, он обнаружил, что теперь может готовить по рецептам, которые раньше были недоступны. Оставалось только удивляться, чего он ждал целых десять лет.

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

Причина того, что этот прибор был неудобным, заключалась в его сложности. Чтобы соединить в одном приборе три, нужны технические компромиссы, которые привели к тому, что его было сложно использовать (например, было сложно использовать миксерную насадку, потому что она не хотела работать, если не была идеально закреплена). Замена сложного прибора на три простых – дешевые блендер, миксер и кухонный комбайн – сэкономит деньги, они займут меньше места и позволят готовить больше блюд.

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

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

Максимум
Максимум

Стать специалистом высочайшего уровня – вопрос не только и не столько природных способностей к тому или иному виду деятельности. Мы привыкли рассуждать о врожденном таланте скрипача, математика, теннисиста, нас интригует умение запоминать длинные тексты и перемножать в уме огромные числа. Андерс Эрикссон, шведский психолог с мировым именем, профессор Университета Флориды, уверен, что нет такого навыка, который нельзя было бы развить. Человек обладает невероятными возможностями, его мозг и тело способны совершенствоваться практически до бесконечности: это доказано на примере множества выдающихся людей, проявивших себя в самых разных областях. О том, как обрести уникальные навыки и достичь профессионального мастерства, рассказывает эта книга.

Андерс Эрикссон , Роберт Пул , Аня Воронцова

Деловая литература / Самиздат, сетевая литература
Управление жизненным циклом корпораций
Управление жизненным циклом корпораций

Любая организация переживает тот же жизненный цикл, что и человек: она рождается в муках, затем наступают детство, юность, зрелость. На самом деле люди начинают стареть с момента своего рождения. То же самое происходит и с организациями.Разница этих процессов только в том, что для человека сыворотку вечной молодости еще не придумали, а для компаний она существует. Этот секрет рыночной молодости и задора изобрел один из лучших бизнес-мыслителей современности Ицхак Адизес.Эта книга – «библия» метода Адизеса. Это единственная книга, в которой автор последовательно рассматривает все три основные составляющие части своей методологии. В ней вы найдете блестящие практические рекомендации по совершенствованию управления и ответы на вопросы: почему одни компании достигают колоссального, а также устойчивого расцвета, а другие стареют и умирают? какие проблемы на каком этапе развития нормальны, а какие аномальны? как быстро диагностировать и решить управленческие проблемы? какие четыре стиля лидерства необходимы для успешного сотрудничества и руководства организацией?Книга переведена на 30 языков.

Ицхак Калдерон Адизес

Деловая литература / Финансы и бизнес
Антихрупкость. Как извлечь выгоду из хаоса
Антихрупкость. Как извлечь выгоду из хаоса

«Антихрупкость» – книга уникальная: она рассказывает о ключевом свойстве людей, систем и не только, свойстве, у которого до сих пор не было названия. В мире, где царит неопределенность, нельзя желать большего, чем быть антихрупким, то есть уметь при столкновении с хаосом жизни не просто оставаться невредимым, но и становиться лучше прежнего, эволюционировать, развиваться. Талеб формулирует простые правила, которые позволяют нам преодолеть хрупкость и действовать так, чтобы непредсказуемая неопределенность, этот грозный и внезапный Черный лебедь, не причинила нам вреда – и более того, чтобы эта редкая и сильная птица помогла нам совершенствоваться. Для этого следует в первую очередь осознать: мы по природе своей антихрупки – и не должны позволять кому бы то ни было лишать нас этого чудесного свойства.

Нассим Николас Талеб

Деловая литература / О бизнесе популярно / Финансы и бизнес