Нигерийские истории российского разработчика

Недавно на хабре появилась статья о буднях нигерийского разработчика. В комментариях там проявилось довольно много стереотипов об этой стране, по какой-то причине «Нигерия» у хабражителей твердо ассоциируется с «банановой республикой в вакууме», при этом многим оказалось трудно поверить в указанные в статье контрасты (развитие ИТ и при этом поголовная нищета населения, такакая что даже компьютер достать — проблема).

fskzemhhgizklkou7uybuk-tuxw.jpeg

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

О стране в целом


Почему-то многие, не особо сведущие в географии, считают что Нигерия это что-то такое маленькое и незначительное, банановая республика где-то в дебрях Африки (впрочем примерно такое думают, наверное, обо всех африканских странах, может кроме пары тех, которые более-менее на слуху типа ЮАР). На деле же Нигерия имеет самое большое население среди африканских стран и седьмое место в мире — 194 миллиона человек по данным 2015 года, т.е. больше чем в России. На «маленькую банановую республику» уже не тянет.

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

Тем не менее дела потихоньку устраиваются. Например в 2015 году прошли более-менее честные президентские выборы, на которых действующий президент (находившийся у власти больше одного срока с 2010 года и фактически назначенный предыдущим президентом когда тот не смог оставаться у власти по состоянию здоровья, ничего не напоминает?) проиграл и уступил место новому. Выборы сопровождались массовыми беспорядками, вспышками насилия, попытками действующей власти перенести или вовсе сорвать выборы, но несмотря на это оппозиционный кандидат все-таки победил с перевесом в два миллиона голосов.

tbqld6inc3r4utgvmvmwexeeije.jpeg

С этим фактом связываются большие ожидания у бизнеса, так как новое правительство взяло курс на модернизацию экономики и выправление положения в стране.

О населении и деньгах


Население как было уже сказано — большое, но абсолютно нищее, при этом зачастую толком не учтенное. Мы делали один проект для налоговой службы одного из штатов — надо было сделать приложение для регистрации граждан в налоговой службе и получения местного аналога ИНН. Приложение работало на андроид смартфоне, к которому по bluetooth подключался внешний сканер отпечатков пальцев. Оператор сперва заполнял форму с данными (ФИО, адрес, место работы и т.п.), затем фотографировал посетителя и сканировал отпечатки пальцев. Сразу всплыли пара интересных моментов:

  1. Самый простой вариант идентификации граждан по номеру паспорта или любого другого документа подтверждающего личность не прокатил — у значительного числа населения Нигерии вообще нет никаких документов.
  2. Анкету должен заполнять именно сотрудник налоговой, сайты типа наших «госуслуг» для самостоятельной подачи обращений там не востребованы, так как треть взрослого населения банально неграмотна и не может заполнить анкету самостоятельно
  3. Население настолько нищее, что подавляющее большинство живет на 1–2 доллара в день. Поэтому используется очень простая система налогообложения — фиксированный подушный налог. Так как вычислить реальный доход таких граждан фактически невозможно,
    никто вообще не знает чем они занимаются и как выживают, а ставить у каждого над душой налогового инспектора слишком дорого, учитывая копеечность их доходов и налогов с них.

szq54fv1gqhzvlpvdbd0rkrwisy.jpeg
Банкнота в 1000 нигерийских найр, примерно 150 рублей (курс примерно 6 найр за 1 рубль)

Из общей нищеты и бедности следует один неприятный вывод — местные ИТ компании не готовы платить много денег за заказную разработку ПО. Запросы типа «а сделайте нам связку из веб-портала и мобильного приложения с кучей функций и всего за тыщу долларов» — скорее правило чем исключение. При этом желающих что-то заказать там реально много — сейчас в Нигерии активно развивается интернет, мобильная связь, смартфоны появляются у все большего числа жителей, появляются целые новые рынки, которые бизнес хочет занять. Например одних только систем мобильных платежей и всяких веб-денег там я видел несколько десятков. Но вот найти одного жирного клиента и хорошо жить с его заказов не получится, платят мало и со скрипом.

О валюте


С валютой в Нигерии довольно неприятная ситуация. Ее сложно достать и вывести из страны. Во-первых официальный курс найры к доллару бесполезен, на практике за доллар требуют сильно больше. Во-вторых доллары просто сложно достать! У страны серьезный дисбаланс во внешней торговле, продается фактически только нефть, покупается все остальное, и долларов катастрофически не хватает. Время от времени правительство даже вводит ограничения на покупку долларов и на вывод их из страны, что может самым негативным образом сказаться на фрилансерах и прочих внешнеэкономических контрактах. Очень неприятно под новый год узнать, что всю зарплату тебе перечислить не смогут, так как правительство ограничило внешние переводы, а цена на доллары на черном рынке взлетела в полтора раза и найр у компании перестало хватать для покупки нужного количества долларов для твоей зарплаты.

lpjv1ic7gfjwcikm1fq_po9r0oy.jpeg
Пункт обмена валюты

