Шрифт:
Интервал:
Закладка:
С точки зрения бизнеса всё, разумеется, сложнее. Проблему нужно подтвердить, решение нужно найти. Программисту нужно сделать релиз, а тестировщику — удостовериться, что исправление не затрагивает другие функции. В маленьких компаниях программист, тестировщик и сотрудник службы поддержки часто выступают в одном лице.
Прошивка разрабатывается не в офисе локального бренда и не его программистом. Перечень недоработок и требования к изменения к ПО собирает, перепроверяет и сводит инженер, после чего отправляет в Китай.
Работа с исправлением кода ведётся уже в Поднебесной, но и здесь цепочка наращивает дополнительные звенья и условия. 90% поставщиков устройств не разрабатывают ПО, у них нет ни инженеров, которые умеют работать с исходным кодом, ни исходных кодов.
Прошивку, патчи, «заплатки» и обновления в Китае делает производитель плат, с которым сотрудничает поставщик. Если, конечно, поставщик действительно сотрудничает с фабрикой плат, а не перехватывает платы у перекупщиков или скупает стоки у партнёров. Во втором случае дождаться изменения прошивки невозможно, либо его сделает талантливый любитель, который взломает исходный код.
Поставщики плат тоже разные. Одни официально покупают чипсеты у производителей, платят за лицензии и имеют поддержку, а другие покупают продукцию через вторые руки.
Когда сотрудничество официальное, обновление ПО получить проще, но нелегко. Производитель плат никому не даёт исходных кодов и держит информацию в своих руках. Производители плат сами разрабатывают изменения, сами тестируют новые релизы. Даже документацию на платы они предоставляют с боем после угроз, что не получат заказ. Ситуация не меняется годами, сколько бы проектов заказчик ни сделал с одним поставщиком и производителем плат.
У этой цепи из нескольких звеньев есть и другие особенности. Большая часть китайских программистов не понимает английского языка, и требования к доработке ПО им переводит аккаунт-менеджер китайской фабрики (тот сотрудник отдела продаж, о квалификации которого можно прочитать в пятой главе). Вот как выглядит эта цепочка: менеджер регионального заказчика на английском создаёт требования для устройства, менеджер поставщика переводит требования на китайский для инженера, инженер оценивает эти требования и отправляет дальше с пометками и комментариями. Реализуется это ровно так, как было понято. Чаще всего менеджер регионального заказчика (как и китайский коллега) — не носитель английского языка, а китайский партнёр — не технический специалист. Неудивительно, что разночтения в этой цепи бывают часто.
Еще в Китае невозможно воспроизвести часть проблем, которые появляются в других регионах. Притчей во языцех стали чипсеты MediaTek, GPS которых привязали к китайским спутникам. В Китае навигация работала отлично, а в других странах нужно было сбрасывать настройки и искать региональные спутники при помощи специального программного обеспечения. Лучше всего спутники обнаруживались на крышах зданий и пустырях. Добавьте к этому блокировку в Китае сервисов Google (YouTube, магазина приложений Play, карт, поиска и остальных), качество работы которых возможно проверить только через VPN. Результаты такого тестирования далеко не всегда получаются такими же, как без блокировки.
И последнее: китайцы не являются хорошими программистами. Профессионалы отмечали низкий уровень подготовки программного обеспечения, когда разбирали исходный код недорогих смартфонов брендов В и С, построенных на базе MediaTek, Spreadtrum (Unisoc) и Qualcomm. Согласно замечаниям профи, базовую китайскую прошивку следует разобрать, очистить от мусора, оптимизировать и только после собирать заново. Здесь сделаю комплимент нашим[25] разработчикам. За десять лет работы с мобильной электроникой я не сотрудничал ни с кем, кто мог бы лучше, эффективнее и смекалистее создать качественное мобильное ПО.
* * *
На скорость и качество релиза новой версии программного обеспечения влияет и величина заказа. Везде и всюду китайцы измеряют ситуацию юанем: хороший и уважаемый заказчик — только тот, кто заказывает много. Для небольших заказов китайцам делать прошивку невыгодно и потому неинтересно. Особенно для оплаченного заказа, который уже отгрузили. На запрос изменения или исправления ошибок часто приходит ответ вроде «задача не является приоритетной». Приоритет повысится с перспективой заказа новой партии.
Возможно, всё было бы иначе, если производители плат получали бы вознаграждение за дополнительную разработку, но в китайской бизнес-модели работу по программированию никто не оплачивает. По сложившейся практике китайский ОЕМ-поставщик оплачивает физические платы, а работы по программированию идут в дополнение к заказу на «железо».
Запрос на дополнительную оплату работы программистов у китайских поставщиков проходит по разряду наглости или даже хамства. Рядовой ОЕМ, который сотрудничает с локальным брендом, скорее уйдёт к другому производителю плат, чем будет платить за работы с кодом. Производители материнских плат привыкли к этому. Разработчики оценивают работы количеством проданных плат, а не загруженностью программистов. У них даже нет предложения на услуги программирования.
Однажды мне нужно было обновить ПО для смартфона на чипсете Qualcomm. Модель выпустили в прошлом году, продажи оставались небольшими, дозаказы не планировались. Сток забирал дистрибьютор из Словакии, но с одним условием: в прошивке должен быть словацкий язык (не чешский, а именно словацкий). Чешский и словацкий языки отличаются как английский или русский из разных регионов: есть акцент, местечковые слова, но правила, построение предложений и слова одни и те же. Однако дистрибьютер был непреклонен.
Разработчик плат отказался делать прошивку. Мы давили на разработчика через поставщика, пробовали взломать исходный код. Но на давление разработчик не реагировал, а исходный код Qualcomm выстоял. Китайский поставщик был готов оплатить разработку, однако получал отказ.
Я пробовал общаться и с поставщиком плат, который разговаривал на ломаном английском, но без результата:
Мы: Нам нужно обновление прошивки с добавлением нового языка. Понимаю, что модель старая и что есть сложности, но мы готовы оплатить работы.
Производитель плат: Работы будут выполнены, когда будет заказ на платы. Когда вы подтвердите заказ?
Мы: Мы не планируем размещать заказ. Нам нужно только обновление существующего ПО, но, повторю, мы оплатим работы.
Производитель плат: У нас есть требования по минимальному заказу, если нет заказа, наш начальник не разрешает выпускать новые релизы.
Мы: А как же поддержка пользователей?!
Производитель плат: Этот случай не имеет отношения к поддержке.
Мы: Вы можете попросить начальника посчитать стоимость работ по доработке? Я уверен, что мы сможем заплатить даже больше.