Доброго времени, Хабр!

Сначала немного представлюсь. Меня зовут Сергей. В IT я уже более 13 лет из них в GameDev уже более восьми. Так вышло, что до написания статьи на Хабр дошел только сейчас. И дошел только благодаря подписчикам моего небольшом канала по разработке игр в telegram.

Так получилось что к одному из моих постов читатели задали очень много хороших вопросов. Спрашивали они о том что поменялось за этот год, как выглядели собеседования на позицию технического менеджмента и CTO в GameDev. Когда я начал отвечать количество текста становилось все больше и больше. Поэтому пришла мысль оформить все это в отдельную статью. Надеюсь, что материал окажется кому-то интересным, а может даже полезным.

"Кто такой CTO в GameDev?"

СТО (Chief Technology Officer) человек который несет всю ответственность за технологическое развитие продукта. Именно на его плечи ложится:

  • Выбор тех. стека

  • Дать добро на применение тех или иных архитектурных подходов

  • Начать изучение новых перспективных для продукта технологических решений - R&D 

  • Оценка стоимости для компании и для продукта изменений или фичей

  • Достижения целей бизнеса через технические задачи

  • Ответственность за риски и инциденты по технической части

Отмечу пару моментов:

1. В крупных компаниях СТО может отвечать не за всю студию, а только за отдельных продукт или даже часть его. Например в Playrix на одном крупном продукте может быть сразу их несколько

2. Существует разделение на Европейский тип СТО и СТО в представлении “наших” компаний. В европейском понимании СТО редко, а скорее почти никогда не пишет код. В “нашем” представлении руку к коду игры придется прикладывать везде и часто. Мне довелось поработать на позициях обоих видов.


"Как этот год отразился на проектах, что поменялось?"

Этот год вышел странным. За него я сменил больше мест работы чем когда-либо до этого. Начался он с того, что закрылся проект который мы с командой вели к софтлончу. Не побоюсь сказать, что вся команда горела проектом и за 2 года мы сделали очень много. Да, были ошибки, которые стоили нам времени, каждый наш патч мы видели улучшения как метрик, так и качества игры. У вас конечно сразу будет вопрос: "Почему же тогда закрыли?". Тут ответ в датах и деталях, случилось то, что случилось в феврале, а все наши инвестиции были не из РФ. Я искренне благодарен всей нашей команде за то, что они делали и терпели мои(порой завышенные) требования к качеству игры. Если вы читаете это, спасибо.

Дальше впервые довелось оказаться в американской Pay to Earn студии. Штат 150+ человек. Одновременно около 10 проектов. Интересная позиция и звучала она солидно - Vice President of Engineering. Когда представляли на собеседованиях меня, каждый раз цепляло слух, уж слишком серьезно, а хотелось с кандидатом говорить чуть проще, чтобы понять что он хочет и донести что хочется получить от него. Из этой студии уже ушел я сам, спустя 2 месяца, положив себе в багаж страшные и не очень истории о процессах.

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

Впервые меня убеждал сисадмин, что он не даст серверному программисту, которого мы нанимаем, требуемое железо. Он же реализовывает сервер, а серверному программисту не нужна мощная машина. Cерверные разработчики никогда не разворачивают у себя локально окружение. Поэтому мальчик Технический Директор иди и проси дядю CEO, чтобы он дал разрешение. Я бы хотел, чтобы это было моим преувеличением ситуации, но аргументы почти дословные.

Впервые поработал с крупным паблишером из Вьетнама над мобильным мультиплеерным survival проектом. Скажу, что восточная специфика есть и общаться азиатскими командами нужно не так как с европейскими. Очень ценный опыт. Проект решили заморозить по решению заказчика. "Круг замкнулся. Год начался заморозкой одного проекта и заканчивается тем же уже на другом"

Впервые очень много общался с паблишерами и инвесторами. Ранее этот опыт был, но тут совсем другая плотность. Мы небольшой командой сделали за очень короткий срок техническое демо. И вот с ним и презентацией проекта начали ходить искать тех, кто заинтересуется. Мы прекрасно понимали, что демо не выглядит как "финальный" продукт, но как верт срез механик и за 1.5 месяца и демонстрация сил команды он достойно показывает себя. В сухом остатке получили следующее: 

  • "Давайте купим трафик и проверим метрики" - на вертикальный срез и тех демо. Я и без закупки мог предсказать метрики

  • "Покажите, что команда уже выпустила из успешных проектов" - мы понимали что как студия мы noname и только наш рабочий опыт за плечами, да стартапы

  • "Слишком большой бюджет, а вы можете сделать это, но за стоимость леденца и за 3 месяца?" 

  • "Мы прекратили финансировать русские команды"

  • "Такое нельзя сделать за 1.5 месяца, вы обманываете"

  • "Вы видимо чей-то готовый проект взяли за основу или из асетов собрали?"

  • "Мы вас не знаем, кто вам нас порекомендовал?" - очень много решает знакомство, как и везде, так и у нас в gamedev

  • "Извините, но полностью закрыли направление финансирования новых проектов"

  • Ничего - самый частый ответ


