«Разработка языка Kotlin обошлась намного дороже, чем наш средний продукт»: интервью с главой JetBrains

Генеральный директор компании Максим Шафиров о конкуренции с Atlassian и Microsoft, стратегии на 10 лет и руководстве с точки зрения программиста.

Максим Шафиров попал в JetBrains в 2002 году десятым сотрудником, а в 2012 году занял пост гендиректора. В интервью он рассказал:

Максим Шафиров
Максим Шафиров

О карьерном пути и управлении большой компанией

Как вы попали в компанию и стали гендиректором?

Случайно. В компанию я пришёл довольно давно — в 2002 году, когда ей было около двух лет. Я стал десятым сотрудником. Тогда казалось, что компания уже большая: скоро перестанет помещаться в одну комнату. Работал программистом — до сих пор горжусь тем кодом, который тогда написал. Он всё ещё работает, но более умные люди его сейчас доводят до ума.

В какой-то момент оказалось, что компании нужно какое-никакое руководство. Когда над проектом работает 15 человек, уже нужно не просто говорить, кому что делать, а хотя бы стремиться вовремя выпускать релизы, развиваться. Мы как-то разговаривали с Сергеем Дмитриевым (сооснователь JetBrains — vc.ru), и он говорит: «Не хочешь руководством заниматься?». Я ему: «Нет, конечно. Не хочу. Никогда не думал об этом. Я программист, о чём ты вообще?». Я переспал с этой мыслью ночь, на следующий день пришёл и сказал: «Да, хочу». Просто потому что это было нужно и мы без этого страдали.

Это было в 2004 году. В 2012 году ситуация повторилась, но уже не на уровне руководства разработкой проекта, а всей компании. Сергей сказал, что хочет заняться другими проектами, развивать биоинформатику. Может быть, найдётся в компании кто-нибудь, кто его заменит? На следующий день я сказал: «Да, можно попробовать». Потому что надо. Как-то естественно всё получилось — я никогда не ставил себе в качестве цели карьерный рост.

Сейчас вы пишете код или на это уже нет времени?

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

Как устроено управление компанией?

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

В общем-то, компания так же и структурирована. Любая команда разрабатывает продукт более или менее самостоятельно, планов сверху никто не спускает. У нас есть отдел, который занимается разработкой всех IDE на базе платформы IntelliJ IDEA. Есть отдел разработки всех инструментов для .NET. Отдел разработки инструментов для команд. Есть Kotlin, дизайн-студия, HR.

Что касается офисов в других странах, мы, в отличие от многих других компаний, не стали локализовывать разработку продуктов по офисам. Может запросто получиться, что какой-нибудь продукт разрабатывается во всех шести. Хорошо, что изобрели видеосвязь, она нас спасает.

У каждого отдела есть руководитель, который подчиняется вам напрямую?

Слово «подчинение» немного не подходит. Мы не классическая иерархическая организация: я не ставлю им задачи, они не предоставляют мне отчёты. Мы встречаемся и решаем, что нужно делать. Чаще всего не один на один, а более крупной компанией — 10–15 человек.

В разных городах и странах чем-то отличается управление?

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

Есть разница в работе с людьми здесь и по видеосвязи?

Конечно. Если мне пришла в голову какая-то мысль, здесь я спущусь на два этажа и поговорю с человеком. А в Мюнхене — надо писать: «А можно я тебе позвоню?». Чем больше таких танцевальных па, тем сложнее коммуникация.

Это можно как-то исправить? Или только смириться?

Рационально никакой проблемы нет. Пошёл, поднял трубку, поговорил, всё то же самое. Как-то проще, когда все рядом. Но всех рядом нет, не могут все жить в одном городе. Просто планета большая.

Офис JetBrains в Петербурге
Офис JetBrains в Петербурге

О стратегии и бизнесе JetBrains

Как распределяется выручка по странам?

