200
Часть V . Сохраняя конкурентные преимущества
Прочитав это сообщение, я понял, что нашел ключ к проблеме лиш-
него веса. Впрочем, я уже знал эту методику, ведь в жизни мне при-
шлось
успешно
решить немало серьезных проблем. Секрет в попытках
сделать так, чтобы задача, над которой ты работаешь,
сегодня стала
лучше
,
чем вчера
. Вот и все. Это легко.
И как утверждает Эрик, энту-
зиазм легко сохранить, имея дело с реальными, осязаемыми шагами
по направлению к далекой цели.
Недавно мне довелось поработать с одним из наиболее сложных
и безобразных Ruby-приложений, когда-либо попадавшихся мне на
глаза. Моя компания унаследовала этот консалтинговый проект от
другого разработчика. Нужно было внедрить несколько ключевых
подсистем и избавиться от огромного количества ошибок и проблем
с производительностью. При попытке внести эти изменения мы
обнаружили, что код представляет собой жуткую кашу. Нанявшая
нас фирма была ограничена во времени и финансах, поэтому такой
роскоши, как возможность написать все заново «с нуля», мы были
лишены, хотя этот код проще всего
было выкинуть в мусорную
корзину.
Мы медленно двигались вперед, внося одно небольшое изменение за
другим, причем каждое из них занимало намного больше времени,
чем ожидалось. Казалось, что это чудовищное нагромождение кода
никогда не закончится. Работа над приложением была утомитель-
ной и безрадостной. Но со временем исправления начали вноситься
быстрее, а некогда неприемлемая производительность повысилась.
И все это благодаря простому стремлению каждый день делать код
лучше, чем он был вчера.
Порой это было разбиение огромного метода на более мелкие ме-
тоды, но со значимыми именами. Иногда это сводилось к удалению
иерархий наследования, не принадлежавших к используемой объ-
ектной модели. Временами мы всего лишь исправляли неработающий
модульный тест. Но так как все эти
изменения вносились постепенно,
они происходили достаточно безболезненно. Вполне реально переде-
лать один метод за время, обычно уходящее на приготовление чашки
кофе или обсуждение последних новостей с коллегами. Небольшое
улучшение мотивирует. Ты видишь эффект
в том фрагменте
, над
которым ты работаешь, сразу же после внесения изменений.
201
Совет 52 . Лучше, чем вчера
Впрочем, даже постепенные изменения не позволяют увидеть эф-
фект в
целом
проекте. Попытки добиться большего уважения среди
коллег или улучшить состояние собственного здоровья, несмотря на
отдельные каждодневные улучшения, не
приводят к непосредственно
осязаемым результатам. Именно поэтому, как мы уже видели ранее,
такие большие цели лишают нас мотивации. А значит, в случае боль-
ших, сложно достижимых целей, к которым ты стремишься, важно
думать не о том, как ты каждый день немного продвигаешься вперед,
а о том, как ты каждый день
улучшаешь
качество работы. К примеру,
я не
могу гарантировать, что сегодня буду весить меньше, чем вчера,
но
в состоянии
контролировать количество усилий, направленное на
достижение поставленной цели. И сделав сегодня больше, чем вчера,
я с полным правом могу гордиться своим достижением. Такое после-
довательное измеримое улучшение
качества работы
выводит меня
из цикла вины и постоянных откладываний, который, в конечном сче-
те, мешает большинству из нас в достижении Больших Важных Целей.
Ты должен радоваться даже
небольшим
«лучше».
Написать сегодня
на один тест больше, чем вчера, достаточно, чтобы оказаться ближе
к цели «лучше разобраться в модульном тестировании». Если ты на-
чинаешь «с нуля», один дополнительный тест в день будет вполне
устойчивым прогрессом. И к моменту, когда ты уже не сможешь
показывать лучшие, чем вчера, результаты, окажется, что ты уже
«разобрался в модульном тестировании» на достаточном уровне
и увеличивать количество тестов дальше просто не нужно.
При этом
если начиная «с нуля», ты в рамках собственных планов усовершен-
ствования хочешь в первый же день написать пятьдесят тестов, то
в этот день ты, скорее всего, тяжело поработаешь, а вот второго дня
уже не случится. Поэтому улучшения должны быть небольшими
и постепенными, но
ежедневными
. Кроме всего прочего, небольшие
улучшения снижают цену неудачи. Пропущенный день всего лишь
сдвигает точку отсчета на завтра.
Эта простая аксиома хороша своей применимостью как к тактиче-
ским целям, таким как завершение проекта или доработка фрагмента
кода, так и к возможным высокоуровневым целям. Насколько больше
усилий к построению своей карьеры ты приложил сегодня? Завяжи
новое знакомство, опубликуй исправление для проекта с открытым