"Много ли вакансий вакансий в GameDev на тех. менеджерские позиции сейчас?"

Условно можно разделить обилие вакансий эту позицию до Мая 2022 и после. В начале года мне пришлось искать новое место и количество предложений было крайне большим. На протяжении 2 месяцев каждую неделю было по 2-3 собеседования. После мая, студии с которыми я общался начали закрывать свои двери или как минимум удаляли все вакансии. Связанно это были с событиями конца  февраля.

Где-то к середине Мая 2022 волна последствия докатилась до GameDev. К концу Мая я узнал, что 3 студии, где проходил собеседование, закрылись окончательно. 

До ноября 2022 я работал над мультиплеерным мобильным survival проектом под издательством крупного паблишера из Вьетнама, проект к сожалению в настоящий момент заморожен. Это стало причиной вновь оказаться на рынке в поисках нового места. Резюме было открыто и на hh, и на linkedin. Для сравнения количество просмотров в Апреле/Мае на HH в день было порядка 8+, с начала ноября редкостью был сам факт просмотра резюме кем-либо. Количество уже состоявшихся собеседований с начала ноября - 3. Скажу откровенно, что из этих 3 собеседований, 2 состоялись по причине того, что среди знакомых узнали, что вновь открыт для предложений, а не магия linkedin или hh.


"Как проходят собеседования на позицию технического менеджмента?"

С определенного момента для себя я понял, что собеседование это почти всегда тот или иной вариант “самодурства”. Каждый всегда подстраивает процесс этот под себя. И не важно ляжет ли в основу собеседования методология проведения интервью или нет. Чаще всего при собеседовании на позицию CTO может быть несколько этапов: 

  • Общение с HR

  • Техническое собеседование 

  • Общение с менеджментом продюсером проекта / CEO / CPO / всеми вместе

Каждый из этапов в конкретной компании может отличаться как  и их порядок. Выделю несколько интересных случаев, с которыми сталкивался:

  1. Обратное интервью. Когда менеджменту понравилось все, что я говорю и был пройден тех. этап. Ребята предложили провести общение/собеседование с моей стороны команды разработки. Чтобы и познакомиться и понять с кем придется работать чуть больше, услышать их мнение на то что и как происходит в компании. Прошло отлично, для себя я этот опыт отметил как очень хороший вариант и крайне полезный.

  2. Техническое интервью у компании которая профессионально занимается проведением интервью технических специалистов разного уровня. Должен отметить, что 2 человека, которые меня собеседовали оказались крайне профессиональны. Вопросы которые они задавали были не просто “общими”, а  захватывали компетенции, которые относятся к роли на которую идет собеседование. 

  3. Самым недавним событием стало собеседование за партией в League of Legends. Разговоров про непосредственно работу во время игры не было, было неформальное общение с целью узнать что за человек, с которым придется много взаимодействовать.

  4. Почти всегда, если у компании есть иностранные заказчики, то был момент общения на английском языке


"Что спрашивают на позицию технического менеджмента?"

При собеседовании программиста важны в первую очередь его hard-скилы, т.е его умение непосредственно программировать, реализовывать системы, решать задачи, а soft-скилы должны быть, но компании могут оценивать их по разному. Когда же проходишь собеседование на СТО умение донести свою точку зрения, описать почему были приняты те или иные решения становится очень критичным. 

Если у компании есть технических этап, то вопросы на нем не сильно отличаются от вопросов на серьезном собеседовании senior/lead programmer. Отличает часто их только отсутствие ограничения по темам, спрашивать могут все от render pipeline до теории графов. Возможность часть из вас удивится достаточно глубоким техническим вопросам, которых часто больше чем менеджерских. Тут я напомню, что в русскоговорящем сегменте gamedev CTO почти всегда пишет код.

Дальше будет список вопросов, на которые приходилось отвечать за этот год. Постараюсь выбрать как самые частые, так и те, что чем-то зацепили:

  • Опыт, что и как было сделано, какие проблемы были и как решались?

  • Какой тех. стек приходилось изучать и как много плотно с ним работать?

  • Как ставились процессы работы в команде на прошлом месте?

  • Как измерять эффективность команды? 

  • Почему прошлые проекты не зашли?

  • Какие инструменты использовались, чтобы достигать поставленных бизнес целей?

  • Приходилось ли увольнять людей, сколько, почему?

  • Что в команде могло стать причиной для увольнения?

  • Как сделать техническую команду мечты?

  • Как мотивировать людей лучше работать для выпуска в срок?

  • Как бы ты организовал работу/архитектуру вот такой-то игры?

  • Как бы ты организовал технологический рост скила людей в команде?