Мы почти не выстраиваем маркетинг и продажи под конкретные страны. Весь наш бизнес глобальный. Поэтому, конечно, мы можем посчитать, где мы больше заработали, но это скорее показатель не того, насколько мы успешны, а того, насколько развит рынок в этой стране. Больше всего мы зарабатываем в Штатах, где-то 40%.

А в России?

3% в России, 4% — СНГ.

На какие метрики вы в своей работе смотрите в первую очередь?

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

То, что вы делаете сейчас, даст эффект только через полгода?

Через два-три года в лучшем случае. Скорее, горизонт — пять-семь лет.

Вы знаете, как будет выглядеть компания и в какую точку она придёт через пять-семь лет?

Я знаю, а вот насколько это верно, конечно, никто не знает. Мы начинали как IDE для одного вполне специфичного, но очень конкретного, платёжеспособного и растущего рынка Java-программистов. Потом росли горизонтально — делали всё то же самое для людей, которые занимаются тем же, но с использованием другого языка программирования. И кажется, сейчас практически всё, что имеет для нас финансовый интерес, мы покрыли, горизонт роста закрыт.

Есть несколько хорошо друг с другом сочетающихся, но не вполне связанных вариантов дальнейшего развития. С одной стороны, мы сами создаём для себя рынки. Например, Kotlin: мы создаём рынок для бесплатного продукта, но лучшие инструменты для него, конечно же, случайно оказались у нас.

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

Мы хотим стать компанией, которая имеет серьёзный вес на рынке инструментов для команд, причём не только команд разработчиков. Это уже будет классический b2b-продукт, и нам с ним придётся непросто с точки зрения продвижения на рынке. Но мы постараемся.

У вас довольно много очень крупных клиентов — Citibank, Google, Twitter, Wikipedia. Как вы к ним находили подход?

Это они к нам находили подход. Программисты друг другу передают идею о том, что им очень нравится работать с нашими продуктами, с ними они чувствуют себя продуктивнее. И продают эту идею своим коллегам и начальству.

Если ваши основные продукты для разработчиков, кто на втором месте? Менеджеры?

У нас уже есть YouTrack, есть TeamCity — это продукт для сборки. Upsource для code review. Пока всё, но есть ещё один большой продукт в разработке.

Когда мы начинали делать TeamCity в 2005 году, идея была такая: мы сделали IDE и всё, что можно было сделать в IDE для индивидуального разработчика. «Продукт закончен», — думали мы 14 лет назад. Что ещё можно сделать? Например, такую же интегрированную среду, но для команд. Начать решили с того, что было наиболее востребовано в тот момент и отсутствовало на рынке — это Continuous Integration. Был такой инструмент, назывался CruiseControl, но работать в нём было неудобно.

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

Когда выпускаешь продукт на рынок, то потом сказать «нет, на самом деле мы хотели сделать кое-что другое, давайте его перепрофилируем» тем сложнее, чем более продукт успешен. Нам не повезло — продукт стал успешным. И несколько лет назад мы вспомнили, что идея была в том, чтобы сделать инструмент для команд, который объединяет все инструменты для разработки и не только: для планирования, коммуникации, отслеживания процессов, результатов. Решили попытаться вновь. Думаю, в течение года уже можно будет на что-то посмотреть.

Насколько сервис YouTrack может чувствовать себя конкурентом Jira по функциональности и охвату аудитории?

Доля рынка, которую YouTrack занимает по сравнению с Jira, действительно небольшая. И в последнее время не меняется.

Если говорить про ошибки, которые мы допустили: Jira развивалась не только как продукт, но и как экосистема. Есть масса компаний, которые пишут в Jira какие-то расширения, плагины или просто оказывают сервис по настройке для конечных пользователей.

Тем не менее YouTrack довольно успешный, денежку приносит, мы им сами пользуемся с большим удовольствием. И ребята планируют развиваться дальше.

О расстановке сил на рынке

Кого JetBrains считает своим основным конкурентом?

Для разных продуктов разные конкуренты. Что касается инструментов для разработки — это Atlassian и в последнее время Microsoft. Она стала много вкладываться в работу с девелоперами, есть инструменты для команд. Visual Studio Code активно набирает популярность.

