Возможность поиграть в XBox с коллективом.
Бесплатные обеды.
Начну с того, почему я пошёл работать в PlayFlock. Всё просто: мне захотелось геймдева, а на рынке труда в то время под мои профессиональные навыки в этой сфере подходила только компания PlayFlock. Обычно я тщательно изучаю компании, прежде чем идти работать в них, но на этот раз желание работать в геймдеве затмило мой разум, поэтому я сразу же поехал на собеседование и получил приглашение.
Начнём с топ-менеджмента.
Сергей Смагин (не понял, чем именно занимается, но похоже, что финансами):
https://sergey-smagin.moikrug.ru
http://vk.com/smagin_sergey
Руслан Мурашко (рулит PHP-разработкой):
http://vk.com/playflock
Мурад Исаков (рулит общими управленческими вопросами и почему-то именно он рулит системными администраторами):
http://vk.com/misakov
Сергей Романенко (в 2011 рулил Flash-разработчиками и сам участвовал в кодировании Flash-приложений):
https://romanenko-sergey3.moikrug.ru
http://vk.com/flashgame
По профессиональным качествам понравились Смагин, Мурад, Романенко. Толковые ребята. Смагину спасибо за молчаливость, Мураду за рассудительность и выдержку, Романенко за работу в коллективе - он занимает позицию топа, но тем не менее сам участвует в процессе разработки Flash-приложений, а не просто "раздаёт указания из своего кабинета".
Как профессионал крайне не понравился Руслан Мурашко.
Во-первых, после неудачных собеседований поливает грязью кандидатов, рассуждает о их профессиональных навыках за спиной. Если не понравился тебе программист, зачем же на весь офис обсуждать его недостатки? Практически после каждого собеседования Руслан начинает обсуждать криворукость кандидатов.
Во-вторых, Руслан невероятно матерится. Каждый его рассказ, техническое указание или обсуждение задач содержит в себе кучу самого красочного мата. По моему субъективному мнению, именно благодаря Руслану в конторе столько матерщинников, потому что от других топов редко можно услышать матерные речи. Как известно, рыба гниёт с головы, и Руслан тянет вниз моральную атмосферу всего коллектива. Ни в одной компании, где я работал помимо PlayFlock, не было столько мата в рабочее время.
В-третьих, Руслан постоянно водит в офис своих "женщин". Я не знаю, зачем, и я не знаю, где он их находит. Но тем не менее Руслан регулярно приводит в офис каких-то девиц, обжимается с ними, играет в приставку прямо в рабочее время с ними на диванчике. А что происходит по вечерам, когда Руслан идёт с этими девицами в парк - я и вовсе не хочу писать здесь.
Я всё конечно понимаю, у человека явная слабость к противоположному полу, да и они, похоже, сами липнут к нему неплохо, но зачем же водить их в рабочее время в офис, постоянно меняя одну на другую, и откровенно обжиматься с ними на глазах у всего коллектива? Думаю, что подобное поведение топ-менеджера с профессиональной точки зрения просто недопустимо.
По поводу Руслана у меня всё. Тем не менее, это один из ключевых людей в компании, и поэтому эти факторы очень сильно мешали работать.
Далее немного про техническую начинку компании. Я 10 раз пожалел, что повёлся на своё желание работать в геймдеве и не узнал побольше про их продукты. Всё же лучше работать над каким-нибудь бизнес-продуктом, внутри которого хороший код, нежели работать в геймдеве с таким ужасным кодом.
Во-первых, про их "движок". Это нечто страшное. Абсолютный самопал на PHP, внутри нет никаких фреймворков и библиотек. Поощряются "велосипеды". Никто ни разу не задумался о том, чтобы использовать какое-то готовое решение или библиотеку. В результате на выхлопе получаем гигантское (я не преувеличиваю, это объективно) - просто гигантское количество багов.
Во-вторых, работа этого "движка" в продакшене просто поражает. Для ускорения его работы поднимаются все объекты из БД, кэшируются в огромном количестве оперативки и там крутятся пыхом, периодчески свопаясь назад в БД. Ребят, ну я всё понимаю, делать новые игры нужно быстро, времени на какие-то там готовые решения нет, но ведь нужно понимать, что данные должны крутиться хоть немного в БД, а не постоянно лежать в 128-гиговом мемкэше?
Вообщем, эдакий архитектурный АД происходит внутри серверов PlayFlock.
В-третьих, нет никакого единого хранилища кода этого самого "движка". Когда приходит время склепать новый проект, то движок просто вручную копируется в новую папку и на нём начинает вертеться новый проект. Таким образом, баги, исправленные в этом "движке" под одним проектом, ещё долго крутятся в клонах "движка" под другими проектами. Вытекающие результаты вполне ясны: зачастую какие-то баги не успевают исправить во всех инстансах этого "движка" под всеми проектами, поэтому под каждым их проектом по сути крутится своя модификация этого движка с блэкджеком и девицами.
Конечно же работать с этим крайне неприятно, потому что каждому программисту ставятся задачи по множеству разных проектов. Например, сегодня ты фиксишь баг в движке проекта "А", а завтра работаешь над задачей проекта "Б", где вновь всплывает этот же самый баг, но уже в другом инстансе "движка".
В-четвёртых, нет никакой документации. Вообще никакой. Тебе просто дают код и говорят решать задачи. Как хочешь, так и разбирайся в их самопальном "велосипеде". Нет никакой документации по взаимодействию Flash с PHP. Я вообще не понимаю, как они там разбираются в API-запросах. Зачастую устно между флэшерами и пыхерами решается на весь офис, как будет вести себя API. Конечно же, с этим тоже "крайне приятно" работать: приходится по реализации выяснять функционал игр, а также переделывать по десять раз те или иные реализации API.
В-пятых, практически нет стремления к тому, чтобы сделать всё нормально. Среди программистов большая текучка. Люди приходят и через неделю уходят. Иногда уходят через пару дней, просто посмотрев код и багтрекер. Если кто-то из новичков обращает внимание на какие-нибудь фреймворки или другие способы улучшить код, то общепринято его высмеивать и говорить о том, что он не соображает, а после увольнения долго гнобить его и смеяться над его предложениями за спиной. Типа: "Ха, захотел нам фреймворк какой-то втюхать, да у нас тут такой крутой движок! Зачем нам фреймворки?! Сразу видно, что он слабак и кодить не умеет! Только к фреймворкам привык!" - послушав пару раз такие речи про ушедших людей, я начал с ужасом осознавать куда я попал.
Уважаемые разработчики PlayFlock, ну поймите вы уже, что есть продукты, которые работают под гораздо большими нагрузками, чем у вас, и они используют фреймворки не от своей технической слабости, а для унификации кода, для избежания многих проблем, которые уже решены другими разработчиками в пределах сторонних библиотек. Нельзя в 21 веке писать только своё и только с нуля - вы просто не будете успевать разгребать баги своих "велосипедов".
Далее... KPI.
В PlayFlock используют для мотивации программистов KPI. Тебе устанавливают планку по количеству задач, которые ты должен выполнить. Если выполнил свою планку, то получаешь 100% оговорённой ЗП. Если скакнул выше планки - получаешь более 100% ЗП. Если же ты (как это обычно бывает) не выполнил план по количеству задач, то получишь 80-85% зарплаты с объяснениями о том, что нужно делать больше задач. И всё бы ничего, но планка ставится известным образом :) Во всём цивилизованном мире уже давно известно, что нельзя мотивировать программистов количеством сделанных задач, потому что это ведёт к низкому качеству кода, отсутствию документации и прочим проблемам производства. Но техническим менеджерам PlayFlock всё ни по чём. Чем быстрее шлёпаешь задачи, тем лучше. О качестве самого кода или качестве технических решений там никто не слышал. О ревью кода и подавно. Приветствуется любой, даже самый отборный быдлокод без всяческой обработки ошибок, лишь бы задача была сделана. Мне кажется, что именно этим объсняется низкое качество их движка, жуткое количество багов и постоянные несостыковки между Flash- и PHP-приложениями.
По такой же схеме работают художники, аниматоры и все прочие сотрудники. Только если для художника такая схема работы отлично подходит (сколько нарисовал, столько и получил), то для программиста это жуткая схема мотивации. Объективно, сделал для себя вывод, что толковые программисты уходят из компании именно из-за этой схемы. Просто не выдерживают работы в режиме "шлёпай быдлокод побыстрей и получай больше денег". Новобранцы предлагают очень часто какие-то новые решения, стараются более тщательно разбираться в технических деталях, а когда видят, что из-за этого им недодали ЗП, то просто демотивируются и самовыпиливаются из компании, и это правильно, потому что истинному программисту, уважающему себя технарю нечего делать в коде PlayFlock - там кромещный ад из быдлокода.
Что касается тематики самих игр, то она ничем не выделяется. Это либо криво-скопированные с западных образцов игры, либо страшнющие игры собственного производства по типу "Слышь чо?" или "Безумия". Первое про гопоту, второе - про психопатов. Вообщем, чего-то своего изобретательного в компании нет. Либо клоны, либо ужасные поделки. Объективно это объяснимо уровнем гейм-дизайнеров в плейфлоке. От них постоянно слышен мат, на корпоративах жутко бухают, зарплаты копеечные. Кто же сможет делать в таких условиях шедевры? Геймдизайнер создаёт игры - а это лицо любой гейм-студии, поэтому на них нельзя экономить, но руководителям флока всё ни по чём. Чем дешевле гейм-дизайнер, и чем большее количество чепухи он придумает для очередной игры - тем лучше. Вероятно, ребята до сих пор на плаву с такими играми из-за нашей игровой аудитории. "Пипл хавает" эти игры в социалках, а что ещё нужно для успешного игрового бизнеса в России? :)
Наверно, это основное, о чём я хотел написать. Есть ещё множество всяких негативных деталей по типу тесного офиса, плохого кондиционера, черноты зарплаты, нестабильности размера зарплаты из-за KPI, низкого морального уровня многих сотрудников (мат, постоянное бухалово после работы, примитивные жизненные интересы), но я уже столько написал, что мне просто лень продолжать... Ключевые минусы я озвучил выше и это главное. Остальное уже мелочи.
Из плюсов бесплатные обеды и XBox, но блин, ребят... Кого кроме школьников и одурманенных геймдевом разработчиков можно этим заманить в 21 веке в IT-компанию? Одумайтесь. Налаживайте свой моральный и технический уровень.