Пара замечаний от себя

1. На этой позиции обязательно надо понимать, что за все технические проблемы/кризисы/риски именно ты тот, кто несет ответственность. Надо уметь обрабатывать инциденты и никогда нельзя отпускать ситуацию. 

2. Ошибки были, есть и будут. Ошибки это отлично в том случае когда можно их обработать и стать лучше. Сразу уточню, это не значит что их не нужно сводить к минимуму, проводить подготовку, R&D и т.д. Все меры по подготовке позволят избежать фатальных ошибок, вернуть продукт из которых уже не всегда возможно.

3. Инциденты должны быть обработаны, причины их осознаны и нужные задачи поставлены, чтобы они не повторились.

4. Почти никогда нельзя нырять с головой в технологии ловя кураж, как это вы могли делать будучи программистом. Надо помнить, что перед вами не только технологии, но и игра как продукт. А перед продуктом ставятся бизнес цели и сроки. 

5. Компромиссы неизбежны. Вам нельзя делать идеальные решения, нужно искать золотую середину, которая позволит продукту конкурировать и становиться лучше. Все должно быть подчинено пониманию приоритетов. Правильно задавать себе вопрос насколько новая фича, которую хотят получить от разработки стоит в реализации? Хорошо спрашивать у геймдизайнеров и продюсеров, на какие метрики повлияет фича и на сколько? Думать о том как сделать, чтобы процесс создания фичи/патча/контента становился дешевле с технической точки зрения.

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

7. Всегда будьте в курсе статуса и состояния игры. Даже если на вашей позиции вы уже не будете писать код, то знать: как реализованы фичи, какие при этом были потрачены ресурсы, какой перфоманс показывает игра, какие текущие метрики и показатели и т.д.

8. Стоит знать тех с кем вы работаете, кого наняли в команду разработки. Это не значит, что нужно стать “своим человеком”, нет. Это значит что рук у вас самих не хватит на все. А значит вы должны доверять своей команде, чтобы она стала надежной опорой. И вы знаете их сильные и слабые стороны.

9. Приходя на существующий проект, который уже разрабатывается какое-то время - никогда, не начинайте сразу ужасаться тому в каком он состоянии и пытаться переписать все, обвиняя попутно команду в некомпетентности. Моя практика показывает, что проведя начальный аудит получится составить намного более цельное представление о том с чем придется работать и почему оно сейчас в текущем статусе, а главное начать поиск ответа на вопрос: “Как лечить основные боли проекта так, чтобы он не перестал получать регулярные патчи”.

На этом все. Всех с Новым годом.

P.S. ссылка на канал в телеге