У вас есть стратегия войны?

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

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

Лампочка с подсказками в Intellij IDEA
Лампочка с подсказками в Intellij IDEA

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

Но большое количество наших пользователей, как выяснилось, ничего из этого не используют, они просто открывают один файл, редактируют в нём текст, и всё. Если использовать только такой базовый уровень, то конкурирующие продукты, конечно, выигрывают — просто потому, что они проще и легковеснее.

Будем стараться образовывать пользователей, такие вещи нужно обязательно популяризировать. Мы считали, что это уже общеизвестные факты, все этим пользуются и объяснять не нужно. Так вот — нужно. И сам продукт нужно делать проще.

То, что там есть продвинутая функциональность, не является извиняющим фактором, чтобы делать продукт сложным. Можно привести в пример первые iPhone. Там было столько функциональности сразу — никто не думал, что такие вещи могут быть в телефоне, да? Но при этом продукт был настолько прост и понятен, что им могли пользоваться буквально все.

Чем ваши продукты принципиально отличаются от продуктов Microsoft?

Важно смотреть, где та или иная компания извлекает прибыль, что она в конечном итоге продаёт. Microsoft не строит бизнес на девелоперских инструментах. Точно так же, как Google не продаёт поиск, например. Microsoft с помощью инструментов привлекает разработчиков в свою экосистему. А потом продаёт сервера на Azure. Или офисные программы. А наш клиент — программист. То есть мы что делаем, то и продаём. Мне кажется, что это очень выгодное отличие.

Но для пользователя оно не слишком очевидное. Почему я должна переходить с Visual Studio в ваш продукт?

Для этого есть маркетинг. У нас есть сотрудники, которые на примерах объясняют, почему это имеет смысл. Обычно людей цепляют какие-то мелочи.

Почему на рынке так мало экосистем для разработчиков? Atlassian, Microsoft и вы.

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

Программисты, как ни странно, очень не любят платить за софт. Так что это тяжёлый бизнес.

О Kotlin, работе с Google и отзывчивости

Есть у вас продукт, который вы сейчас не монетизируете, но в перспективе хотели бы?

Наверное, можно так сказать про Kotlin. Не то чтобы мы его не монетизируем, просто процесс монетизации — это игра в очень долгую. Мы не ставим себе это как цель первого порядка и понимаем, что так или иначе с этим всё будет хорошо.

На чём он может зарабатывать, кроме инструментов?

Только на инструментах. Open-source-проекты классически зарабатывают на консалтинге. Они продают обучение или внедрение этих технологий в бизнес. Но мы продуктовая компания, для нас консалтерский бизнес не привлекателен. В консалтинге вы продаёте время людей, и если вы хотите заработать в десять раз больше денег, нужно нанять в десять раз больше людей. Мы хотим остаться продуктовой компанией.

Но на сайте у вас пока нет отдельной IDE для Kotlin, вы предлагаете использовать для него IDEA?

И да и нет. Попробую объяснить. Вообще, язык нужен для перевода кода из структурированного текста в формат, который понимает и может выполнять машина. При этом у каждой машины своя платформа, свои библиотеки, среда исполнения. Kotlin пока может работать в двух средах исполнения: Java — например, для приложений на Android, и JavaScript — например, для фронтенда. Ещё мы работаем над компилятором в нативный код, можно будет писать приложения для iOS.

То есть выглядит так, будто у нас есть IDE для каждого языка, но на самом деле это не так. Язык — дело вторичное, важна платформа. Вот это IDE для Android, вот это IDE для Java Server Side, это IDE для фронтенда, это IDE для scientific-вычислений и так далее. А Kotlin — везде. И на всех платформах он родной. Под Java-платформу можно писать часть на Java, часть на Kotlin. Фронтенд тоже: можно писать часть на JavaScript, часть на Kotlin.

Пока Kotlin везде свой, пока он не обрастёт собственной экосистемой, завязанной исключительно на него, не очень понятно, к чему делать инструмент. Но мы будем.

