суббота, 7 августа 2021 г.

[life;business] Цинично о шумихе вокруг Xsolla

Даже до меня долетел шум вокруг компании Xsolla с весьма необычным обоснованием необходимости уволить 150 человек. Для тех, кто как и я, в танке, вот несколько материалов на тему:

Xsolla уволила часть сотрудников пермского офиса после «анализа их активности» в рабочих чатах,

Xsolla предположительно уволила ряд сотрудников в Перми после анализа их рабочей активности,

«Мы формально еще никого не уволили. Мы сказали: компания вас не ценит» Интервью основателя Xsolla Александра Агапитова, который объявил, что разом увольняет 150 «невовлеченных» сотрудников (и тут началось).

Больше всего у меня от этой истории подгорело из-за того, что 99.9% обсуждающих эту тему a) не имеют к ней никакого отношения и b) не почувствуют на себе никаких последствий.

Ну а раз так, то позволю и я себе пару циничных высказываний.


Во-первых, это решение собственника компании. Имеет право.

Компания его, мало кто в состоянии осознать сколько всего владелец пережил и на что шел, чтобы сейчас его детище было таким, какое оно есть. И если владелец считает, что нужно пойти на сокращение 150 человек, то он имеет на это право. Как и на то, чтобы отбирать людей на увольнение по любым понравившимся ему критериям. Вне зависимости от того, что об этих критериях думают сами увольняемые или праздная публика, которая исходит на лучи известной субстанции в Интернетиках.

Так что еще раз, главное: он владелец, он может делать что хочет. В этом-то и весь смысл.


Во-вторых, нахожусь при мнении, что публика в Интернетиках так сильно возбудилась потому, что 99% возбудившихся -- это наемные сотрудники на зарплате. И часть из возбудившихся отчетливо понимает, что собственники бизнеса с ними могут поступить точно так же. А кто не понимает отчетливо ("малолетних дебилов" в ИТ всегда было в избытке, несмотря на миф о том, что это якобы высокоинтеллектуальная сфера деятельности), те что-то подозревают на уровне подкорки.

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

Но признать это нужно. Welcome to the real world, как грится.


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

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

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

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

Так что лично я думаю что негативный PR не окажет на жизнеспособность Xsolla существенного влияния. И если у компании устойчивое положение на рынке, идет поступательное развитие и не случится какого-то внезапного "черного лебедя", то Xsolla будет себе спокойно жить дальше. Благо через пару лет об этом скандале мало кто будет помнить.


Ну и напоследок сухой остаток:

  • мы живем в условиях капитализма, так что да, "в*бывай или у*бывай", по другому никак и не вы решаете достаточно ли вы "в*бываете";
  • если вы собственник бизнеса или собираетесь им стать, если ТОП-менеджер или метите в таковые, то данный случай можно использовать для того, чтобы сделать собственные выводы о том, какие способы контроля и управления вы готовы применять и к каким последствиям это может привести;
  • если вы обычный наемный сотрудник, то это лишний повод посмотреть на мир без розовых очков и подумать о мерах, которые помогли бы вам, окажись вы сами в числе тех, кого решили выставить на мороз.

PS. Отдельная часть шума -- это обсуждение того, как можно обосновать увольнение "показателями big-data". Ну ё-маё, это даже не серьезно. Суть же в том, чтобы тем или иным образом определить список подлежащих увольнению. Обставить это все потом с формальной точки зрения можно так, чтобы не подкопались. Особенно, если владелец готов идти на нормальные выплаты при увольнении. Как и сделать невыносимой дальнейшую работу тех, кто решит пойти на принцип и захочет остаться прикрываясь соблюдением бюрократии.

четверг, 5 августа 2021 г.

[prog] Хорошая иллюстрация кода, про который остается разве что сказать "мне кажется, что можно сделать проще"

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

К сожалению, такие воспоминания сложно иллюстрировать примерами кода.

Но вот на Хабре нашел статью с примером, который, как мне думается, ну просто идеален для подобной иллюстрации: История одного фееричного провала тестового задания на C#. Код, который написал автор упомянутой статьи, выложен на GitHub, там его и можно посмотреть. В частности, мне хватило беглого взгляда на вот этот файл.

Вот тут уж, действительно, смотришь на код и не можешь отделаться от двух мыслей: a) вроде бы должно быть проще и b) блин, да это же нужно самому задачу решить, чтобы объяснить, что именно должно быть проще.

Если говорить о содержимом класса TestApp::Schedule, то у меня лично сходу следующие претензии к уведенному:

  • нет описания принципа хранения расписания в TestApp::Schedule. В классе есть набор членов, но нет описания как и для чего они используются, каким образом расписание представляется посредством этих членов. Это значит, что тому, кто будет сопровождать такой класс, придется всю логику выколупывать из кода. И надеятся, что исходная логика была этим самым кодом выражена правильно, что не далеко не факт, как показывает мой многолетний опыт;
  • слишком большой объем некоторых методов. В частности конструктора Schedule. Ладно бы эти 120 строк были сгенерированы автоматически, но ведь они написаны вручную;
  • слишком большая вложенность if-ов в некоторых местах. Опять же, если бы это был автоматически сгенерированный код, то ладно. Но это же написано вручную. Простите мне мой французский, но когда программист пишет подобную вложенность if-ов, то это наводит на подозрения об ошибках в ДНК. В мое время человеку бы могли запросто сказать, что он ошибся профессией.

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