В ход конечно идут всякие ухищрения типа заграничных счетов и постепенного накопления денег на них, покупки и вывода валюты через всякие нелегальные каналы и т.п., но процесс этот сложный и непредсказуемый. И поэтому между «компания получила оплату по контракту» и «компания смогла продать найры, купить доллары, вывести их из страны и заплатить мне мою часть» зачастую лежит долгий и тернистый путь.

Об инфраструктуре


В Нигерии большие проблемы с инфраструктурой. Причем не только со стандартной для Африки нехваткой питьевой воды, нормальных дорог, социальной инфраструктуры, которые ко мне как к жителю другой части света не имеют прямого отношения, но и с электричеством и качеством интернета.
Перебои с электроэнергией регулярно бывают даже в столице. В итоге у всех есть бензиновые генераторы и ими регулярно пользуются. Мой начальник рассказывал, что в юности делал первый бизнес именно по доставке бензина для генераторов — ехал в сельскую местность где бензин дешевле, закупал и вез развозить по домам в столице с хорошей наценкой.
Местные топливные воротилы регулярно устраивают «топливные кризисы», задирая цены на бензин до небес (например нормой может быть продажа бензина по 100+ рублей за литр — и это в стране-экспортере нефти!) и срубая некислые барыши.

ebwzfl9djiklebujd-mpmbpyoog.jpeg
Фото к статье gobroadsheet.com/index.php/2016/04/07/nigerians-groan-as-petrol-sells-at-n500-per-litre-in-kaduna об очередном скачке цен на топливо

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

О коррупции, админресурсе и некомпетентности


В рейтинге восприятия коррупции Нигерия идет рука об руку с Россией (140 место против 134, пару лет назад вообще были на соседних позициях). Касаемо ИТ это означает, что если вы хотите начать бизнес в B2B сегменте то будьте готовы к откатам, взяткам, административному давлению и прочим внерыночным механизмам работы.
Например чтобы протолкнуть нашу систему сбора платежей в одну из систем электронных денег пришлось договариваться с главой платежного направления и отстегивать ему откат в виде части нашей комиссии от суммы платежей. Только так удалось сдвинуть дело с мертвой точки, когда внутри компании появился лично заинтересованный во внедрении начальник.

Государственные органы в Нигерии очень не любят здоровую конкуренцию. Например их главный процессинговый центр NIBSS — Nigerian Inter Bank Settlement System — принадлежит государству и законодательно придушил своего главного конкурента InterSwitch, заставив проводить все операции по картам через себя. При этом как водится при отсутствии конкуренции качество услуг падает. В этом NIBSS никто вообще не знает что и как у них работает, в итоге подключение к их процессингу заняло у нас несколько месяцев проб и ошибок. Они банально не могли нам сказать что в наших запросах не нравилось их системе, так как у них там даже разработчиков своих нет, которые бы что-то понимали во внутренностях их системы. При наличии альтернативы они с таким подходом быстро бы остались без клиентов, но альтернативы нет.

Вообще в Нигерии это частая проблема при интеграции с какими-то сторонними сервисами. Своих разработчиков почти ни у кого нет, все разработку аутсорсят, при этом как я уже писал выше — экономят по максимуму. В итоге оказываются без поддержки и сопровождения, и при возникновении проблем не могут ничем помочь. Хорошо если есть какой-то простой API в котором легко разобраться самому. Но вот те же транзакции по банковским картам ходят по крайне запутанному и зависящему от конкретной реализации протоколу ISO 8583, в котором без помощи черт ногу сломит.

Об информационной безопасности


Вкратце — Все Очень Плохо. Отдать разработку ключевой системы, имеющей дело с платежными данными, на аутсорс фрилансеру, о котором они знают только логин в скайпе — это считается нормальным.
Мы делали приложение, превращающее смартфон в POS терминал. К смартфону подключается внешний ридер банковских карт и можно платить по карте. Тут всплыл целый ворох проблем, от которых я разбивал лицо фейспальмом. Очень надеюсь что в российских банках с этим дела обстоят как-то получше (может в комментариях кто просветит).
Какой-то аудит безопасности вроде бы один раз был — во всяком случае мы передали этим парням из NIBSS исходный код нашего приложения, исправили некоторые замечания по протоколу и порядку сообщений, и получили некий сертификат. Однако потом больше никто не следил за обновлениями, т.е. в теории мы могли уже после аудита наворотить чего угодно нехорошего и никто бы не заметил.
Терминал работает с сервером NIBSS по открытому незашифрованному протоколу. Это можно было бы с натяжкой простить в случае «настоящих» POS-терминалов подключенных к серверу каким-нибудь выделенным каналом. Но наши мобильные решения сидят в обычной wifi сети, и по идее спереть данные карт ничего не стоит. Шифруется только PIN (при онлайн-проверке).
Но эти умники даже поддержку SSL уже три года внедрить не могут (напомню — это главный и единственный процессинговый центр в стране, задушивший всех конкурентов, т.е. выбора никакого нет), хотя что уж проще.
Уровень разработчиков в Нигерии довольно низок, поэтому когда мне приходилось дорабатывать чьи-то чужие решения даже я, учитывая что я сам не спец в информационной безопасности, находил там всякие SQL-инъекции и вагон прочих уязвимостей.

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