Когда?

Пару лет, я думаю, это займёт.

Помимо возможности писать приложения для iOS, над которой вы сейчас работаете, есть ли ещё области, которые пока не охвачены Kotlin?

Есть области, которые, скорее всего, и не будут охвачены Kotlin — это системное программирование, например. Писать драйверы для железа на Kotlin — скорее нет, чем да. Код, который должен работать в реальном времени, всякие датчики и так далее — тоже скорее нет, чем да. Операционные системы — нет.

А вот уровень приложений для какой бы то ни было операционной системы или платформы — это то, что мы хотим покрыть. Теоретически всё уже и покрыто, осталось поднакопить жирку: библиотеки, примеры, комьюнити, экосистему, людей, которые умеют это делать и могут научить других.

Как началось сотрудничество с Google? IDEA — open-source-продукт, но, наверное, Google не могла просто её взять и сделать что-то своё.

Вообще могла. По лицензиям абсолютно ничего такого тут нет.

Но она почему-то так не сделала.

Да, в 2011 году команда Google пришла к нам и сказала, что хочет разработать IDE, но делать на базе Eclipse (IDE для Java от Eclipse Foundation — vc.ru) её тяжело. Eclipse — это тоже open-source-проект, но чтобы интегрировать в него специфичный инструментарий для Android, нужно было сделать API.

И этот API команде Google никак не удавалось протащить, не было коммуникации. Они пришли к нам и наладили коммуникацию, мы просто оказались более отзывчивыми. Мы даже отдали им собственный плагин для Android, они его открыли для разработчиков — с этого и начали. Но никаких денег там не было.

А как Google заметила Kotlin?

Получилось довольно смешно: когда мы начали разрабатывать Kotlin, то про Android не думали вообще. Потом кто-то из энтузиастов попробовал написать что-то на Kotlin под Android, и что-то пошло не так, сломалось. Нам сообщили, мы поправили, нам сообщили что-то новое, мы поправили ещё. Опять же, проявили некоторую отзывчивость.

Ещё у Android на Java сложилась такая ситуация: версия языка всегда отставала от того, что было у остальных разработчиков на Java. Поэтому когда Android-программисты получили красивый, удобный и функциональный язык, они стали долбить Google: выскажите своё официальное мнение — можно ли на этом писать? Не будет ли проблем в будущем?

Команда Android в Google внимательно слушает сообщество. Может быть, не сразу отвечает, но на ус мотает. И в какой-то момент, видимо, накопилась некая критическая масса, пора было выразить свою позицию по этому поводу.

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

Мы договорились, что торговая марка Kotlin будет передана в специально основанный для этого фонд. JetBrains всё ещё стоит за Kotlin, но если вдруг что-то случится, кто-то сможет форкнуть Kotlin и продолжать разработку под этим же названием.

В 2016 году в СМИ пошли первые слухи о том, что Google хочет заменить Java на Kotlin из-за конфликта с Oracle.

Да, было очень забавно читать. Тогда никаких разговоров об этом не было. Сама постановка вопроса о том, что язык нужен Google для того, чтобы избежать лицензионных проблем с Oracle, не имеет ни малейшего основания, потому что претензии Oracle состояли в копировании API. Но пишете ли вы на Kotlin, на Java, на Python, на чём угодно — используются всё те же самые API.

Замена языка никаким образом не затрагивает предмет спора между Google и Oracle. Звучал и такой вариант: «А давайте мы тогда вообще просто заменим Java на Swift». Но это значит, что все приложения под Android можно выкинуть в мусорное ведро. Никто на это никогда не пойдёт.

Но когда вы читали эти статьи в 2016 году, то прикидывали, может ли Kotlin сейчас заменить Java?

Да, конечно. Никаких технических препятствий не было.

Сколько человек работает над Kotlin?

73.

Вы разрабатывали язык около семи лет — это долго для языка? Как шла разработка?

Мне не с чем сравнивать, у меня это единственный опыт. С одной стороны, долго. А с другой стороны, я рад, что получилось именно так, и сейчас попробую объяснить, почему.

