Подобные демотиваторы лишают тебя воли к борьбе еще до ее начала.
С недавнего времени я вплотную занялся своей проблемой. Почти каждый день посещаю спортивный зал, стал следить за своим питанием, словом, делаю все, что только можно. Но даже при такой серьезной программе увидеть результаты достаточно сложно. Однажды вечером, когда меня опять захлестнуло ощущение отсутствия мотивации, мой друг Эрик Кастнер опубликовал в социальной сети Twitter следующее сообщение:
Помоги привести в форму мою $%! л.. спрашивай меня каждый день: «Сегодня было лучше, чем вчера?» (питание/упражнения) — сегодня: ДА!
Прочитав это сообщение, я понял, что нашел ключ к проблеме лишнего веса. Впрочем, я уже знал эту методику, ведь в жизни мне пришлось успешно решить немало серьезных проблем. Секрет в попытках сделать так, чтобы задача, над которой ты работаешь, сегодня стала лучше, чем вчера. Вот и все. Это легко. И как утверждает Эрик, энтузиазм легко сохранить, имея дело с реальными, осязаемыми шагами по направлению к далекой цели.
Недавно мне довелось поработать с одним из наиболее сложных и безобразных Ruby-приложений, когда-либо попадавшихся мне на глаза. Моя компания унаследовала этот консалтинговый проект от другого разработчика. Нужно было внедрить несколько ключевых подсистем и избавиться от огромного количества ошибок и проблем с производительностью. При попытке внести эти изменения мы обнаружили, что код представляет собой жуткую кашу. Нанявшая нас фирма была ограничена во времени и финансах, поэтому такой роскоши, как возможность написать все заново «с нуля», мы были лишены, хотя этот код проще всего было выкинуть в мусорную корзину.
Мы медленно двигались вперед, внося одно небольшое изменение за другим, причем каждое из них занимало намного больше времени, чем ожидалось. Казалось, что это чудовищное нагромождение кода никогда не закончится. Работа над приложением была утомительной и безрадостной. Но со временем исправления начали вноситься быстрее, а некогда неприемлемая производительность повысилась. И все это благодаря простому стремлению каждый день делать код лучше, чем он был вчера.
Порой это было разбиение огромного метода на более мелкие методы, но со значимыми именами. Иногда это сводилось к удалению иерархий наследования, не принадлежавших к используемой объектной модели. Временами мы всего лишь исправляли неработающий модульный тест. Но так как все эти изменения вносились постепенно, они происходили достаточно безболезненно. Вполне реально переделать один метод за время, обычно уходящее на приготовление чашки кофе или обсуждение последних новостей с коллегами. Небольшое улучшение мотивирует. Ты видишь эффект в том фрагменте, над которым ты работаешь, сразу же после внесения изменений.
Впрочем, даже постепенные изменения не позволяют увидеть эффект в целом проекте. Попытки добиться большего уважения среди коллег или улучшить состояние собственного здоровья, несмотря на отдельные каждодневные улучшения, не приводят к непосредственно осязаемым результатам. Именно поэтому, как мы уже видели ранее, такие большие цели лишают нас мотивации. А значит, в случае больших, сложно достижимых целей, к которым ты стремишься, важно думать не о том, как ты каждый день немного продвигаешься вперед, а о том, как ты каждый день улучшаешь качество работы. К примеру, я не могу гарантировать, что сегодня буду весить меньше, чем вчера, но в состоянии контролировать количество усилий, направленное на достижение поставленной цели. И сделав сегодня больше, чем вчера, я с полным правом могу гордиться своим достижением. Такое последовательное измеримое улучшение качества работы выводит меня из цикла вины и постоянных откладываний, который, в конечном счете, мешает большинству из нас в достижении Больших Важных Целей.
Ты должен радоваться даже небольшим «лучше». Написать сегодня на один тест больше, чем вчера, достаточно, чтобы оказаться ближе к цели «лучше разобраться в модульном тестировании». Если ты начинаешь «с нуля», один дополнительный тест в день будет вполне устойчивым прогрессом. И к моменту, когда ты уже не сможешь показывать лучшие, чем вчера, результаты, окажется, что ты уже «разобрался в модульном тестировании» на достаточном уровне и увеличивать количество тестов дальше просто не нужно. При этом если начиная «с нуля», ты в рамках собственных планов усовершенствования хочешь в первый же день написать пятьдесят тестов, то в этот день ты, скорее всего, тяжело поработаешь, а вот второго дня уже не случится. Поэтому улучшения должны быть небольшими и постепенными, но ежедневными. Кроме всего прочего, небольшие улучшения снижают цену неудачи. Пропущенный день всего лишь сдвигает точку отсчета на завтра.
Читать дальше
Конец ознакомительного отрывка
Купить книгу