Рутинная работа
Когда я только начинал работать программистом в небольшой компании, то процесс работы выглядел примерно так: утром босс слушает наши отчеты и обсуждает новые задачи, если нужно. Затем сразу после планерки мчит куда-то по своим супер-важным делам. Потом появляется после обеда на пятнадцать минут, или вовсе мы его видим только на следующее утро, а срочные вопросы решаем по телефону.
Программисты такой народ, который может и сам себе работы придумать на пустом месте. Но, конечно, лучшего результата можно добиться, если есть четкая задача и выполнять ее можно целый день. Так в принципе и происходило.
Проекты получались разные. Большинство из того, что мы программировали в итоге, не приносило никакой пользы, а пылилось потом в репозиториях. Хотя в момент постановки задачи это казалось наиважнейшей задачей, с дедлайнами, штрафами и всем прочим. За шесть лет работы в этой компании я помню только два по-настоящему стоящих проекта, которые были ценны сами по себе и работали потом на пользу общества. Остальные же таски были похожи на задачи: копать отсюда и до обеда.
Постепенно я рос, задач полезных и бесполезных становилось больше. У нас появился отдел системных администраторов. Причем выездных администраторов, они гоняли по разным фирмам, настраивали сети, 1с-ки, почтовые сервера и антивирусы. Я заметил интересную особенность, когда появлялся новый клиент и нужно было внедрять ему правильную технологию после старого уволившегося администратора, то у меня сразу прибавлялось горящих задач, не связанных напрямую с этой фирмой. Просто нужно было разгребать чуть больше геморроя в разном программном коде.
Сначала я думал, что это совпадение и просто быстрее стучал по клавиатуре, закрывал дедлайны и слушал гневные отповеди босса, если опаздывал со сроками.
Потом, когда волна этих непонятных задач стала четко коррелировать с появлением новых клиентов или же большими поломками у клиентов, я стал задумываться, а не связано ли это каким-то непонятным для меня образом?
Что если я выполняю функцию какого-то центрального процессора, который должен выполнять элементарные операции, а в это время высокоуровневые задачи самой компании чудесным образом решаются? Причем, часто было абсолютно пофиг, исправляю я баг в работающей системе или же пишу какую-нибудь неведомую обработку данных, которые нужны раз в год. Мне просто нужно было усиленно думать и решать.
Немного приоткрылась завеса тайны, когда в мой небольшой отдел наняли еще одного программиста, мне в помощники. Сначала я объяснял ему, что он может сделать, чтобы вместе быстрее решить задачу. После того как он принимался за работу, на меня нападала такая адская жажда улучшить свой код и исправить давно протухшие баги, до которых руки не доходили, что мне ничего не оставалось, кроме как сделать это. Ощущение будто все эти задачи материализуются и уже не просто записи в таск-трекере, а вполне материальные проблемы.
Эврика
Ага, вот оно что. Вот как строится иерархия и держится субординация. Если есть твой подчиненный, то ты можешь делегировать ему исполнение задач. Когда подчиненный исполняет эту задачу, то ты получаешь профит от этого выполнения. Если бы на месте программиста был дворник, то в результате его работы мы получили бы чистоту во дворе. Но программист – это работник интеллектуального труда и в результате его работы мы получаем чистоту разума. От этой чистоты и порядка мы четче можем видеть все недостатки, которые раньше не замечали. Программист, когда берет на себя решение наших задач, позволяет нам очистить внутри нашего сознания место под новые задачи. Поскольку мы явственно понимаем, что думать про это не нужно, решает другой. На место такой задачи можно поставить новую. Так мы усиливаем наши способности по вычислению.
Вернемся к нашим администраторам, которые настраивают Windows в бухгалтерии клиента. Наверняка, у него возникают самые разные трудности: драйвера не ставятся, сеть не ловит, картридж у принтера закончился. Все эти задачи он может решить самостоятельно, но было бы здорово, если бы кто-то за него постоянно додумывал. Чтобы администратор чудесным образом нажимал все кнопки интуитивно и у него все заводилось с первого раза. Вот этим чудесным решателем и выступает программист, которые ловит непонятным образом такие задачи от администратора и решает их в виде хитрого кода. Непонятность скорей всего укладывается в иерархическую структуру компании и подчинение одних сотрудников другим. Ну так, видимо, устроены человеческие существа. Вероятно, такой же принцип в обычной армии, есть рядовые, есть сержанты, а есть офицеры. Исполняешь честно свой долг на любом из уровней, и вся система работает. Будь вас хоть миллион.
Вывод
Отсюда можно сделать вывод, почему часто задачи и проекты после, казалось, бы успешного кодирования уходят на свалку, а вас так и не увольняют. Просто вы (программисты) нужны вовсе не для создания проектов, вы нужны, чтобы генерировать решения и снабжать эфир этой правильной энергией, чтобы другие могли ей пользоваться и быстро решать свои собственные задачи.
А успешные проекты, это как побочный продукт. Просто получается, что совокупность ваших решений удачно вписывается в некий паттерн, который можно использовать много раз. Так появились программные продукты: Windows, Linux, Word, Excel и другие.
P.S.
А наш босс хитрый тип, он прекрасно понимал этот принцип передачи ответственности. Нагружал нас с утра, а сам ехал проворачивать свои сложные проекты: ремонты квартир, покупки автомобилей, оформление ипотеки с выгодными условиями. Потому что энергию наших решений можно и нужно было использовать на всю катушку.
Комментарии (11)
Dick_from_mountain
24.07.2024 06:23+6Просто неорганизованный процесс, не надо придавать ему какой-то потаённый смысл. Я в таком работал, не приносит ничего ни компании, ни руководству, ни работникам кроме зарплаты ( и то ненадолго).
orefkov
24.07.2024 06:23+1Странная фирма, ставить программерам задачи, и потом не пользоваться результатами. Сигнальчик о слабом руководстве. Мне повезло - в бытность свою "внутренним программистом" - результат моей работы был всегда востребован и использовался, что-то уже лет 17 работает.
Batalmv
24.07.2024 06:23+1Как по мне, довольно таки привычная ситуация, где ИТ - это внутренее подразделение большой конторы.
И там конечно не все так, но часто есть реально малополезные проекты, где пишется малополезный код
asatost
24.07.2024 06:23Что если я выполняю функцию какого-то центрального процессора, который должен выполнять элементарные операции, а в это время высокоуровневые задачи самой компании чудесным образом решаются?
Как Вы вообще умудрялись работать программистом, не имея понятия о декомпозиции?
снабжать эфир этой правильной энергией
А у Вас есть "математика" или может быть даже какие-то приборы, которые позволяют эту энергию выразить в числовом эквиваленте?
S_gray
24.07.2024 06:23+3В детстве в руки попалась книжка, что-то вроде "сказок разных народов", но не адаптированная для детской аудитории. Там была древняя монгольская притча примерно такого содержания:
"Один знатный нойон, быстро возвышающийся среди других военачальников, ехал как-то в дальний гарнизон в сопровождении бесстрашного воина, своего верного слуги. Дорога была длинная, спешить было некуда и нойон задремал в седле. И пригрезилось ему, что он ведёт со слугой беседу о смысле бытия, и тот с упоением рассказывает историю своей жизни - о схватках с врагом, долгих боевых походах в неизведанных землях, славных привалах у костра, рядом с верными друзьями. Долго длился этот рассказ, но в какой-то момент конь под нойоном споткнулся, и проснувшегося от толчка нойона осенило: "Воистину, предводителем становишься тогда, когда тебе перестает нравиться вонь пота и мочи твоего собственного коня!""
Thomas_Hanniball
24.07.2024 06:23Вы просто путаете программистов и кодеров. Это 2 разных типа людей.
Программист - это человек высокоинтеллектуального труда, который сначала думает, а лишь затем делает.
Сначала он общается с бизнесом, чтобы понять, какая задача перед ним стоит, зачем её вообще делать, определяет как именно он может помочь бизнесу, ищет разные пути реализации и т.д. Иногда оказывается, что ничего делать не нужно, ведь требуемый функционал есть в Excel и нет никакой необходимости его дублировать в своём "самописном велосипеде". Или, например, проблема носит организационный характер, поэтому её надо решать организационными методами, а не техническими методами путём создания очередного "самописного велосипеда".
Кодер - это человек низкоинтеллектуального труда, вся жизнь которого заключается в битиках и байтиках. Написание кода для него является самоцелью, ведь он верит, что это его предназначение и именно за это ему платят деньги. Такие люди не хотят вникать в проблемы бизнеса, разговаривают на своём "птичем языке" и понятия не имеют, как в дальнейшем будет использован результат их труда. Такие люди даже не пытаются искать готовые решения, где нужный функционал уже реализован, а отдают предпочтение написаю своих "самобытных велосипедов". Всё это приводит к тому, что почти все эти "самобытные велосипеды" через короткий срок времени уже никому не нужны и просто валяются в репозитории, покрываясь слоем пыли.
Каждый в жизни выбирает свой собственный путь. Так что не всем дано стать программистами, кто-то всю жизнь работает кодером и его это устраивает.
S_gray
24.07.2024 06:23+1Странноватое рассуждение... Мол, есть высокоинтеллектуальная элита, вникающая в нужды аж самого (!) бизнеса, ищущая общие решения и какое-то быдло, "создающее никому не нужные велосипеды". Прежде всего, существует разделение труда. Первая группа - это постановщики задач, посредники между клиентом и разработчиками, которые должны, вникая в специфику запросов клиентов, перевести задачу с языка бизнес-сферы (user/business requirement specification - URS) в язык технического задания с целью дальнейшего формирования software requirement specification SRS. И они отнюдь не полубоги - у них там свои велосипеды... Клиент редко удовлетворяется решениями из Excel - он, как правило, приходит к идее необходимости разработки заказного ПО после того, как вдоволь натрахался с "универсальными решениями". А вторая группа - это не "кодеры", а разработчики ПО, - люди, профессионально решающие задачи, поставленные в SRS. И это не только программисты, а ещё и системщики, архитекторы, технические писатели и т.п. Да, часто бывает, что все эти роли выполняются одним-двумя-тремя людьми, если задача невелика, но сами роли от этого никуда не деваются. И да, кто-то в этой группе сидит и тихо пишет код, общаясь с коллегами на том самом "птичьем языке", сочиняет велосипеды (потому что это быстрее и надёжнее, чем приспособить какое-нибудь громоздкое, плохо документированное легаси, которое умрет через пять лет).
gideon-ul
24.07.2024 06:23+1В любой деятельности высококвалифицированные работники, есть средняки и есть двоечники, которые ничего не делают. Это нормально. Так устроено человеческое общество.
askv
Приходила мысль, что некоторым людям платят кое-какую зарплату и держат на рабочем месте, просто чтобы они были хоть чем-то заняты и не шлялись по улицам, не устраивали митинги, не задумывались о том, о чём думать не надо и т.д. и т.п.
Rumantic Автор
FAANG нанимаю лучших спецов, чтобы они не создавали конкурентов )