Разработчики придерживаются такой идеи: надо сперва что-нибудь сделать, а потом уже изменениями приводить это в нужное состояние. С языком так не работает: если он меняется, то написанные на старой версии языка программы перестают работать. Если вендор языка позволяет себе такие выкрутасы, то скоро пользователей у него не останется, если только это не Apple.

Apple может себе такое позволить, со Swift ровно так и происходит. Каждые пару лет выходит новая версия Swift, которая с предыдущей не совместима: пожалуйста, переписывайте ваши программы. Но от Apple программисты не денутся никуда и никогда, а мы так не можем.

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

Получается вопрос курицы и яйца. С одной стороны, нужно накопить большое количество пользователей, чтобы понять, что хорошо, а что плохо. А потом вам нужно их всех выкинуть, потому что в процессе выяснится, что на самом деле нужно было делать не так.

Мы в своё время просто явно сказали пользователям: сейчас язык будет меняться. Мы максимально постараемся помочь с миграцией с одной версии на другую, но ничего не обещаем. А после релиза 1.0 изменения закрыты. Теперь всё, что написано на Kotlin, будет компилироваться и в следующей версии компилятора будет работать так же.

То есть мы накопили базу, решили, что правильно, что неправильно, что оставить, что выкинуть — вот и получилось столько времени.

Во сколько вы оцениваете общие затраты на разработку?

Где-то $30–35 млн.

Это можно сравнить со стоимостью разработки IDE?

В случае с Kotlin у нас гораздо меньше переиспользования по сравнению с другими продуктами. Для новой IDE, скажем, нужно 80% того же кода и 20% уникального. В Kotlin очень много писали нового, много чего перепродумывали. Kotlin дороже, чем средний продукт, много дороже.

У вас есть IDE, есть язык, есть много продуктов для разработчиков, и вы рассказали, что собираетесь охватывать также менеджеров, а как насчёт, например, облака? Что-то вроде Azure или AWS?

А потом рекламу продавать, если доводить до абсурда? Пока не приходило в голову. Своё облако — это свои сервера, совсем не наш бизнес. Лет через 20 давайте синхронизируемся, может, мы передумаем.

Офис JetBrains в Петербурге
Офис JetBrains в Петербурге

О роли основателей в компании и жизни идеи от рождения до закрытия

Пока вы управляете компанией, чем занимаются основатели?

Сергею Дмитриеву интересна биоинформатика, aging, образование как концепция. У него есть интересные мысли, как можно по-другому вообще устроить образование, чтобы учиться было интереснее и эффективнее. У него есть проекты в этой сфере — и свои, и те, в которые он инвестировал. Другой основатель — Евгений Беляев — делает образовательный продукт в виртуальной реальности, который называется CoSpaces. Ещё один основатель, Валентин Кипятков, лицензию пилота получил.

Некоторые из своих проектов они делают в рамках компании, некоторые — вне.

Как устроен процесс принятия решений на стратегическом уровне, они в нём участвуют?

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

Откуда берутся идеи для новых продуктов, кто их придумывает, кто утверждает и как устроен процесс?

Давайте я на примере Kotlin расскажу, потому что это было смешно. Тот же самый Сергей пришёл и говорит: «Что нового можно было бы сделать для программистов?». И один коллега — Дима Жемеров — говорит: «Самая крутая штука, которую можно сделать для программистов, — это язык программирования». Я такой: «Вы чего вообще, куда? Где мы, а где язык программирования? Мы никогда не потянем и не сделаем его популярным». Ну а на следующее утро я пришёл и сказал: «Всё, делаем».

За это время мы сделали столько IDE для разных языков, что мы понимали, как люди пользуются разными фичами языка. Какие места больше всего у людей реально болят. У нас были накоплены огромные знания в широком поле по языкам. А Java на тот момент развивалась категорически медленно, писать на ней было просто неудобно. Решили попробовать.

