«Привет! А расскажи, как работается в …?»

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

Целевая аудитория текста — бывшие коллеги из Я, и возможно другие люди из индустрии. Перед прочими заранее извиняюсь за малопонятный текст.

Дисклеймер: этот пост — художественный вымысел, совпадения с реальностью вам только кажутся. Only a fool would take anything posted here as fact.

Итак, первый вопрос: «Как работается в Б?»

* * *

Да примерно так же как в Я, по большому счёту. И то, и другое — большие компании, которые фазу экспоненциального роста уже прошли. Точно так же надо работать над маленькой запчастью чего-то большого, бороться с инфраструктурой, договариваться со смежниками, проходить полугодовое перфоманс-ревью (отзывы, оценки, калибровки…), писать планы на следующий год и потом за них отчитываться — всё то, от чего люди из стартапов и компаний поменьше по первости на стену лезут. Се ля ви, по рассказам оно и в MANGA примерно так.

Ещё одно сходство в том, что в большой компании всё бывает по-разному. В Б я попал в ту его часть, что занимается общекомпанейской инфраструктурой, и там прямо очень похоже на Я, вплоть до бывшего шефа из Я за соседним столом первое время :-) (Рома, привет!) При этом один интерфейсник из продуктовой части отзывался о нас как «у них там ботанический сад: сидят ботаники и что-то ботают», так что, видимо, в других частях Б всё разительно иначе.

Но есть и различия. Главное — Б намного менее технологичен. Труба пониже, дым пожиже. Это не потому что Б какой-то не такой, это просто Я фантастически крут и находится на острие прогресса; по сравнению с Я почти везде будет жиденько. Ну и к тому же у Б предметная область попроще: хоть вы наверное и сильно недооцениваете технологическую сложность и количество рокет-саенса, стоящего за сайтом Б, но это не веб-поиск и не самоуправляемые автомобили. Другого масштаба задача.

У этой «меньшей технологичности» есть неожиданная обратная сторона: куда меньший NIH-синдром. Я — софтверная компания, которая способна на невероятные штуки в духе «джира говно не отвечает нашим растущим потребностям, поэтому мы напишем свою, лучше» — и написать (не шутка ни разу, таск-трекер от Я всем горячо рекомендую), или «у нас тут в компании развелось три разных платформы для мап-редьюса бигдаты, из которых две мы написали сами, давайте оставим какую-то одну» — и оставить ту, что написали сами, потому что она очевидно лучше, и вообще хадуп говно трудно развивать и эксплуатировать. Это всё очень здорово, но приводит к тому что Я всё. делает. сам. От больших штук до очень маленьких и напрямую к его бизнесу не относящихся. Б же способен покупать чужие программные продукты, и покупает их в большом числе. У меня одно из занятий в последний год было среди прочего — интеграция в Б одного такого купленного как SaaS продукта — аналог которого в Я или уже написали сами, или скоро напишут. Чё там, есть уже в Я своя платформа для дистрибьютед-трейсинга? :-)

Корпоративная культура тоже другая — более, хм, корпоративная, и к тому же с верхним менеджментом в Штатах. Того уровня открытости, прямоты и прозрачности, что есть (был?) в Я, лучше не ждать (и с этим постом я хожу по охрененно тонкому льду). Внутренняя коммуникация выхолощена, в сообщениях сверху много такого, что в Я назвали бы «корпоративный булщит», а что-то похожее на э-шку (не по форме, а по содержанию) в Б водится только в закрытом русском чатике.

Но сходства всё равно больше, чем различий, порой до мелочей. Помнится, в последние годы перед моим уходом из Я горячими темами были «монорепа vs мультирепа» и «переезд в облака». Так вот, вы не поверите…

* * *

Ещё одно важное отличие — work-life balance. Он в Б намного, намного лучше и здоровее чем в Я. Заслуги Б в этом, впрочем, особой нет, а есть заслуга голландского трудового законодательства. Самые разные вещи, о которых я в Я даже не задумывался, оказывается можно делать лучше.

