Лучшая вещь – это та, которой нет

September 11, 2017 &russian @code

Я работаю в текущей компании вот уже 12 лет. Пришел сюда еще на третьем курсе университета. Работал все время в отделе разработки программных систем. Занимался программированием на C#, потом была Java и немножко JavaScript, долгое время работал на Ruby — все, кто меня знают, ассоциируют с этим языком программирования. Ruby я люблю за выразительность, в нем в единице кода помещается больше «смысла». Если, к примеру, на C# принято писать «Войну и мир», то на Ruby — баловаться хокку.

Я прошел все стадии карьерной лестницы от junior и senior developer до software engineer. За последние пару лет я успел поработать на большом проекте HSS – архитектором, затем я решил отдохнуть и начал писать Ruby-код для одной социальной сети американских военных. Примерно 30% своего времени я уделял технической координации, помогал людям на других проектах. С окончанием работы на проекте у меня появилось некоторое количество свободного времени, и тут как раз было решено позицию CTO разделить на две части. Влад Никитин стал публичным лицом компании, а меня сделали «внутренним лицом» — VP Engineering, я являюсь главой технических координаторов.

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

Чтобы говорить о будущем, давай сначала в прошлом разберемся. Как за те двенадцать лет, что ты в профессии, изменились используемые технологии?

Не могу сказать, что что-то изменилось. Заказчики хотят все того же: быстро, дешево, желательно вчера. Разве что если раньше вовсю использовалась клиент-серверная архитектура, то сейчас появилось больше способов достичь бизнес-целей. Можно сделать мобильное приложение под iPhone и затем адаптировать для веба или наоборот. Можно сделать кроссплатформенное приложение, которое будет работать и на iOS, и на Android. Можно забыть про мобильные клиенты и встроить его, прости господи, в холодильник. Ну, или по старинке ориентироваться на пользователя PC.

Парадокс заключается в том, что 10 лет назад можно было представить себе одного человека, который сделал бы все. Отчасти оттого, что он такой крутой и у него много скилов, отчасти потому, что системы были проще. Сейчас представить себе такого человека довольно сложно, потому что, пока он будет делать приложение, конкуренты выпустят свою версию и будут иметь успех. Далеко за примером ходить не надо, тот же Pokemon GO — разработка небольшой команды. Но в первую же неделю после выпуска они столкнулись с такими масштабными проблемами, что одному человеку с ними справиться было решительно невозможно. Сегодня мы говорим про сотни, а то и тысячи серверов на систему, управлять всем этим хозяйством в одиночку, попутно отвечая на письма пользователей и дописывая какие-то фичи в приложении, просто нельзя. Индустрия сместилась в сторону командной разработки, именно поэтому популярность набрали командные техники вроде Scrum и Kanban.

А что касается сферы деятельности заказчиков?

К нам приходят с совершенно разными запросами. Раньше это в основном были крупные бизнесы: медицина, банки, казино — те, кто мог позволить себе сотрудничать с большой IT-конторой. Сейчас ситуация немного изменилась, средний размер проекта у нас поменьше: например, это может быть система бухгалтерского учета для американского дилера автомобилей.

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

Как за это время поменялись люди и необходимые для работы навыки?

Сейчас рынок сильно перегрет, в Минске появилось очень много айтишных контор. Оттого раньше был больше выбор инженеров, и одновременно сегодня разработчики стали более требовательны к уровню заработной платы. В целом упал общий уровень соискателей. Те вопросы, которые раньше задавались на собеседовании, и те, которые мы задаем сейчас, — это небо и земля. Люди не знают, сколько будет два в восьмой степени, не могут перечислить три основных принципа объектно-ориентированного программирования, не говоря уже о каких-то глубинных знаниях. Почему так, я не знаю. Может быть, потому, что количество уровней абстракции очень велико и знать все слои, к тому же не зная основ, довольно сложно. Поэтому люди стараются обладать именно теми навыками и умениями, которые можно продать на рынке. Главное, чтобы фичу человек сделал, а не разобрался, насколько она быстро работает. Time to market — главный критерий, который все пытаются уменьшить.

Давай попробуем оценить все эти параметры — технологии, заказчики, кадры — с точки зрения перспективы. Как будет меняться IT-сфера?

Сложный вопрос. Если бы меня пять лет назад спросили, что будет сейчас, я также затруднился бы с ответом. Если говорить о существующих трендах, то главный — это искусственный интеллект, он широко находит себе применение в крупных бизнесах. Это разного рода экспертные системы, часто основанные на машинном обучении, которые дают прогнозы вроде «будет ли сериал на основе этого сценария популярным». Конечно, будут востребованы специалисты узкого профиля, которые занимаются разработкой такого рода систем. Появляется много сервисов в интернете от Google и Amazon, которые предоставляют API разного уровня сложности для использования машинного обучения. Но я думаю, что широкое распространение такого рода систем — это перспектива пяти лет, может даже больше. Почему? Бизнесы, которые не связаны с IT, очень от всего этого далеки. Они не могут представить, что так можно работать с их данными, что есть класс задач машинного обучения, которые направлены на то, чтобы вычленять неочевидные корреляции. Так что они подключатся к этим процессам не раньше, чем к ним кто-то придет и скажет: «А давайте мы вам большие данные проанализируем».

Но я не вижу нашу компанию и вообще аутсорсинговые компании на рынке разработки такогорода систем.

Почему?

Потому что крупные корпорации способны очень много денег вливать в отделы Research & Development и науку. Потому что машинное обучение связано с оптимизацией вычислений, сложной математикой, моделями работы нейронных сетей. Кроме больших мозгов, требуются еще и большие вычислительные мощности, поскольку задача обучения нетривиальна и затратна. Мы также стараемся подтягиваться, выделили у себя несколько направлений приоритетного развития, которые исследуем в нашем отделе R&D. Конечно, наши ресурсы не сравнятся с «корпорациями добра». Но тем не менее мы сознаем необходимость таких телодвижений.

Ты говорил о том, что рынок нынче перегрет. Думаешь, ситуация изменится в ближайшее время?

Нет никаких предпосылок к этому. Количество бизнесов, не объятых IT, еще очень и очень велико. В 2000-х люди понимали, что без сайта продажи не идут, а сейчас люди понимают, что без мобильных приложений, интеграционных сервисов, умной рекламы, скидок и всего прочего бизнес не идет. Что можно добавить — в IT будет работать еще больше людей, а возраст немного увеличится, потому что люди в этой сфере остаются. Сейчас как раз формируется такая прослойка «зубров» в техническом и управленческом плане, которые будут делить рынок между собой.

А если подумать про далекое будущее? Лет на 10 вперед

Искусственный интеллект не изобретут. Будут приближенные к нему системы, с которыми можно будет поговорить как с живым человеком, который ответит на твои вопросы и все-таки оформит доставку пиццы. Я вижу отличный потенциал во внедрении IT-технологий в автомобильную индустрию. Илон Маск, конечно, старается, но кроме широченного 17-дюймового дисплея в машине ничего принципиально нового пока не придумал. А вот роботизированные автомобили, беспилотники, могут изменить правила игры. Удовольствия от такой езды, конечно, не будет никакого. Но удобство сильно выиграет.

В будущее с роботами-помощниками ты не веришь?

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

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

Из всех упомянутых направлений в каком ты видишь себя?

«Кем вы видите себя через 10 лет?» — отличный вопрос на собеседовании. Наверное, седым.