Всем привет!
В этой статье я хочу на опыте мужа и знакомых рассказать что из себя представляет разработка в ОАЭ. Отдельно рекомендую изучить эту статью перед тем, как решитесь принимать оффер из ОАЭ или из другой страны Ближнего Востока, ситуация будет примерно такой же, а может и хуже.
Дисклеймер: Здесь представлен опыт мужа, рассказы знакомых из ОАЭ и мои впечатления от всей ситуации. В какой-то мере я надеюсь, что это релевантно только для пары компаний, но используя веб и мобильные приложения в ОАЭ я делаю вывод, что так, к сожалению, везде.
Опять получился лонгрид, но уж слишком много всего накопилось :)
Пояснительная часть перед тем, как начнем:
Огромную долю (наверное около 80%) в сфере IT в ОАЭ составляют выходцы из Индии и иногда Пакистана, они здесь главные поставщики дешевой и зачастую некачественной рабочей силы в IT секторе и это очень сильно влияет как на рынок, так и на сам выпускаемый продукт.
В ОАЭ практически невозможно получить гражданство (только если вы не Павел Дуров). Работодатель спонсирует вам выдачу резидентской визы (Emirates ID) и она прекратит свое действие после расторжения контракта. Здесь вашим максимумом будет получение золотой визы на 10 лет, которая не будет зависеть от работодателя или иных условий, но для Абу‑Даби вам нужен ежемесячный доход выше 30,000 AED (7,725 EUR), а также есть еще ряд требований. Эту сумму реально зарабатывать, если вы разработчик уровня Senior и выше. На основании моих рисерчей, системные аналитики, QA инженеры, UI/UX дизайнеры, к сожалению, получают меньше этой суммы, но могут быть исключения.
Часть текста будет эмоционально окрашенной, так как я очень требовательна к тому, что я делаю и вообще к работе своих коллег и подчиненных, поэтому для меня то поведение, которое будет описано ниже является неприемлемым и я считаю, что лучше неподходящего человека отпустить, чем мучиться с ним и еще хуже — доделывать работу за него.
Что представляет собой разработка в ОАЭ?
Огромную долю рынка занимает аутсорс, состоящий в основном из выходцев из Индии и иногда Пакистана.
ОАЭ — это дорогая страна по уровню жизни, несмотря на отсутствие налогов. Кроме того, большинство нанимаемых работников здесь экспаты и согласно местному законодательству компания должна оплатить им и их семье перелет из ОАЭ в родную страну при увольнении (а еще многие оплачивают ежегодно авиабилеты в родную страну экспата, но это не обязанность работодателя), оформить резидентскую визу и страховку.
Для многих стартапов это дорогостоящее удовольствие, поэтому логичное решение — вывод разработки на аутсорс в другую страну, где стоимость сотрудников значительно ниже, наиболее популярное в данном случае направление — Индия.
Сразу скажу, что не все аутсор‑компании плохие, текст про аутсорс в данной статье в основном посвящен аутсор‑компаниям из Индии.
Причины для выбора аутсорса:
аутсорс из Индии получается дешевле затрат на релокацию европейца и оплату заработной платы;
аутсорс разработчики не сильно требовательны к стеку, готовы заниматься тем, чем скажут даже при отсутствии навыков;
у компании есть возможность легко отказаться от части команды в случае, если бюджеты урезаются или темпы роста замедляются;
в большинстве случаев на начальных этапах важнее скорость, а не качество, поэтому бизнес считает, что легче добавить 50 новых разработчиков и они все сделают быстрее.
Почему аутсорс может быть плохой затеей (на реальном примере из ОАЭ):
аутсорсеры в большинстве своем не заинтересованы в создании качественного продукта;
аутсорсеры работают удаленно, иногда в другом временном интервале;
разработчиков сложнее заставить участвовать в дежурствах, сложнее процедура согласования оплаты за дежурства;
сложнее растить сотрудников из аутсорса в том числе на уровень тимлида, зачастую у них нет заинтересованности в росте;
есть риск затягивания сроков разработки из‑за вовлеченности аутсорсеров в различные сторонние проекты, о которых компания никогда не узнает;
проблематично контролировать качество и заставлять аутсорсеров придерживаться общим стандартам в виду факторов выше;
сильная текучка кадров, более частый поиск кандидатов (зачастую замены приходится искать через 1–3 месяца).
Технические риски работы с аутсорсом:
аутсорс‑компании в регионе зачастую привносят ненужные и нестабильные фреймворки;
сложный и/или запутанный код в местах, которые решаются просто;
обработка только happy path, очень редко кто‑то обрабатывает краевые кейсы и различные сценарии использования;
построение архитектуры без учета дальнейшего использования в каких‑то других сценариях;
применение кросс‑платформенных фреймворков в части мобильных приложений (Flutter, React Native, даже встречается KMM).
Предположим, что аутсорса в компании нет или он минимален, тогда основную долю в команде разработки все равно будут составлять выходцы из Индии в связи с их скромными требованиями к размеру заработной платы.
Кто обычно присутствует в команде
Чаще всего в команде разработки присутствуют: тимлид, разработчики (от junior до senior, иногда еще могут быть staff и principal), продакт и UI/UX дизайнер. Реже встречаются QA инженеры, еще реже — бизнес/системные аналитики.
Основная проблема с отсутствием отдельных ролей в команде это менеджмент. Самой компанией и/или технической частью команды зачастую управляют те же выходцы из Индии, которые любыми способами пытаются сократить бюджет на команду разработки, поэтому тут совсем не до тестировщиков и аналитиков. Считают тут исключительно количество разработчиков, другие роли в принципе не учитываются.
Такой подход встречается не только в стартапах, но и в довольно крупных энтерпрайз компаниях и банках, хотя по логике такие компании должны быть ориентированы в первую очередь на качество продукта и стабильность систем.
Также еще одним способом экономии на бюджете является использование кросс‑платформенных подходов в мобильных приложениях. Наиболее распространены Flutter и React Native в описании вакансий. Объясняется их использование довольно просто — экономия на количестве нанимаемых сотрудников.
На одном из собеседований бывшему коллеге так и сказали, что вместо 2 разработчиков нужно будет нанимать 1.5 и этим обусловлен выбор. При этом менеджмент не задумывается о плавности интерфейсов, стабильности и необходимости написания нативных составляющих.
Однако наличие кросс‑платформенных технологий в описании вакансии не означает, что на рынке ОАЭ представлено огромное количество Flutter или React разработчиков, их здесь не хватает, поэтому зачастую недостающие ресурсы компании также добивают аутсорсом.
Почему бизнес/системные аналитики в команде встречаются редко?
Я даже разделять бизнес и системных аналитиков не буду, если в команде есть системный аналитик, то он гарантированно отвечает за бизнесовую часть совместно с продактом, а под бизнес‑аналитиком здесь понимают человека, который следит за метриками проекта/компании и т.п.
Обязанности аналитика в большинстве компаний (за исключением крупных госкомпаний) берет на себя продакт в части описания бизнес‑логики работы приложения, а техническую часть подхватывает тимлид.
Правильно ли это? Я считаю, что нет и даже компания мужа приходит к тому, что должен быть кто‑то между командой разработки и продактом. Но все будет упираться в бюджет, особенно, если изначально компания его распределила неверно и практически полностью потратила.
Почему мало QA инженеров?
Здесь почему‑то считается достаточным, если функционал протестирует разработчик (и здесь речь не про автотесты), а затем по диагонали функционал проверит продакт.
Профессиональный уровень тестировщиков иногда оставляет желать лучшего, поэтому в отдельных случаях действительно может быть так, что разработчик проверит функционал даже лучше QA инженера, но это не значит, что QA инженеры не нужны, вопрос только в квалификации.
Правильно ли это? Ну конечно же нет, не просто так в команде разработки были выделены отдельные роли. В разделе «Про подход к разработке и продукту в целом» ниже я подробно описала что не так с приложениями в ОАЭ и я искренне считаю, что к любому функционалу должны быть написаны полные требования, которые потом будут проверяться на этапе тестирования.
Отсутствие QA в команде не означает что код будет полностью покрыт автотестами, уровень покрытия тут тоже периодами страдает по понятным всем причинам: бизнес продавливает фичи, на стабилизацию нет времени.
Есть ли шанс найти работу разработчику уровня Junior?
ОАЭ — это страна страна экспатов, каждого сотрудника из‑за рубежа сюда нужно релоцировать (а значит оплатить перелет, оформление визы и сделать страховку). В таких условиях нанимать джуниор разработчиков из‑за рубежа становится экономически невыгодно.
Однако на территории страны есть ряд международных университетов, которые готовят в том числе и студентов в области Computer Science. Поэтому иногда компании нанимают из таких университетов стажеров без опыта работы на низкооплачиваемую позицию. В этом плане практика абсолютно совпадает с российской и международной.
Без резидентской визы найти работу джуну будет сложнее из‑за дополнительных затрат компании на оформление документов и в целом нужно понимать, что рынок позиций уровня junior не такой обширный, но найти вакансии со стажировками реально. В таком случае желательно выходить напрямую на HR понравившейся вам компании или иметь уже хотя бы какой‑то базовый опыт.
Про подход к разработке и продукту в целом
Глобальная задача на разработку обычно выглядит так: «Сделать приложение чуть лучше, чем все остальные».
Почему складывается такой подход:
Люди едут в регион зарабатывать деньги, а не делать крутой продукт, которым они сами будут пользоваться долгое время. Причем за деньгами едут как европейцы (нет налогов на зарплату → доход выше), так и люди из Азии;
Низкое качество кадров, которые приезжают в регион, так как компании стараются сэкономить на сотрудниках, а нанимаемые сотрудники не обладают достаточным опытом;
Положение на «птичьих правах» — нанятый сотрудник будет соглашаться с любым решением руководства, так как иначе он будет уволен и останется без визы и права находиться в стране.
Важно понимать, что приложения в ОАЭ это кошмар и ужас особенно после приложений в РФ. Топ недочетов, которые я часто встречаю:
Прорабатывают исключительно хэппи пассы и то не всегда все, а только наиболее часто используемые. Иные сценарии взаимодействия (в т.ч., краевые кейсы, обработку ошибок) вообще мало кто считает нужным аналитически прорабатывать и тестировать.
Само приложение крашится, часть кнопок может быть недоступна, вылезает что-то непонятное, в итоге пользоваться приложением может быть совершенно невозможно. Мы так пытались вызвать беспилотное такси, приложение зависло, машина не приехала, а заказ на такси висел у меня несколько дней (новое такси я естественно вызвать не могла, потому что у меня висел якобы активный заказ).
Валидация полей это отдельная тема, узнать что ты не так ввел в какой-нибудь форме особенно на вебе практически невозможно, скорее всего высветится стандартное "что-то не так" и догадайся сам что же пошло не так и что от тебя ожидает система.
Отличия между разработчиками из стран СНГ и Индии
Дисклеймер: Я ничего не имею против людей из Индии и в целом мне все равно из какой страны приехал человек, мне важно, чтобы он выполнял хорошо свои обязанности. Я считаю, что отрицать очевидное бессмысленно и мое мнение — ребята из СНГ очень сильно выделяются на фоне всех остальных, а не только выходцев из Индии. Но если уж основная масса разработчиков в ОАЭ это выходцы из Индии и вы с ними столкнетесь — пишу именно про них.
Итак, я намеренно пишу про отличия, потому что для нас, например, разницы между разработчиком из Беларуси и разработчиком из России (при условии, что у них одинаковый уровень знаний) нет и в целом я не замечала, чтобы мы не делили разработчиков по страновому принципу. Но, к сожалению, в данном случае разница ощутима, даже не смотря на то, что у разработчика из Индии может быть больше лет опыта.
Моему мужу несказанно повезло и он работает в компании, где есть очень опытные ребята из нескольких стран СНГ. На их фоне разница с выходцами из Индии очень сильно заметна. Что выделяет ребят из стран СНГ:
Релевантный и более глубокий опыт;
Понимание правильных процессов разработки;
Понимание необходимости отслеживать свежие изменения в сфере разработки и по возможности применение их на практике;
Мотивация развивать продукт и вкладываться в него, а не выполнять свою работу формально.
Муж в компании пока что нашел только несколько разработчиков из Индии разного уровня (от мидла до тимлида), которые могут конкурировать с ребятами из СНГ: они качественно и в срок выполняют задачи, следят за качеством продукта, подсвечивают руководителю потенциальные проблемы, участвуют в архитектурных обсуждениях. К таким сотрудникам ни у кого вопросов не возникает, они работают наравне со всеми остальными.
В регионе также представлено много международных компаний (например: Google, Huawei и т. п.), и как показывает опыт собеседований, уровень кандидатов, которые пришли из международных компаний гораздо выше, чем у ребят, которые напрямую релоцировались из Индии, их уровень взаимодействия в команде, а также качество ближе к тому, к которому привыкли в СНГ.
В подразделах ниже мы постарались максимально подробно пояснить в чем же заключается разница.
Подготовка к собеседованиям
После проведения ряда собеседований, у кандидатов из Индии есть одна общая особенность, которая их выделяет — это уровень подготовки к собеседованию.
Типичная практика и картина собеседования в РФ — кандидат приходит с тем багажом знаний и опытом, который у него есть, отвечает на поставленные вопросы и иногда, чтобы козырнуть знаниями закапывается внутрь технической реализации, если обладает данным знаниями. Обычно это практика вопрос‑ответ, дополнительный вопрос — более развернутый ответ.
Для кандидата из Индии, как в известном советском фильме, собеседование — это всегда праздник. Человек на другом конце камеры будет всегда в лучшей рубашке (абсолютно серьезно), его рассказ о себе будет идеально отрепетирован, в начале собеседования будет идеальный small talk, теоретические ответы будут отскакивать от зубов, а в резюме будет больше 6 лет опыта разработки. Однако, если кандидат не знает ответ на вопрос, то скорее всего собеседующий услышит долгий пространный монолог о том, как было замечательно на предыдущем месте работы и как здорово они там работали и сколько всего кандидат там достиг, и может быть кандидат немного заденет задаваемый вопрос, но в результате у собеседующего вскипит мозг, а нужный ответ на свой вопрос он так и не получит.
Проблема в том, что при выходе на работу вскроется огромное количество косяков и отсутствие банальных навыков, как например, неспособность установить пакеты зависимостей, работать с Git или отсутствие базовых для языка программирования навыков, а качество кода будет содержать большое количество кода с душком.
Вскрыть отсутствие необходимых навыков в данном случае можно только практическими задачами: чем больше life coding, тем лучше. Это во‑первых, тяжело подделать, а, во‑вторых, когда кандидату задаются вопросы по коду это ломает шаблон ответов в голове у кандидата.
Профессиональные отличия
Выходцы из Индии не готовы вкладываться в работу, а соответственно, искреннее желание им помочь и объяснить как нужно делать они воспринимают так, будто вы их заставляете работать.
Как я уже упоминала раньше, большинство кандидатов из Индии имеют просто огромный по российским меркам опыт в разработке. Когда видишь в резюме опыт в 6, 10, 16 лет невольно начинаешь думать какой уникальный кандидат, но в реальности уровень владения технологией очень низкий, человек может кое-как знать верстку интерфейса, но совершенно не владеть многопоточностью (напомню, что это кандидат с более чем 6 годами опыта).
Встречались случаи, когда Senior QA приходилось объяснять из какого статуса нужно брать задачи на проверку (сюрприз, из Ready For Testing) и что не нужно ждать пока на дейли тебе скажут, что задача готова. При этом процесс работы задокументирован и каждый сотрудник во время онбординга знакомится с ним.
Также очень часто встречается случай, когда человек участвовал во всех видах разработки: бэкенд, фронтенд, мобилка, все что-то угодно, но при этом знания по всем разделам будут довольно поверхностные.
Поведенческие отличия
Как оказалось на практике, выходцы из Индии (говорю сейчас про уровень senior и даже выше) не умеют вести себя адекватно в коллективе и принимать критику.
Начнем с субординации. Сотрудник из Индии всегда подчиняется другому выходцу из Индии или человеку, который привел его в компанию, даже если его прямой руководитель — сотрудник другой национальности, это лишь значит, что он формально будет выполнять ваши поручения, но фактически авторитет будет видеть в другом человеке.
В случае, если вы выскажите конструктивную критику, в ответ последует обида, жалоба вышестоящему выходцу из Индии, если такой есть и возможно увольнение с работы с формулировкой «меня здесь не ценят». В компании мужа было много случаев, когда сотрудники довольно высоких грейдов приходили в кабинет к вышестоящему руководителю и жаловались что их не ценят после аргументированных замечаний по поводу качества работы или взаимодействия с коллегами.
Комментарий к разделу
Возможно примеры в этом разделе могут показаться вам суровыми, потому что в большинстве из приведенных случаев они привели к увольнениям, но на самом деле, если вернуться в самое начало, то лучше отпустить сотрудника, чем мучиться с ним и еще хуже — доделывать работу за него.
Естественно, что никто из ребят не хотел, чтобы человек уволился (найти замену всегда занимает время), но мы привыкли, что обычно, когда ты идешь такому человеку навстречу, объясняешь ему что он делает не так, показываешь что именно он сделал не так и подсказываешь как это можно исправить — такой сотрудник исправляется или хотя бы делает попытку исправиться, а не игнорирует тебя, обижается и увольняется. А по поводу жаловаться — это нормально, можно использовать третьего человека как медиатора в разногласиях, но тогда нужно быть готовым решать проблему, а не ждать, что кто‑то за вас решит вашу проблему.
Выводы
Я рекомендую выбирать ОАЭ в качестве страны для профессионального развития в сфере IT только при совокупности факторов:
1. Интересный проект, в котором вы получите новый опыт и знания
Например, вы ранее не работали в какой‑то сфере (например, с криптой), а тут вам предлагают возглавить команду, которая будет отвечать за развитие части функционала внутри такого приложения.
2. Профессиональная команда
Вы точно знаете, что в команде вам будет на кого ориентироваться (есть опытный лидер) и с кем обмениваться опытом. Лучше также ориентироваться на знакомства и рекомендации коллег, которые сюда уже переехали.
3. Хорошая оплата труда
Чтобы нивелировать отсутствие возможности получения гражданства стоит рассматривать ОАЭ с точки зрения возможности накопить деньги для последующего переезда через пару лет.
Жалеем ли мы, что переехали в ОАЭ? Нет, мы знали всю эту специфику и заранее готовились к тому что будет, у мужа здесь есть хорошая возможность получить опыт.
Стоит ли разработчику приезжать в ОАЭ? Не уверена какой ответ будет правильным, мы в 2020 году поняли, что лучше вырасти в России и потом переезжать на более высокую позицию. Но если вы вдруг встретите очень интересный стартап с какими‑то супер возможностями и технологиями, то попробовать однозначно стоит.
Искренне надеюсь, что эта статья не отпугнет ребят, которых будет привлекать компания мужа, используйте указанные выше факторы при принятии решения и не забывайте, что даже после оффера можно попросить созвониться с кем‑то из команды и задать дополнительные вопросы.
***
Про нашу жизнь в Абу-Даби и все, что не попадает под формат Хабра пишу в тг-канале Абу-Даби ON AIR, заходите, буду рада!