Вот например. В Я было очень не принято работать «с десяти до шести». Ну то есть если у тебя какая-то уважительная причина есть — ребёнок маленький или ещё что, то ладно, но в целом, если ты себя так ведёшь, то это поведение недостаточно проактивное и высокогрейдовое. Надо быть всегда на связи и рабочий день рабочим днём не ограничивать: офис открыт круглосуточно, корп. ноутбуки без излишних ограничений и шпионства — живи этим, Я же стоит того, чтобы им жить (и это так). Мне это казалось очень хорошей сделкой — я годами ходил на работу к четырём (и сваливал в районе полуночи), но зато не имел личного ноутбука вообще. А зачем? Но вот я перешёл в Б, и оказалось, что можно придти на работу в десять, достать ноутбук из шкафчика, поработать до шести, убрать обратно в шкафчик и уйти. И в остальное время работы в твоей жизни нет. Круто, да?

Или вот ещё. В Я у «админов» (так в Я называли SRE) в должностные обязанности входил он-колл в нерабочее время — подскакивать ночью на мониторинг, если вдруг что. «Вдруг что» случалось ох как часто, и жизнь админа в Я всегда была нервной и неспокойной; без рабочего ноутбука с VPN они дальше туалета не ходили — и в нерабочее время тоже. Нет, ну а как? Должен же кто-то сервис поднять, если он в неурочное время упал, да? да?

Нет. Оказывается, что если есть трудовое законодательство, которое такое запрещает, то можно иначе: Б имеет по небольшому офису с командами дежурных SRE на западе США и в ЮВА, что позволяет закрыть все сутки восьмичасовыми дежурствами в рабочее время. А амстердамским SRE за дежурства в нерабочее время платят — отдельно за реально затраченное время, отдельно за сам факт он-колла. Круто, да? И вот что мешало Я открыть офис во Владивостоке, нанять туда полсотни админов и избавить московские смены от ночных подъёмов? Ничего не мешало, но зачем это делать если можно не делать и продолжать ездить на бесплатном энтузиазме двадцатилетних. Капитализм-с.

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

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

«У меня ребёнок маленький, мне по ночам к нему надо вставать, а не к сервису!» — договорись с командой, чтобы за тебя дежурили они. Или сделай так, чтобы твой сервис не ломался по ночам, лол.
«Я нанимался программистом, а не девопсом!» — теперь здесь так. Не нравится — уходи.

( Олег С., ты хороший и я тебе за всё очень благодарен, честное слово, но эта история на тебе вечным пятном. Д. Н-в, ты гондон и продал своих людей за плюшки от начальства. )

Кое-кто и правда ушёл, но большинство съело, и я тоже съел. Ох, это восхитительное время, когда из команды на шесть человек нас осталось двое (привет, Илья!), и мы дежурили поодиночке неделю-через-неделю за сервис, которому ну совсем нельзя ломаться. То есть, если ты идёшь в душ — не забудь положить телефон на полочку, чтобы не пропустить звонок, а если едешь куда-то, где нет связи (на самолёте, например, летишь) — просишь напарника тебя на это время подстраховать. Летать на самолёте обоим одновременно — нельзя. Несладка она, жизнь дево-пса.

Так вот, в Б такое маловероятно. Не потому что Б такой хороший, нет — капитализм везде капитализм. А потому что в NL в любой компании больше чем на полсотню человек есть т.н. совет предприятия — «совет рабочих депутатов» я его называю — выборный орган, который среди прочего имеет власть блокировать решения бизнеса об изменении условий труда. Например, такие. Круто, да?

Сказки это всё, скажете. Где это видано, чтобы решения серьёзных людей блокировались депутатами от техподдержки. Я признаться и сам так думал, но нет. Незадолго до короны в Б прошли выборы в совет, и на момент её начала состав его был боевитым и не перегоревшим. И тут настала корона и Б решил провести сокращения.

