Илья Репин "Бурлаки на Волге"

Рутинная работа

Когда я только начинал работать программистом в небольшой компании, то процесс работы выглядел примерно так: утром босс слушает наши отчеты и обсуждает новые задачи, если нужно. Затем сразу после планерки мчит куда-то по своим супер-важным делам. Потом появляется после обеда на пятнадцать минут, или вовсе мы его видим только на следующее утро, а срочные вопросы решаем по телефону.

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

Проекты получались разные. Большинство из того, что мы программировали в итоге, не приносило никакой пользы, а пылилось потом в репозиториях. Хотя в момент постановки задачи это казалось наиважнейшей задачей, с дедлайнами, штрафами и всем прочим. За шесть лет работы в этой компании я помню только два по-настоящему стоящих проекта, которые были ценны сами по себе и работали потом на пользу общества. Остальные же таски были похожи на задачи: копать отсюда и до обеда.

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

Сначала я думал, что это совпадение и просто быстрее стучал по клавиатуре, закрывал дедлайны и слушал гневные отповеди босса, если опаздывал со сроками.

Потом, когда волна этих непонятных задач стала четко коррелировать с появлением новых клиентов или же большими поломками у клиентов, я стал задумываться, а не связано ли это каким-то непонятным для меня образом?

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

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

Эврика

Ага, вот оно что. Вот как строится иерархия и держится субординация. Если есть твой подчиненный, то ты можешь делегировать ему исполнение задач. Когда подчиненный исполняет эту задачу, то ты получаешь профит от этого выполнения. Если бы на месте программиста был дворник, то в результате его работы мы получили бы чистоту во дворе. Но программист – это работник интеллектуального труда и в результате его работы мы получаем чистоту разума. От этой чистоты и порядка мы четче можем видеть все недостатки, которые раньше не замечали. Программист, когда берет на себя решение наших задач, позволяет нам очистить внутри нашего сознания место под новые задачи. Поскольку мы явственно понимаем, что думать про это не нужно, решает другой. На место такой задачи можно поставить новую. Так мы усиливаем наши способности по вычислению.

Вернемся к нашим администраторам, которые настраивают Windows в бухгалтерии клиента. Наверняка, у него возникают самые разные трудности: драйвера не ставятся, сеть не ловит, картридж у принтера закончился. Все эти задачи он может решить самостоятельно, но было бы здорово, если бы кто-то за него постоянно додумывал. Чтобы администратор чудесным образом нажимал все кнопки интуитивно и у него все заводилось с первого раза. Вот этим чудесным решателем и выступает программист, которые ловит непонятным образом такие задачи от администратора и решает их в виде хитрого кода. Непонятность скорей всего укладывается в иерархическую структуру компании и подчинение одних сотрудников другим. Ну так, видимо, устроены человеческие существа. Вероятно, такой же принцип в обычной армии, есть рядовые, есть сержанты, а есть офицеры. Исполняешь честно свой долг на любом из уровней, и вся система работает. Будь вас хоть миллион.

Вывод

Отсюда можно сделать вывод, почему часто задачи и проекты после, казалось, бы успешного кодирования уходят на свалку, а вас так и не увольняют. Просто вы (программисты) нужны вовсе не для создания проектов, вы нужны, чтобы генерировать решения и снабжать эфир этой правильной энергией, чтобы другие могли ей пользоваться и быстро решать свои собственные задачи.

А успешные проекты, это как побочный продукт. Просто получается, что совокупность ваших решений удачно вписывается в некий паттерн, который можно использовать много раз. Так появились программные продукты: Windows, Linux, Word, Excel и другие.

P.S.

А наш босс хитрый тип, он прекрасно понимал этот принцип передачи ответственности. Нагружал нас с утра, а сам ехал проворачивать свои сложные проекты: ремонты квартир, покупки автомобилей, оформление ипотеки с выгодными условиями. Потому что энергию наших решений можно и нужно было использовать на всю катушку.