Читать «Программист-фанатик» онлайн - страница 122

Чед Фаулер

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

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

Подобные демотиваторы лишают тебя воли к борьбе еще до ее начала.

С недавнего времени я вплотную занялся своей проблемой. Почти каждый день посещаю спортивный зал, стал следить за своим питанием, словом, делаю все, что только можно. Но даже при такой серьезной программе увидеть результаты достаточно сложно. Однажды вечером, когда меня опять захлестнуло ощущение отсутствия мотивации, мой друг Эрик Кастнер опубликовал в социальной сети Twitter следующее сообщение:

Помоги привести в форму мою $%!л.. спрашивай меня каждый день: «Сегодня было лучше, чем вчера?» (питание/упражнения) — сегодня: ДА!

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

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

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