Б — это не только разработка, у него очень много сотрудников «попроще» в офисах по всему миру. И в тех странах, где трудовое законодательство в пользу бизнеса, сокращения прошли как любит делать бизнес: в обстановке строгой секретности HR и начальство составляют расстрельные списки на свой вкус, потом всех по списку одним днём увольняют. На выходе получаешь выходное пособие x2 от положенного по закону, и если ты его взял, то подписался под тем, что претензий к компании у тебя нет.

Но не в NL. В NL есть совершенно конкретное законодательство о том, как нужно проводить сокращения, и проводить их нужно не так. Совет рабочих депутатов проконсультировался с профсоюзами, закусил удила и пошёл в бой. Ох, как они были хороши! Я не могу писать подробности, но по итогам — 1) почти никто не был сокращён насильно 2) сокращения случились на полгода позже, чем должны были бы 3) сотрудники много нового узнали о правах, которые у них есть, и об истинных причинах сокращений 4) членство в профсоюзе резко подросло 5) вангую что впредь верхнее руководство десять раз подумает, прежде чем затевать сокращения сверх обычного churn rate.

Уже после того, как был готов черновик этого поста, мне рассказали, что давно, ещё до моего в Б прихода, бизнес и здесь пытался «расширить он-колл» и заставить разработчиков по ночам дежурить. Попытка была заблокирована советом.

Вот так. Социализм строили в СССР, а построили в NL, на родине капитализма.

И кстати в ту же копилку, про влияние трудового законодательства на корпоративную культуру. Всем хорош Я, но была (есть?) у него очень мрачная деталька: ревью. Я не против ревью и грейдов — когда у общества нет цветовой дифференциации штанов, то нет цели. Но в Я отзывы на ревью писались (пишутся?) как номера на затылке в каком-то из фильмов про пилу — их видит много кто (как минимум вся вертикаль руководителей, нынешняя и будущая), но не сам получатель отзыва. Если о тебе написали хорошо, то цена этому невысока, а если плохо «конструктивно» — то ты даже не узнаешь, кто именно выкатил предъяву и в чём она состоит, и не сможешь на неё ответить. Если повезёт, тебя на калибровке защитит руководитель. Если нет, то не защитит.

Это раз. А два — средний балл. Как говаривал тот самый большой начальник, что отменял админов, «не бывает так, чтобы все сразу хорошо поработали». Оценки выставлялись не абсолютно, а калибровались так, чтобы в среднем по больнице (направлению, отделу, команде) получилась какая-то конкретная цифра. Цифра спускалась сверху, и хотя хорошо поработавшая команда получала среднее повыше, в конечном счёте всё так в него и упиралось: чтобы кому-то поднять оценку, её нужно кому-то другому снизить. Больше того, этот факт старались лишний раз не афишировать, так что я может и привираю в деталях (впрочем, этот пост — художественный вымысел, так что не только в них).

В Б отзывы на ревью видны и получателю тоже (не знаю почему, может и добрая воля), а оценки… Трудовое законодательство NL прямо запрещает устраивать крысиные бега и сравнивать сотрудников друг с другом. Сравнивать тебя полагается не с тем, как поработали другие, а с тем, что требовалось/ожидалось от тебя самого. Совет рабочих депутатов регулярно напоминает об этом и просит сообщать ему о любых фактах нарушения этого правила. Что там на самом деле происходит на калибровках — бог весть, но начало хорошее.

* * *

Лирическое отступление, минутка левацкой пропаганды.

Я потом много думал про эту историю с отменой админов, где нам вменили обязательный онколл, и большинство съело, и я тоже. А почему съели, собственно?

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

