Чем больше я заглядываю (против своей воли) в менеджерские дела, тем больше командная разработка софта в большой компании кажется мне похожей на... имперский корабль из мира вархаммера, летящий сквозь варп.
Смотрите сами:
Рядовые разрабы - это работяги с нижних и средних палуб. У них четкие, локальные, часто интересные задачи: поддерживать работу гипердвигателя, заряжать макропушки и т.д.
Они вроде и знают, что снаружи какая-то жесть, время от времени что-то просачивается, но в целом - пофиг.
Сеньоры, принциплы, техлиды - это уже техножрецы Адептус Механикус.
Они в целом понимают устройство корабля; знают молитвы, позволяющее находить с ним общий язык; хранят традиции и знают, почему делать вот такой глобальный рефакторинг или переписывать все на Go не стоит (ересь)
Но корабль летит в варпе, за пределами поля Геллера океан Хаоса. И каким-то бедолагам нужно в этот Хаос всматриваться, чтобы понять, куда кораблю все-таки лететь.
В вархаммере эту роль исполняют навигаторы из Новис Нобилите, а в разработке софта - менеджеры разных сортов.
В разработке роль Хаоса исполняют внезапные тредования от заказчиков, сложное взаимодействие с другими командами, валящиеся сверху дедлайны, резкое изменение курса партии и т.д.
Задача менеджмента, соответственно, лавировать и экранировать остальную команду ценой своего рассудка
Если навигатор/менеджер хороший, остальная команда Хаоса не чувствует вообще. Если плохой, ну, ждите демонов на нижних палубах, кранчи, переработки, хаотичную разработку без времени на приведение кодовой базы в порядок и т.д.
Навигаторы, кстати, не совсем люди: у них есть специальные мутации, позволяющие дольше выдерживать влияние варпа, да и вообще взаимодействовать с ним.
Так что вполне понятно, почему превращать разраба/сеньора в менеджера НЕ ВСЕГДА хорошая идея - сойдет с ума и впадет в ересь
Да, кстати, про микроменеджмент.
Представьте, что будет, если главный навигатор решит спуститься на нижнюю палубу и начать указывать работяге, как заряжать макропушку?
Во-первых, он же нихрена не понимает в этом;
Во-вторых, у него бля три глаза, работяга сразу кукухой поедет.
В общем, друзья, какой-то я не своей жизнью живу последнее время. Третий глаз еще этот. Как-то все, я не знаю...
Но Император хранит, конечно.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
а у вас ведь тоже такое бывает: внезапно вспоминаешь очень странную картинку из интернета, которую видел года четыре назад в тви, и которая идеально описывает твое текущее состояние?
(естественно, найти ее сходу не можешь: описываешь ее всем друзьям словами, вдруг кто вспомнит)
например, долго всех задалбывал с вот этой картинкой, давая вот такое описание. Но нашли же!
еще: уже несколько раз уже искал вот это видео по описанию "игрушечный тираннозавр высовывается из окна машины и истошно орет под музыку"
Недавно у @_bravit в реплаях была дискуссия про то, что ВУЗы плохо студентов информируют о карьерных возможностях
Может это и так, но расскажу, как у нас на ММФ сами студенты сделали большой шаг по улучшению этой
ситуации (поделюсь радостью и гордостью за чуваков).
На ММФ в районе третьего курса нужно выбирать специализацию
Классическая история: студент ищет руководителя, который согласится курировать его дипломную работу
Т.е. это человек, с которым следующие полтора года студент должен очень тесно взаимодействовать.
Как это было раньше: 19 кафедр от программирования до мат. методов геофизики, на каждой несколько лаб, в каждой несколько потенциальных научруков.
Ты - третьекурсник, который про это почти ничего не знает. Но пора выбирать!
Хочу с вами поделиться маленькой историей про видение будущего.
Когда пришел в Excelsior стажером, мне дали задание почитать и поразбираться в небольшой статье Дэвида Бэкона, которая называлась "The Virtualized Virtual Machine: The Next Generation of Virtual Machine Technology"
Статья была 2004 года, и тогда (в 2011) читалась, как рассказ про космические корабли, которые будут
бороздить просторы космоса. В общем, как научная фантастика. Во многом, наверное, из-за отсутствия у меня на тот момент контекста, но и давно это все-таки было, 9 лет назад.
Недавно я случайно на нее снова наткнулся, перечитал, поддавшись ностальгическим чувствам...
И как же я удивился, когда оказалось, что многое из описанного в статье - это уже почти повседневная
реальность в 2020!
Решил, значит, один наш инженер (который никак не хочет заводить твиттер) поразгонять компилятор на amd64. Запустил под профайлером, видит в топе метод HashMap.putVal и вызов аллокатора. [1/3]
Стал разбираться, нашел проблемное место.
Для списка свободных регистров используется LinkedHashMap, причем создается с умолчательными параметрами:
- initialCapacity == 16, но это норм: регистров на amd64 тоже 16 - влезает
- но вот loadFactor по дефолту выставляется .75f
[2/3]
В результате компилятор часто занимается интересным делом:
- создает таблицу на 16 элементов
- заполняет ее 12-ю регистрами
- реаллоцирует массив (вот вам и вызов аллокатора)
- перезапихивает туда 12 регистров (вот вам и вызов putVal)
- добавляет еще 4 регистра