Есть ещё дополнительный нюанс в разработке языка, который становится мультипликатором всех рисков. Для другого продукта в принципе достаточно, если у него есть пользовательская база. Это оправдывает инвестиции и времени, и денег. Язык либо мегапопулярен, либо он не нужен.

А есть какие-то продукты, которые вы закрыли?

Да. Давно, правда. Был такой продукт, назывался Omea. Это новостной агрегатор, десктопный инструмент, в котором можно было читать почту, фиды, новостные группы, RSS. Мы его закрыли, потому что было непонятно, как привлечь более широкую аудиторию. Открыли исходный код, и он даже до сих пор, по-моему, живёт.

Сколько вы на нём потеряли?

Это не повлияло критически ни на что. Ещё был давно большой продукт, назывался Fabrique. Это фреймворк и IDE для разработки именно серверных приложений сразу с UI. Но пока мы его делали, а делали мы его долго, обновился стэк технологий, и необходимость в продукте отпала. Мы его закрыли за несколько недель до планируемой даты релиза. Решили, что, наверное, не жилец. Конечно, можно было начать с нуля всё делать, но зачем?

То есть закрываете проекты вы редко.

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

Есть такой имидж, например, у компании Google: вы, конечно, можете пользоваться их продуктами, но никто не скажет, что завтра они не исчезнут. Нам бы такого не хотелось: кажется, что репутация именно на рынке разработчиков очень важна.

Какой продукт вы считаете самым доходным?

IDEA.

А второй?

ReSharper. Всё скучно, да? Понимаете, бывают продукты с каким-то космическим ростом. Но у нас не так, всё накапливается потихоньку. Чем дольше продукт на рынке, тем больше он зарабатывает.

Есть ли продукт, у которого динамика позитивнее, чем у других?

Rider. Это IDE для .NET. С ним тоже смешная история. У нас вообще-то есть продукт ReSharper — плагин для Visual Studio. Но это игра в догонялки: Visual Studio добавляет какую-то функциональность, мы добавляем больше. Всё было нормально, но тут выяснился вот какой нюанс: Visual Studio потребляет ресурсы, память, CPU и так далее, а мы добавляем сверху. Visual Studio до сих пор ориентирована на 32 бита, памяти потребляется не более чем 2 ГБ — и мы вдвоём просто перестали помещаться.

Подумали — и решили сделать свою IDE, Rider называется. Она показывает хорошую динамику. И GoLand показывает хорошую динамику — в частности, потому что сам рынок растёт очень хорошо.

Сотрудники компании используют только продукты компании?

Разрабатывать IDE и не пользоваться этой же IDE — странно. Это означает, что, наверное, ты что-то не то делаешь, хотя мне известны люди, которые предпочитают только легковесные редакторы. Чтобы кто-то использовал VS Code, мне не известно. Во всяком случае, даже если это так, то это не проблема.

Насколько в компании распространён трудоголизм? Люди сидят тут сутками?

Кто как. Наверное, мы уже не стартап. Когда мы начинали, я действительно уходил в 2–3 часа ночи, работал и в субботу, и в воскресенье. Просто потому что было ужасно интересно. Сейчас у нас тут по субботам кружок по робототехнике, сотрудники приводят своих детей, и я тоже со своими прихожу в офис. И нет, народу не очень много.

То есть руководство не поощряет трудоголизм.

Нет. Скажем, даже были конфликтные ситуации, когда люди не хотели идти в отпуск, а мы отправляли. Ну ничего, как-то перестроились.

О культуре в компании и найме сотрудников

Вы позволяете сотрудникам заниматься сторонними проектами?

Да. Есть масса пользы в том, что люди приобретут новый опыт. Они будут более интересующимися и мотивированными. А если им это запрещать, они будут считать, что компания их ущемляет, не даёт заниматься тем, что им интересно, и уйдут куда-нибудь. У нас есть такая тема, как в Google, — 20%. День в неделю можешь заниматься чем хочешь. Хотя загорать на пляже 20% времени не поощряется.

То есть разработка.

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