Во-вторых, как говорил мой первый начальник в Я (привет, Д.!), любая большая программная система — это человеко-машинный комплекс. Где-то человеческий компонент выше, где-то ниже, но без людского пригляда все они со временем разваливаются. Ввиду исторического момента, человеческий компонент у систем, которые мы тогда разрабатывали и поддерживали (распределённые системы первого поколения я их называю), был, увы, высок. При этом у Я не было варианта нас всех уволить, а проект закрыть, как закрывает Walmart в США магазины, создавшие профсоюз: наш «проект» не был чем-то отдельностоящим, а влиял на благосостояние Я напрямую. Поломки и простои влекли огромные денежные и репутационные потери. Всех уволить и нанять других — тоже так себе вариант: с нами бы ушёл весь массив незадокументированного институционального знания о системах, что опять же чревато простоями и поломками.

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

При этом Я как бизнес не был в какой-то критической безвыходной ситуации, требовавшей подобного рода мер. Всё было условно-нормально, просто большой начальник решил, что если можно выжать из линейных сотрудников больше, то почему бы не выжать. Капитализм-с.

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

Потому что горе одному, один не воин — каждый дюжий ему господин, и даже слабые, если двое. Не было никакого «мы», был каждый сам по себе — и каждый, как в дилемме узника, просчитал свои варианты и пришёл к тому, что вне зависимости от действий прочих, для него лично выгоднее прогнуться. И прогнулся.

Каждый из нас прогнулся, потому что у нас не было способности к коллективному действию в интересах друг друга. У условного «начальства» было, а у нас — нет.

Знаете, как называется вот эта готовность к коллективному действию, к защите интересов таких, как ты, даже при риске потерь для себя лично — в расчёте на то, что и они за тебя впишутся? Которую боятся как огня алчные капиталисты?

Солидарность трудящихся. Это называется «солидарность трудящихся». Это её нам не хватило.

* * *

Только я вас очень прошу, не надо это всё воспринимать как «в Я каннибализм и мрачная потогонка». Во-первых, всё совсем наоборот, Я — охрененный! Мало, думаю, в России, мест, где программисту так же круто работается, как там. Во-вторых, все, кто там работают, делают это добровольно: любой разработчик с опытом работы в Я мог бы без особых проблем найти себе другую работу, но не стал этого делать. Больше того, за свою охрененность Я был склонен делать скидку к зарплате — так что выбор там работать часто был не просто добровольным, а ещё и немного в убыток по деньгам.

Также это и не про этические оценки Я или Б. Давать этические оценки действиям бизнесов бессмысленно, это нездоровое очеловечивание и приписывание бессмертной души тому, у чего её быть не может. Этические оценки можно давать только действиям людей, из которых эти бизнесы состоят, и Я в целом, как сущность, не виноват в том, что (например) Д. Н-в оказался гондон.

Кстати, если вы думаете, что дело (только) в законах, то нет. Мало права иметь, надо быть готовым их защищать.

Ещё одна история из здешних краёв. Узнал из вторых рук, так что могу врать (но какая разница, ведь весь этот пост — художественный вымысел).

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

Но нашёлся кто-то, кто не согласился, пособия не взял и был уволен без него. Он подал в суд за незаконное увольнение, выиграл его, получил зарплату за вынужденно прогулянные месяцы, компенсацию, а также был восстановлен в должности — и, говорят, реально продолжил удалённо в У работать.

В борьбе обретёшь ты право своё. По-другому никак.

* * *

Что-то меня унесло. Итак, обратно к «как работается в Б».

Неплохо работается. Про Б раньше был стереотип, что там херачат без продыха на Perl на скорость за копейки — так вот, он устарел. Платят по рынку, причём по третьему пику его тримодальной структуры, и не забывают зарплату индексировать — иначе разбегутся же люди. Раньше Б был одним из немногих работодателей в Амстердаме, которые были готовы нанимать не-голландцев в таких количествах, но сейчас в городе прямо много вариантов трудоустройства на «международную» зарплату, а ещё рынок пылесосят всякие там Ф и А, так что приходится соответствовать. Точными цифрами своей зарплаты готов обменяться в частном порядке, пишите.