Комментарии (18)


  1. GbrtR
    05.01.2023 01:40
    +1

    Впервые меня убеждал сисадмин, что он не даст серверному программисту, которого мы нанимаем, требуемое железо. Он же реализовывает сервер, а серверному программисту не нужна мощная машина. Cерверные разработчики никогда не разворачивают у себя локально окружение.
    Интересно, а какая цена вопроса? $500? $1000?


    1. Mefodei Автор
      05.01.2023 08:43

      Перед ответом добавлю немного контекста.

      1. Найти хороший бекенд с опытом игровых проектов - сложно

      2. Вакансия в компании очень долго была в подвешенном состоянии

      3. Уровень зарплаты в студии для разработчиков был выше среднего по рынку

        Общая стоимость техники: системник и 2 монитора была около 2000$. И конечно, это не было безвозвратно. Эта была самая рядовая процедура передачи техники на время работы.


      1. GbrtR
        05.01.2023 17:33

        Вопрос в основном немощная vs мощная. Т.е. обычную всё равно пришлось бы выдавать и скорее всего тоже с двумя мониторами, на мощность то они не влияют, только на удобство. Так что получается немощный тоже не $300 стоит.

        Ну и в компе, основные затраты на данный момент это мощная видеокарта, которая для для программиста по идее не нужна, если он не DS.

        Ну памяти 64GB поставить, ну пару SSD на пару терабайт, это всё очень небольшие затраты, на фоне зарплаты программера.


        1. alexkuzko
          06.01.2023 08:54

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

          В общем, как ни пытаюсь найти оправдание наезду, не получается. Скорее выглядит как обычный рабочий конфликт на стыках зон ответственности.


      1. alexkuzko
        06.01.2023 08:47

        Очень уж выглядит как попытка влезть в устоявшиеся процессы выдачи техники без учёта текущего положения дел. Хотя в последних абзацах написано что не надо ужасаться, а надо разобраться.

        Кстати, это выглядит ещё и как факап HR отдела, которые были обязаны передать требования (а не пожелания) звезды сисадмину и/или отделу. Иначе с какой радости давать нестандартный комп? :) У него же первым могут спросить.


  1. Leopotam
    05.01.2023 01:44

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

    Несколько раз такое было, когда получалось убедить - проект развивался и двигался вперед. Когда не получалось убедить - через полгода слышал "ты плохо тогда старался и не смог нас ВСЕХ убедить, насколько все плохо".


    1. Mefodei Автор
      05.01.2023 08:47
      +1

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


  1. Etlay
    05.01.2023 12:46

    Дополню автора:

    В “нашем” представлении руку к коду игры придется прикладывать везде и часто.

    Честно говоря, очень странное представление о работе СТО в таких компаниях. Сам в геймдеве уже больше 9 лет, и на практике, уже на уровне лида с командой из 4-5 программистов, на написание кода остается меньше 10% времени.

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


    1. aml
      05.01.2023 14:50

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


      1. Etlay
        05.01.2023 15:11

        Ну собственно в этом и был посыл, если СТО занимается тем что пишет код, вместо налаживания процессов то что-то тут не так.


        1. aml
          05.01.2023 16:18

          CTO может это поменять, не?


    1. Daimonn
      05.01.2023 14:51

      так CTO и должен построить нормальные процессы, а не бежать, если до него никто их не выстроил


    1. Mefodei Автор
      05.01.2023 15:04
      +1

      Как всегда не бывает только белого и черного. Ты прав в том, что в нашем понимании времени на код остаться не может или будет очень мало. Под исключения должны попадать разве что стартапы и небольшие проекты/команды, где СТО он и дев. лид и тех. лид и может даже ПМ. Буквально в этом году в одной из компаний ру пространства, где в проект было инвестировано очень и очень много у меня состоялся разговор с СЕО команды, который прямым текстом объяснял, что ждут они что код будет писаться руками СТО быстрее, чем кого-либо и это было требование. В результате оказалось, что все это требование в написании кода уходит корнями в состояние процессов. А процессы поставить на ноги придется:

      1. Поменять часть команды, что на том этапе проекта надо было делать очень осторожно
      2. Задать правила/стандарты/регламенты
      3. Подтянуть общее состояние кода и стабильности. И вот тут на старте самому придется в это погрузиться очень глубоко и действительно писать код.

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


      1. excoder
        05.01.2023 20:22

        А мне понравилась классификация. В ЕС действительно бывают очень бизнес-СТО, и также есть технические эксперты, между ними создаётся баланс. На мой взгляд, корнями это уходит в достижение баланса личной жизни и работы в культуре многих стран ЕС. В этой парадигме программирующий СТО – это совмещение 2-3 ролей в одной, что подразумевает отказ от остальной жизни, не говоря уже о том что это может разрушить процессы. Конечно, всегда есть исключения – компания из 3 человек, или гений-whizkid.


  1. Prime_N2
    05.01.2023 14:51

    Самым недавним событием стало собеседование за партией в League of Legends

    ЗП зависела от фарма/кда? А вообще, инетерсный способ проверить навыки коммуникации и лидерские качества, особенно в затяжных матчах.


    1. Mefodei Автор
      05.01.2023 15:16

      Надеюсь, что прямая корреляции между фармом/KDA к зп не входила в этот этап. Но опыт получился очень интересный


  1. excoder
    06.01.2023 14:07
    +1

    Довелось пошерстить рынок некоторое время назад. Действительно, небольшие компании под CTO (Head of Development, VP Engineering, ...) подразумевают старшего программиста. При этом всё же подразумевая, что он будет и CTO одновременно :) Иногда не предлагается даже опцион, то есть на зарплату на такую тяжелую роль. Хороший ответ им, на мой взгляд, таков: в этом случае вам нужно искать кофаундера-старшего-программиста-станет-впоследствии-CTO, с долей вполть до равной с текущими сооснователями. Так как перемалывать здоровье нужно с каким-то понятным резоном, а не потому что "крутая технология" и "перспективный продукт".


  1. barloc
    07.01.2023 18:31
    +1

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

    Поэтому и откат после увольнения куда то в районе ведущего инженера/менеджера. Да и стремиться на такую должность - надо очень хорошо представлять будущее компании, которая это предлагает.