Вдруг не справлюсь, вдруг там всё плохо устроено или начальник злой, или коллеги на обед не ходят вместе. Тогда он говорит: «Давай я один день в неделю буду работать у вас». Иногда переходят совсем. Иногда говорят: «Нет, что-то мне у вас не нравится». И уходят назад. Мы так не планировали, но вот так с этим правилом получилось.

Насколько я вижу, после того как Kotlin стал известным, компания тоже стала более известной в широких кругах. Это как-то отразилось на настроении коллектива?

У меня есть обратное ощущение — приятно, конечно, осознавать масштаб деятельности, но с другой стороны, разработчики часто интроверты, им комфортно в маленьком кругу. А когда тут такой резкий взрыв, возникает дополнительный дискомфорт.

Но сотрудников стало проще искать, наверное?

С одной стороны — да, с другой стороны — мы делаем много продуктов, у нас всегда кадровый голод. И чем больше мы нанимаем, тем больше у нас хотелок.

Какие основные источники кадров?

Работаем со студентами — это надёжный, но довольно долгий способ получить очень хороших сотрудников. Хантим отовсюду, откуда только можно.

А хакатоны не проводите?

Мы проводим хакатоны внутри, оттуда рождается масса идей. Это, знаете, такое программирование без обязательств: не надо думать, как тебе завтра сопровождать продукт, что с ним будет через 10 лет. Но некоторые вещи потом приходится всё-таки тянуть — иногда получаются полезные штуки. Хакатоны для привлечения снаружи мы не проводили. Наверное, это здравая мысль, спасибо.

Как вы можете понять, что человек вам подходит? Какие качества у него должны быть? Какие компетенции?

У нас разная культура в разных проектах. Когда мы находим человека, смотрим, куда он подойдёт — не только по скиллам, но и по ценностям.

Но есть же какие-то общие ценности во всей компании?

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

Когда к вам приходит студент на работу, вы больше смотрите на образование или на реальные проекты, которые он уже смог сделать?

Студенты редко делают что-то конкретное. Когда они приходят на стажировку, то проходят интервью. Мы проверяем базовые знания — каким местом человек слушал то, что ему в университете рассказывали. И смотрим, насколько ему нравится кодить. Это с возрастом из людей получаются хорошие программисты, которые уже не любят программировать. А когда человек этим только начинает заниматься, у него либо горит всё, либо не горит. Когда горит — можно брать.

Как может выглядеть карьерная лестница в компании? Куда я могу попасть?

На моё место.

Могу?

Да. Я же попал. Обычно так это выглядит: приходит человек, начинает что-то делать. Если он сидит в своём углу, никуда не показывается, то карьерной лестницы у него нет — но ему и не надо.

Иногда человек говорит: «Ну посмотрите, у нас же здесь плохо сделано, давайте я помогу». Если человек активен, помогает другим, то зарабатывает авторитет, и вокруг него получается команда. Тогда мы предлагаем им сделать продукт вместе. Они его делают, а он выступает в роли тимлида.

Куда дальше?

Как сложится. У нас нет заранее продуманной иерархии, скорее мы просто идём от имеющегося. Структура образуется только там, где она необходима.

Допустим, тимлид подумал, что на позиции он достиг потолка или перегорел. Что он дальше будет делать?

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

Вы говорите, что вас гипотетически кто-то может заменить. Что должно для этого случиться?

Человек должен продемонстрировать видение, понимание того, чем компания может заниматься дальше. Продемонстрировать способность спокойно взаимодействовать с массой людей. Возможность заразить своими идеями, чтобы кто-то по собственной воле подхватывал и шёл что-то делать дальше. Да и хватит, пожалуй.

И одновременно с этим вы тоже какие-то ошибки можете совершить, которые приведут к замене?

Да. Руководство компанией для меня не самоценность или самоцель. Если такой человек появится и я увижу все эти свойства в нём, поверю в него, то вообще нет проблем.

Если бы это произошло, чем бы вы стали заниматься? Остались бы в компании?