Perl и херачить без продыха… Опять же, в разных частях компании по-разному, но в целом — фаза экспоненциального роста для Б уже несколько лет как закончена, и сейчас время собирать камни и отдавать взятые тогда технические долги. Перла в компании всё ещё много, и отдельной специальной активности по его выпиливанию не происходит, но новые сервисы (а их всё больше) начинают чаще на Java и Node.JS. Кое-где в инфраструктуре водится Go (у меня это теперь второй язык), а близ дата-саентологов, говорят, также пишут на питоне. Компания понемногу переползает в облака и на микросервисную архитектуру — хотя, конечно, при её масштабах эти «сервисы» порой совсем не «микро». Жизнь идёт вперёд.

При этом, в точности по известной шутке — то, что одни называют «легаси-код», другие называют «код, который зарабатывает компании все её деньги». Perl-часть велика, и даже если лично вам её разрабатывать не придётся, с большой вероятностью её придётся читать, так что язык знать надо. Изучение Perl — часть онбординга. И тут надо заметить две вещи.

Первая: Perl — язык как язык, не хуже и не лучше себе подобных: python2 или ruby. Да, у него есть такое свойство, что его нужно знать, чтобы его читать — питончик тот же можно разобрать так, а перл придётся хоть немного поучить, чтобы понимать код на нём. Но когда вы видите код, скажем, на хаскеле, и он вам непонятен, потому что вы не знаете хаскеля — вы же не начинаете на этом основании кричать «хаскель говно», верно? Так будьте взрослыми людьми и не кричите «перл говно», узрев переменную $_ или оператор !~. Так вышло, что я более или менее регулярно на этом языке пишу аж с 2006 года, и хейтеров повидал больше, чем хотелось бы — почти все они перла как следует не знали, а хейтили на основании где-то увиденных мемасов. Особенно забавно бывало, когда сами эти хейтеры писали, например, на Javascript :-)

Вторая: уважайте работающие системы. Иногда под видом собирания камней люди без бэкграунда в Б (но с бэкграундом в «индустрии») не хотят даже разбираться в «этом говне мамонта», и думают, что вот сейчас быстренько перепишут на Java и микросервисах, и получится в десять раз лучше чем было. Хотел рассказать в этой связи поучительную историю, коей среди читателей блога есть свидетели.

Была в Я некая важная подсистема в пайплайне обсчёта самого важного что у бизнеса есть. Развивалась эволюционно и была одной из тех «распределённых систем первого поколения» — написанной давно, без современного инструментария и спроектированной людьми, до того распределённых систем особо не писавших. Но, тем не менее, она доросла от простого шардирования до нетривиальной многоступенчатой обработки потока данных в почти-реалтайме на кросс-дц кластере без единой точки отказа; умела переживать ситуацию «минус один дц и одна машина» без деградации. На Perl и MySQL, лол.

Оформившись в ~2010, к ~2014 система доросла до предела своих возможностей, и это стало создавать проблемы. В ~2016 эти проблемы были замечены вне отдела, и к руководству «пайплайна обсчёта самого важного что у бизнеса есть» пришла команда, писавшая похожую по предметной области систему в совсем другой части Я. Они обещали, что за полгода перепишут «это говно мамонта» на C++ и новых облачных технологиях Я, и будет намного лучше чем было. Ребята эти были большие молодцы, и им дали добро.

Они переписали её — и, действительно, стало намного лучше чем было, ведь ребята правда были молодцы. Но:

— будучи совершенно другой в частностях, в высокоуровневых вещах новая система приобрела кое-где некоторые удивительно знакомые черты старой
— при внимательном рассмотрении оказалось, что в старой неявно присутствовали ключевые детали архитектуры новой
— отношение к старой системе (и к создававшим её людям) у ребят сменилось от брезгливого презрения к уважению
— переписывание заняло не шесть месяцев, а два года (а старая система, тем временем, держала растущую нагрузку).

Это не значит, что переписывать было не надо: надо, надо, старая зашла в тупик и серьёзным улучшениям не подлежала. Но брезгливого презрения она тоже не заслуживала — и оно было, честно говоря, довольно контрпродуктивным.