Так что я бы лично такую реализацию тестового задания бы завернул. Может быть с более лояльной общей оценкой :)

Вообще же задача сильно напоминает мне классический unix-овый cron. И если бы такое тестовое задание предстояло решать мне самому, то я бы сперва перерыл бы Интернет в поисках описаний различных подходов к ее реализации. Может быть даже в исходники cron-а бы заглянул. У меня коллега когда-то лет 17 назад что-то подобное делал и там использовались битовые массивы и, вроде бы, все это было гораздо компактнее и понятнее.

воскресенье, 1 августа 2021 г.

[life.cinema] Очередной кинообзор (2021/07)

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

Вторая жизнь Уве (En man som heter Ove, 2015). Как по мне, так добрый и милый фильм. Но зайти может не всем, т.к. в нем нет какой-то интриги и он наполнен довольно-таки стереотипными вещами.

Круэлла (Cruella, 2021). Удивительно, но на фоне всего того шлака, который идет в этом списке ниже, этот фильм даже посмотреть можно. Хотя бы из-за саундтреков. А если бы и спецэффекты были на нормальном уровне сделаны, то было бы и вообще хорошо.

Война будущего (The Tomorrow War, 2021). Можно посмотреть. Но многого ждать не стоит. И мозги нужно отключить, не вдумываться и смотреть просто как на аттракцион.

Без резких движений (No Sudden Move, 2021). Кино из, что называется, непонятого. Смотреть было интересно. Но после просмотра главный вопрос: "А кто бы теперь все это объяснил для обычного зрителя?"

Мейер Лански (Lansky, 2021). Сильно двойственные впечатления. С одной стороны, очень качественно все сделано и смотреть это на фоне остального современного шлака, просто приятно. Отдельное удовольствие опять увидеть в главных ролях Харви Кейтеля, ветеран держится молодцом. Но, с другой стороны, ничего нового в фильме нет. Такое ощущение, что все это уже видел многократно и никакой собственной изюминки нет и впомине.

Пятнадцать минут войны (L'Intervention, 2019). Фильм условно можно разделить на две части: первая (порядка 1 часа и 15 минут), в которой происходит завязка истории и подготовка к развязке, и вторая (порядка 15 минут) с собственно развязкой. Так вот, первая часть настолько уныла и неинтересна, что я даже и не знаю, стоит ли через нее продираться, чтобы посмотреть вторую часть, намного более интересную и динамичную.

Судная ночь навсегда (The Forever Purge, 2020). Если кому-то понравились предшествующие части серии про "Судную ночь", то можно попробовать посмотреть и эту. Но, как по мне, лучшей была вторая часть, в которой снимался Фрэнк Грилло. А этот же фильм -- обычный ширпотреб для любителей жанра.

Пороховой коктейль (Gunpowder Milkshake, 2021). Унылая и скучная попытка снять очередного "Джона Уика в юбке". Временами чрезмерно затянутые сцены просто выбешивали.

Во всё тяжкое (The Professor, 2018). После трейлера ожидал от фильма много большего. Получил же набор банальностей и, в некоторых местах, желание громко воскликнуть "Не верю!" Немного спасает фильм разве что обаяние Джонни Деппа и, особенно, Дэнни Хьюстона.

Заложники Марса (Settlers, 2021). Фильм развивается неспешно. В одной и той же локации. С очень небольшим количество персонажей. Но за этим всем все равно интересно следить в ожидании развязки и объяснения того, чтоже именно и почему происходит. Но вот этой самой развязки с объяснением и не случается. Унылый финал, который сливает в унитаз весь фильм.

Ага (2021). Попытка казахов снять своего собственного Джона Уика. Попытка так себе. Убедительного персонажа взяли на главную роль. А вот на все остальное, такое ощущение, денег уже не хватило. Включая, к сожалению, и экшен.

Телохранитель жены киллера (Hitman's Wife's Bodyguard, 2021). Отборнейшее говно. И по замыслу, и по исполнению.

Черная вдова (Black Widow, 2021). Редкой тупости кино с невероятно убогими для такого "блокбастера" спецэффектами. Такое ощущение, что создание фильма было отдано на откуп самым дешевым и криворуким аутсорсерам.

Красотка на взводе (Jolt, 2021). С большим трудом досмотрел до половины, потом сдался и выключил.


Отдельное мнение по поводу фильма Красный призрак (2020).

Я не понял что это было. А потому и не могу судить, хорошее это кино или нет. Но лично мне как-то не зашло. Может быть как раз потому, что я так и не понял, что это было.

Возможно, в современных реалиях нужно делать комиксы на тему ВОВ, к коим "Красный призрак" я и отношу. Но мне такое, в силу возраста и воспитания на совсем других фильмах про войну, кажется дикими.

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