Программист-фанатик
Шрифт:
Когда дело доходит до работы, меньшее может превратиться в большее. Экстремальные программисты любят повторять, что уставший человек не может работать с той же эффективностью, что и отдохнувший. Когда мы доходим до предела, творческий подход угасает, а качество работы существенно снижается. Мы начинаем делать глупые ошибки, которые стоят нам времени и денег.
Большинство проектов являются долгосрочными. Невозможно пробежать марафон в том же темпе, что и спринт. Если ты начнешь засиживаться допоздна на работе, краткосрочная продуктивность повысится, но в долгосрочной перспективе ты рано или поздно надорвешься настолько
Проект — это не спринтерская дистанция, а марафон.
Ко времени можно относиться как к деньгам. Юношей я работал неполный рабочий день за минимальную плату и был бы счастлив, будь у меня столько же денег, сколько сейчас я трачу на всякую ерунду. Сейчас у меня так много денег, что я уже не обращаю внимания на разнообразные мелкие расходы. Тем не менее в прошлом я каким-то образом умудрялся жить. У меня были квартира и машина, я не голодал.
Все это есть у меня и сейчас. Но нельзя сказать, чтобы я вел роскошную жизнь. Просто в те времена, когда мне не хватало денег, я пытался оптимизировать свои расходы. Получая в итоге, по сути, аналогичный результат.
Скудные ресурсы мы считаем более ценными и стараемся использовать их эффективно. Этот подход применим не только к деньгам, но и ко времени. Представь четвертый день своей семидесятичасовой рабочей недели. Без сомнения, ты будешь прилагать героические усилия. Но с четвертого дня ты, непременно, начнешь расслабляться. Стрелки показывают всего 10:30 утра, а ты знаешь, что останешься на рабочем месте еще на несколько часов после того, как все остальные уйдут домой. Что мешает некоторое время уделить чтению информации о последних технологических новинках?
Если рабочего времени слишком много, его реальная ценность заметно снижается. При семидесяти часах ценность одного часа куда меньше, чем в случае, когда их у тебя всего сорок.
Если стоимость доллара падает вследствие инфляции, для покупки такого же, как и раньше, набора вещей потребуется большая сумма. При снижении ценности часа на выполнение одной и той же работы будет уходить больше времени. Восьмичасовое горение Боба Мартина налагает на тебя ограничение и дает тебе стратегию действий в новых условиях. По дороге на работу ты думаешь: у меня всего восемь часов! Быстрее, быстрее, быстрее! Наличие жестких временных рамок естественным образом позволяет распределить время более эффективно. Можно начать с набора заданий на сегодня, определить их приоритеты и приступить к выполнению по одной за раз.
Восьмичасовое горение создает среду, напоминающую крайне продуктивные выходные в студенческие годы, когда тебе нужно быстро подготовиться к зачету по лекциям, которые ты прогуливал, или написать наконец курсовую работу, павшую жертвой постоянных проволочек. Разница — в ограниченной по времени зубрежке. Время зубрежки крайне продуктивно, потому что его не хватает, а значит, оно очень ценно. Восьмичасовое горение представляет собой метод изначально плотной работы с регулярным графиком, при котором тебе не потребуется бодрствовать ночами, вливая в себя кофе и энергетики.
Как работники
Моя работа обычно не дает мне покоя, когда я уделяю ей недостаточно внимания. Когда я спускаю какие-то дела на тормозах или позволяю им накапливаться. В этом случае работа отправляется со мной домой и не дает мне спокойно расслабиться. При каждодневной интенсивной трудовой деятельности ты обнаруживаешь, что перестал тащить домой рабочие проблемы. И дело не в том, что ты намеренно не даешь себе работать сверхурочно. Твой мозг просто не позволяет этого делать.
Распоряжайся своим рабочим временем аккуратно. Работай меньше, и ты начнешь больше успевать. Работа всегда приносит больше удовольствия, когда ты можешь от нее отдохнуть.
1. Постарайся как следует выспаться сегодня. На следующее утро позавтракай и приступи к работе в определенное время (лучше чуть раньше, чем обычно). Интенсивно работай в течение четырех часов. Отведи час на обеденный перерыв. Затем поработай еще четыре часа с такой интенсивностью, чтобы в конце концов почувствовать себя совершенно изможденным. Возвращайся домой, расслабься и развлекайся.
Совет 29
Научись проигрывать
Как программисты мы знаем, что чем скорее в процессе разработки будут выявлены ошибки, тем более надежной выйдет программа. Модульное тестирование помогает обнаружить странные ошибки на ранних стадиях. Если нам удается быстро выявить в собственном коде причудливые неполадки, мы счастливы. Хотя сами ошибки указывают на некоторые недостатки нашей работы, их своевременное выявление является хорошим признаком, позволяющим надеяться на корректно функционирующую программу.
Нас учили, что в начале работы можно совершать ошибки. Ты хочешь узнать, когда они возникают, чтобы внести исправления или пометить проблемный фрагмент кода. Когда ты пишешь код, то не прилагаешь особых усилий для устранения небольших программных неполадок, неизбежно сопровождающих процедуру разработки.
Ошибка — это попытка кода донести до тебя информацию. Часть процесса стабилизации. Поэтому мы специально добавляем инструкции, приводящие к падению нашей программы, когда что-то идет не так, или модульные тесты, в случае нашего промаха показывающие красный флаг.
Эти небольшие неполадки кроме всего прочего дают нам понять, проблем какого типа можно ожидать. Если ты никогда не ходил по минному полю, откуда тебе знать, на какие куски грязи лучше не наступать? Если программа не подает никаких сигналов, откуда тебе знать, в каком месте притаилась опасность? При написании кода вслепую приходится постоянно быть начеку.
Программировать безопасно крайне важно. Когда что-то идет не так, качество программного обеспечения подвергается испытаниям. Неизбежно возникают ситуации, реакцию приложения на которые вы не запрограммировали. Аварийные завершения и синие экраны в окончательной версии кода означают, что программист не поработал над ошибками, которые не смог предвидеть.