Как по мне: если вы видите работающую систему, но испытываете к ней брезгливое пренебрежение и считаете, что её строили некомпетентные утырки — очень вероятно, что вы не до конца понимаете, почему она такова, какова есть. У некомпетентных утырков редко получается что-то работающее — не забывайте это и не рубите сплеча.

Так, меня опять унесло :-)

* * *

Как работается в Б.

Неплохо работается — денег платят, обедом кормят :-) С обедами, однако, есть особенность: столовой приходится подстраиваться под куда более пёструю аудиторию, чем у нас — попробуйте приготовить так, чтобы было съедобно и вкусно одновременно арабу, индусу, бразильцу и русскому — и в итоге блюда получаются, эм, очень нейтральные и на русскую кухню совсем не похожие. Ах, где же мои котлетки с гречечкой из я.столовки… Но зато из столовых в двух основных «разработческих» офисах Б офигенный вид на город, туристам недоступный. Каждый раз, как иду обедать, любуюсь и не могу налюбоваться.

Рабочий язык в компании — английский, голландцев в разработке почти не водится и знать голландский не надо. Мало водится также и носителей английского, так что и его вы не больно-то подтянете — не-носители пользуются базовым подмножеством, потому что лучше не умеют, а носители — потому что иначе есть шанс что их не поймут. Увы.

Национальный состав у разработки невероятно пёстрый. Как говаривали попавшие в этот салат люди из штатов, «я, оказывается, понятия не имел, что такое настоящий дайвёрсити». Моя команда: итальянец, южноафриканец, индус, египтянка, турок и я, русский. Скип-руководитель — румын, его начальник — ирландец. Интернационал во все поля :-)

При этом, хотя звучит страшно, по факту это оказывается совершенно неважно. Да, мы все откуда-то в Нидерланды приехали, но это просто факт жизни, который никого не беспокоит — примерно как у нас никого особо не беспокоит, какой ВУЗ ты закончил или какого города переехал в Москву. Про некоторые национальные особенности лучше помнить и делать на них скидку (китайцам тяжело даётся английский, русские вечно ходят с хмурыми рожами, индусы не едят мяса, etc, etc) — но в целом всё очень ровно.

Офисы раскиданы по историческому центру и расположены достаточно удобно — но из-за короны с весны 2020 все на удалёнке. Для желающих с прошлого лета некоторые офисы открыты в режиме коворкинга (и бесплатной столовой), лично я каждый день хожу туда работать (дома мне работа даётся трудно). Строится новый кампус недалеко от Amsterdam Centraal, предположительно в итоге мы все окажемся там. Пока что в связи с короной об обязательном хождении в офис речи нет, но лично я бы на вечную удалёнку не рассчитывал.

Удалёнить из-за рубежа, кстати, и сейчас на постоянной основе нельзя. Хочешь получать голландскую зарплату — будь добр жить, работать и платить налоги в Нидерландах.

Мне странно это писать, но — нет, в офисах нет бесплатной автомобильной парковки для всех желающих. Камон, ребята, это Амстердам! Есть велосипедная.

Что ещё забыл рассказать?

* * *

Ах да.

Один из важных плюсов работы в Б лично для меня — неучастие в сомнительных с этической точки зрения делах. Я не подливаю керосина в топку surveillance capitalism, не пилю очередную «давайте дадим людям возможность нелегально заниматься лицензируемой деятельностью» приложеньку, не устраиваю игр с отрицательной суммой на бирже, не подсаживаю простецов на нездоровые зависимости, не организовываю pump&dump scheme в духе «давайте запилим заведомо убыточную компанию на венчурные деньги, а потом продадимся крупняку вместе с пользовательской базой», etc, etc. У Б — понятный, нестыдный и очень прибыльный бизнес, и от его деятельности мир не становится хуже. Все эти «сомнительные дела» — не самый большой в жизни грех, если сравнивать (кто-то ведь и в Роскомнадзоре работает, а кто-то и в ФСИН вертухаем), но я рад, что хотя бы конкретно сейчас в них не влезаю.

