Что делать с "крутыми" программистами?!!
Что делать с "крутыми" программистами?!!
Под моей статьёй про работу с Codex отметились "специалисты" от IT, которые объяснили мне, что я ни хрена не понимаю в программировании. Очень рад за них. Сегодня у меня конкретные примеры из жизни с такими специалистами и пару вопросов.
Сразу вопрос: как получается, что практически те же люди, которые рассказывают мне про программирование, на том же сайте спрашивают, где это я в России видел зарплаты выше двухсот или трёхсот тысяч рублей? Ну просто если Вы настолько умны и круты, ну не пишите плиз что в России нет таких зарплат. Ну я больше четырёхсот тысяч на руки в месяц получал ещё семь лет назад в ИТ. А двести тысяч на руки мне предлагали в Москве в 2011 году, когда я ходил по собеседованиям. Причём предлагали в нескольких конторах. На мой взгляд, люди, которые готовы были платить мне такие деньги из своего кармана, имели некоторое представление о моей квалификации. Только еще раз отмечу: я себя не позиционирую как программиста и разработчика. Платили мне не за это.
В «Сахалинской энергии» я работал и ведущим специалистом, и руководителем сектора. Кому интересно, это легко проверить, у меня в конце концов запись в трудовой книжке есть. В нашей компании процентов девяносто жителей города хотели работать. Кто жил в Южно-Сахалинске поймет о чем речь. У наших айтишников зарплаты были одними из лучших в городе, и с подбором людей у нас была довольно приятная ситуация. В мой отдел на позицию специалиста как то взяли руководителя департамента из банка, у которого до этого было больше 20 ИТишников в подчинении. Зарплата у нас была хорошая и соц пакет.
Человека обычно сначала брал к себе подрядчик (не всегда как с бывшим руководителем департамента из примера выше). Он работал на наших проектах, мы видели, что ему можно поручить, сколько времени у него это займёт и что он в итоге сдаст. Потом, когда у нас освобождалось место, мы уже знали, кого хотим к себе забрать. Напрямую с рынка брали редко. Так как текучка минимальная - освобождения любой позиции ждали годами.
Казалось бы, при таком выборе какие вообще могут быть сложности с поиском толкового программиста? Так вот, сложности были.
Возьмём тот самый SharePoint, про который я писал. Когда я пришёл руководить сектором, его уже внедрили, лицензии оплатили и всякого говна на нём успели наделать до кучи. Сам я бы это говно от Microsoft у себя ни за что не внедрил, но меня на тот момент никто и не спрашивал. Два программиста тоже достались мне в наследство. Оба начали заниматься SharePoint уже после того, как его внедрили. Руководителя того проекта, кстати, впоследствии дважды понижали в должности. Он остался на позиции главного специалиста и был самым опытным разработчиком в этом самом шарепоинте (и не моим подчиненным. То есть руководить я им не мог. Только согласовывать). А нам оставалось работать с тем, что купили. Обосновать покупку другой платформы, когда за эту уже заплачено, я даже не пытался.
Менеджеры Microsoft, в том числе через Softline, регулярно пытались продать мне ещё и их Teams и другие облачные сервисы. Я их динамил, в частности ссылаясь на вопросы по персональным данным и 152-ФЗ. Мол ни одного сервера Microsoft в России нет и перс данные в нарушение российского законодательства будут храниться за границей, что недопустимо. Мне объясняли, что данные за границу передаются в зашифрованном виде и на зарубежных серверах тоже лежат в зашифрованном виде. Я говорю, ребята, не гоните. Я ведь могу приехать за границу, зайти в свой аккаунт и прочитать переписку, которая лежит у вас на сервере за границей. Какая нахрен трансграничная передача данных?!!. Что вы мне тогда рассказываете про шифрование при передаче? Правда, я бы с удовольствием воспользовался возможностью отдать предпочтение российскому разработчику. Правда, ничего путного из российских решений под эту задачу я тогда на рынке не нашёл. Один из начальников отдела на очередном совещании сказал как то: блин, мы тут все такие патриотичные но в очередной раз внедряем иностранный софт. (и это была текущая реальность).
Теперь про задачу, которую привожу в пример. Нам понадобилось перенести в SharePoint учёт инцидентов по безопасности. По части программирования задача довольно простая. Несколько связанных таблиц, справочники, уведомления по почте (уведомления настроены в SharePoint). А для производства вещь серьёзная, потому что речь шла о заводе по сжижению природного газа. Пожар на СПГ-заводе, если кто не понимает, это п***ец. Это, если что, техногенная катастрофа. Катар не даст соврать.
По самому процессу: я сразу попросил программистов сделать базовый трекер, чтобы потом можно было взять его, добавить несколько полей и получить следующий трекер уже для другой задачи. Условно поля на память: дата начала, срок, критичность, название, описание, ответственные есть в любом трекере. Вот это и надо добавить в базу.
Процентов сорок, а то и пятьдесят всей мелкой разработки (small development) в нашем секторе приходилось на такие задачи. Менялось то, что надо учитывать, менялась часть полей. А трекер нам всё равно в очередной раз предстояло делать. Вот чтоб не заниматься этим дрочевом нужно было стандартизировать работу и в дальнейшем на одной базе уже хреначить всем эти самые трекеры.
Вроде как для меня крайне прозрачная задача. Но я сразу сталкиваюсь с тем, что наш главный специалист по SharePoint (а он типа выступает архитектором для моего программиста) начинает меня динамить и всячески от этого отказываться. Я был уверен, что он решил "этого выскочку на место поставить". Меня в смысле. Ок. Перед вторым совещанием я отдельно поговорил с другими участниками проекта. В том числе привлек двух наиболее опытных и грамотных программистов в компании. Реально начал даже в себе сомневаться в какой то момент, но один хрен разобрались. Со всеми по постановке задачи у нас взаимопонимание. Устраиваю общее большое совещание. В том числе с начальником начальника этого специалиста (благо уже грамотного Айтишника). Выяснилось, что, кроме этого ведущего специалиста, все понимают, зачем нам нужна общая основа. Ему ещё раз объяснили, договорились и с ним. Решение я записал в протокол, протокол разослал всем участникам и приложил к материалам проекта. Когда мы сдали трекер инцидентов, почти сразу встал вопрос о разработке следующего. Я говорю, ну тут у нас всё готово, база есть, добавим пару полей, и будет нам счастье. А программист мне отвечает, что базового класса нет. Разбираемся - реально нет. Он проигнорировал ТЗ, согласованное до этого. (Признаю мою вину на этапе разработки что я не проконтролировал, но мне мои программисты дали некорректный ответ. Они посчитали что база сделана. Я сам в потроха не полез да и не шарю в этом шарепоинте и не моя это задача. В общем классика. Но у меня головняка и без них было в тот момент куча. Запиши в ТЗ, проверь и еще раз перепроверь. ТБМ)
После долгих препирательств до меня дошло, что наш ведущий специалист в принципе не понял, зачем я просил сделать базовый класс (базовый трекер). Трекер инцидентов работает? Работает. Он считает что все ок. А то что для следующего, получается, опять надо делать то, что мы только что делали несколько месяцев его уже не особо то и интересует. И вот этот человек тоже получал сильно больше чем получают по рынку. В компании, которая могла выбирать практически из всех айтишников города и имела возможность посмотреть на большинство кандидатов в работе задолго до того, как предложить им место.
Я к тому моменту начинаю анализировать другие его поделки и у меня волосы встают дыбом. Я то думал он меня динамит и пытается дискредитировать или просто саботирует мой проект. А он оказалось тупо не шарит. В частности, был сделан им календарь для руководства компании. Всем понравилось - все классно. Говорят: нам для продакшена такой же нужен. ЧТо он делает ? Он (ТБМ) копирует и делает второй точно такой же проект (второй был до меня). Я его поймал на том, что его попросили сделать трекер для СПГ завода. Он уже успел сделать проект, благо не сдал его. ОН для СПГ завода делал точную копию предыдущих двух разработок.
То что секретарю директора СПГ завода потом надо было вносить рабочий календарь в ТРИ (!!!) системы его не смущало. (директор СПГ завода входит в руководство компании и в руководство продакшена, то есть попадает в оба предыдущих трекера). ТБМ, ТБМ, ТБМ. Мол попросили же быстро сделать. ну я и делаю.ТБМ. А то что этот календарь правильно вообще то было сделать по производственному табелю ему вообще даже не мыслимо. Вы как это потом поддерживать гавно собираетесь ? !! Когда сделаете 20 календарей и надо будет вносить изменения? - "...Я чет об этом не подумал...". А то что секретарь как обезьяна будет в три календаря информацию вносить (и гарантировано появятся расхождения и не только у секретаря директора СПГ завода и у остальных ...)? - "... ну я об этом не подумал...". То что надо тупо доработать базовый календарь и все делать в одном приложении ему даже в голову не пришло. И это прошу заметить ведущий специалист. Вернее ГЛАВНЫЙ.
Сейчас уже не помню, но я и в других его проектах такие же проблемы сразу раскопал. Меня тогда это закусило, но начальник этого "специалиста" не отдупляет вообще о чем я. А вот уже начальник начальника мне говорит: "Да я уже ТБМ с ним! Зря думаешь его что ли дважды понижали?!! Чо делать? Давай его уволим?!!" - "...твой сотрудник, делай что хочешь...". Но я его буду гнобить за его косяки. А их до хрена. Ок - гноби. Прошу заметить: зарплата, отбор и т.д. А на выходе имеем просто ... ТБМ. Я сейчас даже когда пишу - материться начинаю. Хотя прошло уже 6 лет.
Когда я пишу, что полтора месяца поработал с Codex и оцениваю его стартовый уровень выше, чем у программистов, которые делали мне этот трекер, работали по контракту, те с кем я работал в свое время в консалтинге, я имею в виду вполне конкретных людей. Я им ставил задачи, согласовывал решения и принимал у них работу. Также как у Кодекса. При этом кодексу вообще похрен на чем писать. А наши программисты обычно знают очень короткий стек технологий.
В предыдущей статье я, между прочим, подробно описал, как сам Codex поменял мне архитектуру и сколько времени у меня ушло, прежде чем я понял, что он натворил. (от трех до пяти дней. Как считать). То есть у меня нет иллюзий. Только вот у меня в жизни была возможность посмотреть, как с согласованной архитектурой обходится живой ведущий специалист. Его я ещё и на два совещания позвал. И зафиксировал на бумаге согласованное правильное решение. И если вы думаете что такие претензии у меня к одному программисту - вы глубоко ошибаетесь. Помнится я просил у начальства командировку в Казань, чтоб замочить нафиг одного программиста в Казани. Обычный типовой модуль на 200 строк кода этот мудак умудрился захерачить через классы, в них осталось куча неиспользуемого кода, ненужные библиотеки, непонятные циклы и я не могу не принять это гавно, потому что "оно ж работает". В ТЗ и в договоре нет понятия "нормальный код". Когда пришло время внести правки в модуль, вместо обычных 15 минут у меня это заняло пол дня, потому что написано коряво было и внести правки было мне лично непонятно как. Ну там вместо обычных 200 строк кода была несколько тысяч, какие то циклы непонятные и т.д. Вот тогда я и просил командировку.
Есть старая шутка, что если бы водители устраивались на работу примерно так, как программисты, то в резюме бы писали:
умею ездить на всех типах автомобилей
умение выйти из аварийных ситуаций без царапины
экстремальное вождение
участвовал в гонках формулы один
испытания новых типов автомобилей
чемпион мира
и т.д.
У нас и с писателями в комментариях похожая история. Людей, которые нахватались профессионального жаргона и готовы объяснить, как надо писать, я встречал много. На сайте афтершок в том числе таких в комментариях уйма. С программистами мне такое попадалось регулярно. Пока человек рассказывает, что он умеет, всё звучит убедительно. Проверить это мне обычно удавалось потом, когда приходило время забирать у него работу. По комментарию от 4orever видно что это опытный матерый программист. Просто людей, которые считают себя хорошими программистами, я за двадцать лет в IT встретил гораздо больше.
Мир программирования, думаю, очень сильно изменится.

источник https://aftershock.news/?q=node/1666717