О воровстве и грабежах


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

Уровень преступности там довольно высок, что характерно для бедных африканских стран. Вооруженные ограбления средь бела дня — обычное дело. Моего начальника например недавно ограбили прямо на улице: угрожая пистолетом отобрали деньги, ноутбук и целую кучу всяких гаджетов, нужных по работе, всех этих читалок карт, сканеров отпечатков, принтеров чеков. Стоили они не очень дорого, но восстановление комплекта заняло много времени — пока заказали, пока доставили из китая. Полиция разумеется никого не нашла, да и вообще не похоже было чтобы они там запаривались такими мелочами как уличный грабеж.
После этой новости желание (и так не очень большое) съездить в Нигерию и повидать своих коллег вживую у меня окончательно пропало.

Об удаленной разработке


Когда мы начали делать систему для прима платежей по картам всплыла проблема: для разработки приложения мне надо было бы иметь доступ к железу — ридерам карточек, принтерам чеков (в Нигерии в отличие от РФ печать бумажного чека необязательна, поэтому там гораздо проще внедрять MPOS решения на базе смартфонов, не обязательно заморачиваться с принтером, но некоторые клиенты все-таки хотят эту возможность иметь) и прочей периферии. Вот только получить ее мне не удалось. В РФ нет представительств тех фирм, железо которых мы заказываем, а при попытке прислать мне ридер через DHL посылка была завернута на таможне, типа нельзя такое ввозить в страну без разрешений всяких. В итоге я остался без девайса, под который как-то должен был писать код. Сперва еще рассматривали вариант «доставить до соседней страны типа Финляндии и съездить туда забрать лично», но в DHL сказали что такое оборудование (связанное с платежами и криптографией) могут и там завернуть, при этом стоимость доставки не возвращается, а с деньгами тогда было туго и решили не рисковать.

ugg_7wzlsfz42jv4fvvygq4x2qw.png
WisePad — внешний PIN-pad для смартфона, подключается по bluetooth, имеет пин-клавиатуру и небольшой экран, некоторые модели имеют и встроенный принтер для чеков.

Пришлось как-то выкручиваться. Во-первых в приложении был выделен интерфейс для ридера карточек (это потом пригодилось когда мы стали использовать ридеры других производителей или другие модели) и создана mock-реализация, всегда отдававшая захардкоженные данные. С ней я мог работать локально у себя безо всякого реального девайса. Она же потом пригодилась для демонстраций потенциальным клиентам, когда ридера не было под рукой.

Но значительная часть подводных камней была именно в работе с SDK ридера. Думаю всем, работавшим с китайскими железяками, знакомы такие вещи как отсутствие документации, комментарии в коде на китайском, невозможность быстро получить ответ от техподдержки из-за большой разницы во времени и т.п. А тут еще добавилась невозможность локально отлаживаться.

Пришлось выделить в нигерийском офисе специальный компьютер, поставить на него TeamViewer и все тулзы для разработки и отлаживаться на нем. К компьютеру подключался смартфон, к смартфону — нужная периферия, специально обученный афро… эээ… африканец по моим командам в скайпе тыкал нужные кнопочки, вставлял карты, отрывал чеки и делал прочую ручную работу, а я через TW сидел в отладчике.

Процесс не то чтобы быстрый и удобный, но в общем-то и не такой уж страшный. Главная проблема — необходимость наличия живого сотрудника на том конце. Если бы речь шла только о смартфоне, можно было бы поставить на него какой-нибудь VNC Server и удаленно сидеть на самом смарте. Но в нашем случае надо еще было проводить операции с картами и внешней пин-клавиатурой, что удаленно не сделать никак.

О перспективах


Пока что ведение бизнеса в Нигерии вещь очень непростая — несмотря на огромные новые рынки, денег в них пока что еще не очень много, дает знать бедность населения. Зато и с конкуренцией пока все просто — уровень предлагаемых услуг в той же сфере MPOS решений пока довольно низок и не так уж сложно быстро обойти конкурентов и завоевать значительную долю.
Все надеются на улучшение политического климата, на то что удастся установить по-настоящему демократический режим и наконец прервать цепь бесконечных переворотов и диктаторов, начало этому было положено в 2015. Возможно лет через пять-десять, если этот тренд им удастся сохранить, Нигерия станет гораздо более богатой страной чем сейчас, и заложенные сейчас компании придут к успеху. Ну, а может все опять кончится очередным переворотом и новым периодом военной диктатуры, да. Посмотрим. В этом плане я рад, что хоть и работаю в этой стране, но живу все-таки в другой.

© Habrahabr.ru