* * *

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

В Я мне тоже нравилось, и если бы не, хм, социально-политическая обстановка в стране — наверняка и сейчас бы там работал. Насколько я знаю, Я тоже нанимает, и если вы программист, живёте в России и в Я раньше не работали — горячо рекомендую заслать резюмешечку :-)

Если вам от этого поста вышла польза, то напишите коммент. Люблю когда пишут комменты!

Вторая часть здесь.

«Привет! А расскажи, как работается в …?»: 14 комментариев

    1. Да уж.

      Из письма FNV, профсоюза, куда многие в Б вступили: «A lot of b employees reacted shocked to the email they received from the CEO. FNV has also received many questions from members and employees of B. A lot of questions are about whether employees in Amsterdam can do anything to express their solidarity with these colleagues. I have had contact with a trade union in Spain to see where we can support them. We are also trying to contact other unions in Germany and France. (…) As soon as I’ve got an update, I will inform you.»

      А вот и необходимость в международной солидарности трудящихся подоспела.

  1. «И вот что мешало Я открыть офис во Владивостоке, нанять туда полсотни админов и избавить московские смены от ночных подъёмов?»

    ты упускаешь одну очень важную идею всего этого распределения дежурства на разработку — если разработчик сам эксплуатирует свой код, то он очень хорошо понимает что и зачем там исправить, а когда за него это делают какие-то «дальневосточные коллеги», то мотивации и понимания в исправлении инфраструктуры продакшена сильно меньше

    1. Ты цитируешь фразу из абзаца «админов заставляли вставать ночью» (проблема, которую офис во Владивостоке бы решил), а отвечаешь на «разработчикам без спроса тоже навесили ночные дежурства».

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

    2. Если заставлять разработчиков дежурить по ночам, то мотивации будет меньше, а говнокода будет больше, ваш КО. Меня другой вопрос интересует. А что было с теми разработчиками, которые тупо забили на это требование?

      1. для того, чтобы дежурства заметным образом повлияли на качество кода, они должны быть прямо заметно изматывающими и практически каждодневными — а у нас это не так

        «тупо» забить на рабочие требования очень сложно, в любом случае прийдётся как-то это обсуждать и дальше всё зависит от результатов обсуждения

        1. «У нас» — очень растяжимое понятие, нес па? Я большой, везде всё по-разному, и конкретно вокруг меня девопсизация проводилась именно что под соусом «что-то сервисы у нас говно стали, давайте мы мотивируем разработчиков всё починить, переведя на них мониторинг — или чинишь днём, или ночью». Потом да, стало получше, да и технологический стек стал меняться на такой, у которого свои отдельные SRE есть. Облака, Ы, всякое такое.

          «они должны быть прямо заметно изматывающими и практически каждодневными — а у нас это не так» — ну то есть абзац, где я рассказывал, как дежурил неделя-через-неделю за то, чему нельзя ломаться, ты в этом тексте пропустил :-)

          1. большой, это правда, но я всё-таки имею возможность видеть достаточно широкую его часть и «в последние годы» «в среднем» всё не так страшно

            «…в этом тексте пропустил» — возможно… прости, очень уж много букаф ;-) я постарался всё как минимум по диагонали прочитать

            1. «я всё-таки имею возможность видеть достаточно широкую его часть» — и тут я посмотрел должность на linkedin. Мои поздравления!

              С другой стороны, теперь понятно, почему ты здесь и пишешь коменты :-)

      2. Вегед всё правильно говорит. Забивать на то, что от тебя прямо требуется — плохая идея.

        Добавлю ещё, что это вопрос профессиональной… гордости? совести? пригодности? Мы же в Я вроде как не code monkeys, которые херачат код по спекам и измеряют производительность в штуках закрытых тикетов. Мы инженеры, и наш продукт — не строчки кода, а польза, которую приносит написанный нами работающий сервис. Если сервис, за который ты отвечаешь, сломался, то это надо сначала исправлять, а потом разбираться, кто крайний.

        На практике, если какой-то разработчик выключил бы на ночь телефон, а тут пожар, то вместо него чинить его сервис пришлось бы его коллегам — которые, возможно, меньше него про сервис знают и чинить его будут дольше и деструктивнее.

        На более реалистичной практике, разработчик (и до, и после девопсизации) был кровно заинтересован в увеличении автобусного числа всего, над чем работает — иначе это его выдернут из отпуска, когда что-то пойдёт не так. Однажды я с этим несколько облажался, и теперь у меня есть ачивка «чинил сервис Я из отпуска в Чили во время землетрясения».

    3. >> если разработчик сам эксплуатирует свой код, то он очень хорошо понимает что и зачем там исправить, а когда за него это делают какие-то «дальневосточные коллеги», то мотивации и понимания в исправлении инфраструктуры продакшена сильно меньше

      Это замечательное абстрактное рассуждение, которое к сожалению ложно описывает действительность.

      Основная ошибка в слове СВОЙ. Ни в каких командах дежурные разрабы не дежурят только по СВОЕМУ КОДУ. Везде же командная работа. И практики закрепления например микросервисов за сотрудниками нету.

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

      Любые значимые сервисы пишутся/разрабатываются/развиваются годами. А разработчики меняются, новые разрабы не разбираются в legacy. За 4-6 лет меняется 80% команды. Как мы все знаем, в Я(да и почти везде) чаще пишут новый код чем переписывают старый. Поэтому легаси, к которому средний копатель не притрагивался никогда, очень много, больше половины.

      Тогда какова доля СВОЕГО КОДА который эксплуатирует разраб? Зависит от кодовой базы + размера команды + перфа разраба. Если не считать мой опыт выбросом, то нормальный разраб более менее что-то знает про код 1/6 всего сервиса. Напомню что в сервисе бывает 150+ микросервисов и 10+ копателей. И это знание быстро устаревает.

      Возникает вопрос, где то самое
      >> очень хорошо понимает что и зачем там исправить
      >> лучше пишет код, чтобы не дежурить ночью
      ?

      Нет его. Любая поломка неСВОЕГО КОДА(а это 90% минимум) начинается с открытия кода.

      А вот это есть ещё как:
      >> мотивации и понимания в исправлении инфраструктуры продакшена сильно меньше.
      >> отношение — «кто-то налабал *****, а мне звонят по ночам»
      Опять же, проблемы бывают из-за сторонних сервисов, legacy кода, библиотечного кода, того к чему разраб не притрагивался, а коллективной ответственности у нас нету и не будет.

      Считаю, что разрабам втёрли дичь и прогнули под соусом ответственности за «свой код».
      Cогласен с комментом ниже про:
      >> Но гуманные даже пробовать никто не стал (там, где мне это было видно), просто решили проблему в лоб за счёт сотрудников. Почему так? Мой ответ выше.?

      Никого не хотел обидеть. Всех обнял.

      1. > Считаю, что разрабам втёрли дичь и прогнули под соусом ответственности за «свой код».

        Я не Вегед, но рискну предположить, что под «свой» имеется в виду не авторство, а административная принадлежность. Мы все пилим штуки, которые пилили до нас и будут пилить после нас, но если штука «твоя», то (скорее всего) знаний о том, как лучше чинить, больше всего у тебя. И решения о том, что переделать, чтобы больше не ломалось, можешь и должен принимать тоже ты.

        Есть огромная разница между починкой «своего» и «чужого» сервиса, даже если в «своём» твоего кода 5%.

      2. +1 к Артёму — «свой» не в смысле, что это ты его написал, но в смысле, что тебя хотяб как-то заанбордили в эту команду и показали/рассказали, плюс ты сколько-то багов там поправил и т.п. — т.е. речь про «code ownership», который всё-таки бывает коллективным при удачном стечении обстоятельств и практик

Добавить комментарий для ya@kireev.me Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *