Здравствуйте. Я full stack разработчик.
И сегодня я хочу рассказать про азиатский IT рынок глазами непосредственного участника. Речь пойдет о Юго-Восточной Азии в частности Сингапур, Малазия и Тайланд. Это те страны в которых и с которыми мне приходилось работать. Но общая картина в регионе примерно везде одинаковая с небольшими поправками на местный колорит. Так что статья должна быть полезна и тем кто смотрить в сторону Китая или например Индонезии.
Но для начала сделаю небольшое отступление. Рынок IT стартапов в Азии делится на две части. Первая это западные транснациональные компании и стартапы, вторая часть это полностью местные команды разбавленные небольшим количеством иностранцев. Именно о местных IT компаниях здесь и пойдет речь.
Первое что бросается в глаза по прибытию это локализация местного IT рынка. Азиаты большие патриоты и националисты, что ярко отражается и в IT предпочтениях. Например в Сингапуре никто не пользуется Google Maps, существует фактически монопольное приложение карт Сингапура и все пользуются только им. Доходит до смешного если вы подходите с отрытыми картами Google в телефоне, то вам сначала мягко порекомендуют открыть "правильные" карты в противном случае могут даже сделать вид что не понимают о каком месте идет речь, но после открытия заветного сайта могут даже проводить до места назначения. В Малазии если вы пытается заказать такси через Uber вы так же рискуете поймать волну непонимания, кому нужен Uber если есть местный Grab, а в той же Индонезии единственно расово верный агрегатор так и называется Taxi. И такие особенности менталитета накладывают особый отпечаток на весь рынок в целом и не самый лучший.
"Мыши кололись плакали, но продолжали есть кактус"
(с) кто-то из классиков
Первое мое удивление вызвало крайне низкое качество как самих приложений так и их поддержка.
AirAsia - крупнейший авиа лоукостер в регионе. Наверное 80% всех моих перелетов, а их было не мало приходилось на него. Угадайте сколько раз я смог заказать билет на их сайте? С боями мне удалось взять его один раз при этом постояно напедаливая его из девелоперской консоли браузера, после такой дерзкой деверсии на Chrome я выхватил перманентное окно с 500 ошибкой которое не лечилось не сбросом кешей ни даже перезагрузкой лэптопа. На мой звонок в компанию я получил заверения что проблема с сайтом давняя и известная работает он только с последними версиями IE, но девушка на проводе заверила что не надо беспокоится и она сейчас все оформит прямо так по телефону. Вернувшись на сайт через месяц я обнаружил, что ошибка ровно на том же месте, но теперь это уже была красивая страница с закрытым шлагбаумом и крупным знаком стоп, что как бы намекало - "не надо нам тут ломать сайты". Если вы думаете что это одиночный случай, то все тоже самое вы можете обнаружить на сайте доставки Mc Donalds на Филиппинах, FoodPanda в Тайланде доставляет еду с вероятностью 1 к 2, а крутануть вас через все пробки мимо пустой дороги для Grab скорее не исключение, а правило.
Природа этих вещей мне открылась позже.
"Собираясь делать стартап следуй пути бережливости. Найди благородного мужа с сединами и приставь к нему пару юных умов. Юным наука, мужу почести, тебе слава мудрого."
(с) Конфуций
Методология Lean Startup является столпом местного IT рынка. При этом специфика ее применения такова, экономия идет на всем, вплот до 10 долларов за нормальный сервер. А конфигурация 1 senior + 2 juniors возможно отлита в граните и хранится в местном музее ЭВМ. При этом уровень джуниор разработчика это зачастую знания с какой стороны включается лэптоп. Что подразумевает обучение этих "помощников" в течении всего цикла проекта. При этом если вы думаете что им дают сидеть просто так, то тут-то как раз и кроется вся проблема.
Старт нового проекта начинается примерно в таком порядке. Пока вы быстро сетапите окружение и накидываете примерную структуру всего проекта, ваш CTO или менеджер или даже инвестор подыскивает подходящих мальчиков, после того как молодые гребцы прибывают на шхуну, CTO вручает им задания уровня сеньера и вот тут начинается ад.
"Руки в масле *опа в мыле, мы работаем на ЗИЛе"
традиционный азиатский подход
Многие наверно слышали о невероятном трудолюбии и бешенной производительности азиатов. Но надо понимать что одно из важнейших отличий в менталитете Азии это само понятие работы. Если в России и странах запада основополагающими вещами являются цель и конкретный результат. То в Азии работа - это просто действие. При чем абсолютно не важно чем вы заняты и как главное создавать бурную видимость, все должны понимать как вы заняты и вовлечены в дело, даже после обеденный сон на рабочем месте это важная часть рабочего процесса. При этом чем больше хаоса производится всей рабочей группой тем более она продуктивна.
В моем случае это выглядело как джуниры получив задачи от CTO о которых естественно никто понятия не имел. Таск трекер скорее был для галочки и дань моде, основное управление ведется через мессенджер. Начинали лихорадочно копировать все что они могли найти уже похоже в ранее написаном коде естественно не утруждая себя попытками разобраться в чем-то. То есть если где-то по запаре валялась функция для отправки тестового емейла с захардкоженными переменными. То был велик шанс через пару дней обнаружить эту же функцию в другой части проекта аккуратно откопированную десять раз в каждой копии которой например менялось только название самой функции и она превращалась из send_test_email в send_manager_email и заменым адресом получателя. И так для всех десяти функции. Надо заметить copy&paste подход является основой китайского программирования. Если что-то может быть размножено, оно будет размножено не важно сколько раз. Зато приятные глазу коммиты по 200 строк в день. А главное все довольны, кроме того кто отвечает за техническую часть и программирование в частности. Но если вы попробуете выразить свое неодобрение по поводу такого подхода то врядли вас кто-то поймет, кому нужна одна generic функция если есть 10 надежных и понятных, 50 строк лучше 4-х, это основы азиатского программирования.
Еще одна огромная проблема связанная с культурой это то что начальник всегда прав. Безразлично что требования невыполнимы или это ломает существующей процесс, будет сделано ровно так как сказано. Коммуникация между участниками команды отсутствует полностью.
Вышло уже довольно длинно. Думаю для первого раза пока хватит. Ставьте лайки если вам интересно.
Продолжение следует ...