Да, остался бы. Что бы я делал? В принципе то же самое, что сейчас. Но только мне не надо было бы отвлекаться от программирования.

Можете описать свой типичный рабочий день? Из каких частей он строится, какие задачи вы решаете?

Почта, Slack, митинги и работа в IDE.

О России на глобальном рынке и о покупке других компаний

Как вы оцениваете российское техническое образование?

Становится лучше. С одной стороны, грех жаловаться. Я здесь учился, как и 99% моих коллег. А с другой стороны, в западных университетах гораздо более фундаментальные курсы по Computer Science. Но мы активно нагоняем.

Что бы вы изменили в российском образовании, чтобы оно стало ещё лучше?

Больше практики. Но и сейчас ничего не мешает студентам по ночам вместо того, чтобы готовиться к сессии, чего-то программировать.

Если посмотреть на Россию на международной ИТ-арене, как вы оцениваете страну с точки зрения и мозгов, и компаний, которые имеют российские корни и пытаются конкурировать?

Ощущения очень двоякие. Есть масса энергичных людей, которые могут, хотят и много чего делают. Но и отток очень чувствуется. Говорят, что все, кто мог уехать, уже уехали, а остались те, кто уехать не мог, — это, конечно, не так. Но всё-таки очень много из тех людей, кто уехал, уехали с мозгами.

Мы офис в Мюнхене открывали именно по этим соображениям, чтобы люди, которые хотят уехать из России, не должны были увольняться из компании. Это хорошо работает, прямо прекрасно. Часто люди, которые отсюда уезжают, устраиваются в очень большие фирмы — Google, Facebook, Microsoft. Можно за них порадоваться, но чем больше компания, тем меньше личного участия в результате. Здесь они могли бы сделать что-то более impactful.

Как часто бывает такое, что из вашей компании люди уходят и открывают свою компанию?

Бывает, но я не считал. Например, есть такой Фёдор Коротков. Он уехал от нас в 2013 году. Есть люди, которым надо в Долину съездить. Он работал в Twitter, потом в Airbnb. Потом сделал свой продукт, который с нами конкурирует. Он очень хороший чувак, я всё жду, когда его можно будет обратно забрать.

Забрать — купить компанию или нанять его обратно?

Как получится. Покупка компании — у нас пока эта мышца не очень работает.

Экспериментировали?

Не сильно. Обычно всё разбивается о проблему, что потом делать с людьми. Как их интегрировать? Они же совсем по-другому работают.

То есть если бы вы кого-то покупали, то ради технологий и аудитории, возможно, но не ради специалистов?

Ради технологии покупать никакого смысла нет. Всё, что полезного есть в нашей индустрии в смысле технологий, уже с открытым исходным кодом.

Так, ради людей нет смысла покупать, ради аудитории тоже.

Ради людей есть смысл покупать, надо просто научиться. Мы пока не умеем.

То есть проблема в вас, а не в том, что люди по-другому мыслят?

Да, абсолютно, проблема в нас.

169169
161 комментарий

Спасибо за отличное интервью!
Для 1С когда IDE сделаете? (Не для себя прошу, для друга)

35

Со встроенными проверками: "эта проводка выглядит подозрительно с т.з. налоговой, могут быть проблемы".

44

Лучше сразу нативный kotlin на 1С. Чтобы другу на удобном современном языке писать.
И назвать это 1К.

17

3-4% рынка? Ну такое...
1С сильно локализованный продукт.

8

Ответ же есть :)
Больше всего мы зарабатываем в Штатах, где-то 40%. 3% в России, 4% — СНГ.

3

Нет главного вопроса - когда Идея перестанет жрать все доступные ядра и 16 Гб оперативки? А представители джетбрейнса перестанут на конференциях советовать выпить чашечку кофе, пока в CLion отладчик в себя приходит.

Еще круто, когда компания радуется и в ченджлогах пишет "мы умешили лаг ввода с клавиатуры, теперь он мень 500 мсек".

31

Так она ж на Яве написана. Прожорливая. Радуйтесь что ещё продукты из холодильника жрать не начала

34