Время — единственный для любого из людей ресурс, который ограничен даже в теории. Поясним на примере придуманного нами программиста Василия. Пусть (мы ведь оптимисты, правда?!) Васе суждено прожить на этом свете ни много ни мало 80 лет. Умножая это число на 365 суток в году и на 24 часа в сутках, получаем, что в Васином распоряжении имеется около 700 тысяч часов — вот вся его жизнь! И 250 тысяч у Васи уже в прошлом. Кроме того, из оставшегося времени можно спокойно вычесть одну треть, которая будет потрачена на сон. И вот представьте, просыпается однажды утром наш герой, берет в руки свежий номер «Компьютерры», открывает эту статью и осознает, что в здравом уме осталось ему потратить порядка 300 тысяч часов, что с каждым часом его жизни происходит декремент $hours— и что счетчик этот включился еще в момент его рождения… и начинает задумываться, на что же можно так обменять свое собственное время, чтобы оно не сгорало, а конвертировалось в ценности иного рода.
Каждый из нас обменивает свое собственное время на что-либо. Самый распространенный способ потратить время — это купить на него деньги. Так поступают, пожалуй, все работающие люди, точно так же поступает и Василий. Работая программистом, он за свои 176 часов (при восьмичасовом рабочем дне) ежемесячно приобретает… ну, допустим, штуку вечнозеленых. О том, в каком городе и в какой организации ему это удается, уточнять не будем. У него остается еще 304 непотраченных часа в месяц, так что продолжим их делить. Время нерабочее делится на время околорабочее и на досуг. Околорабочее отнимает в среднем по четыре часа каждый будний день — это время от утреннего будильника до прихода на работу плюс время на то, чтобы прийти после работы в себя. Васе ведь надо добраться до дома, покушать, поваляться полчасика на диванчике, чтобы утрамбовать вертящиеся в голове мысли… А оставшиеся 52 часа в неделю — это его досуг. Два шестнадцатичасовых выходных и пять четырехчасовых вечеров тратятся на общение с друзьями и с подругами, на просмотр фильмов и телепередач, на чтение журналов, на домашние дела и прочие мелкие преобразования собственного информационного и физического пространства, направленные в основном в сторону отдыха и получения удовольствий. Если мы сейчас вдруг возьмем и начнем советовать Васе, как ему следует распоряжаться своим досугом, то у нас появится шанс оказаться именно там, куда Вася нас пошлет после наших указаний. Так что оставшаяся часть статьи посвящена вопросу о том, как не дать проектам и идеям задохнуться в дефиците самого дефицитного ресурса.
Молодые специалисты частенько говорят, что у них нет времени заниматься научной деятельностью, исследованиями в специальных областях технологии программирования, написанием документации и т. п. Некоторых это возмущает, но факт остается фактом. Вот, к примеру, наш Вася занимается развитием двух программных проектов в своей организации, еще одним проектом он занимается для души, а еще он является барабанщиком в некой гаражной команде и мечтает поскорее записать свой первый альбом. Поскольку лишнего времени у Васи действительно нет и в ближайшем будущем не предвидится, ему ничего не остается, как смириться с реальностью и попытаться извлечь из нее максимальную выгоду. А для этого нужно грамотно распределить дефицитное время!
Самая банальная рекомендация — составить график, в котором время работы над каждым проектом было бы грамотно распределено. Большинство программистов избегает составления различных графиков и расписаний, а то меньшинство, которое их все же составляет, наверняка делает это либо для начальства, либо просто для того, чтобы оно у них было. Но никто в среде программистов по-настоящему не верит в графики, кроме, быть может, менеджеров верхнего звена, верящих еще и в то, что ни один программный проект невозможно завершить в срок, и даже к пробуждению Ктулху…
Итак, отчего же Василий не тратит свое время на составление планов? Тому есть две главные причины. Во-первых, это действительно непросто, а с учетом отсутствия у него опыта проектирования по графику — особенно непросто. Во-вторых, он, как и большинство программистов, не верит в какие-либо графики. Зачем ему тратить умственные усилия на составление расписания, когда написание куска кода отнимет столько времени, сколько оно отнимет, а время на его отладку — вообще штука недетерминированная?