Мы сами ― первые пользователи наших продуктов

В профессиональных кругах у JetBrains очень хорошая репутация. Как удается поддерживать такой уровень, ведь потребители ваших продуктов ― люди очень требовательные, привыкшие работать на рынке с высокой конкуренцией?
shafirovГоворят, в правильно заданном вопросе уже содержится 80% ответа. Ваш вопрос ― такой. Действительно, рынок очень сложный, пользователь ― избалованный. Зато понятный. А знаем мы наших пользователей потому, что сами такие. Мы сами ― первые пользователи и продукты пишем, главным образом, для себя. Поэтому наши продукты обладают функциональностью, которая полезна разработчикам. К сожалению, эту функциональность не всегда легко «продать» руководителям этих разработчиков. А мы не слишком-то и стараемся. Видимо, из этого репутация и складывается: мы ― компания, которая делает качественные и понятные пользователям продукты. Наш маркетинг сводится к информированию возможно большего количества потенциальных пользователей о нашем существовании и обучению уже существующих эффективному использованию продуктов.
В чем главный секрет тех инструментов, которые делает JetBrains? Техническая сложность? Внимание к деталям? Изощренность алгоритмов?
Какие уж тут секреты? Больша́я часть исходного кода наших продуктов доступна под открытой лицензией (Apache). Архитектуру, алгоритмы, уровень работы с деталями ― все можно посмотреть, оценить. Если серьезно, то конечно все дело в уникальной команде первоклассных профессионалов, которым интересно работать.

Языку Kotlin уже больше двух лет, про него и на SECR будет свежий доклад. А когда планируется первое промышленное применение Kotlin? Написаны или у вас какие-нибудь продукты или хотя бы плагины к ним на Kotlin? Когда стоит ждать релиза?
Скажем так ― не языку, а его идее два года. И за это время мы очень существенно продвинулись. В частности, промышленное применение уже состоялось и в JetBrains, и за рамками. Есть несколько приложений в Google Play Store, целиком написанных на Kotlin. В JetBrains мы недавно запустили внутренний каталог сотрудников ― кто в какой команде работает, контактные данные, отпуска, командировки и т.д. Все-таки нас уже более 350, пять офисов по всему миру. Несколько проектов сейчас в разработке. По собственному опыту могу сказать (я уже полгода пишу исключительно на Котлине), что главные проблемы сейчас ― медленный компилятор и недостаточная функциональность в IDE. Все-таки мы очень избалованы. По плану мы должны выпустить бету весной/в начале лета 2014. Тогда же, весной, еще до релиза, состоится финал Kotlin Challenge ― соревнования, в котором довольно сложные задачи нужно будет решать на Kotlin в условиях ограниченного времени. Нам это позволит выявить узкие места в документации, понять, какие типичные ошибки допускают люди, и подумать о том, как их избегать.

Как построен процесс разработки ПО в JetBrains? Сейчас многие компании полагаются в разработке продуктов на проектирование по правилам Agile. Что у вас? Все ли команды внутри компании должны использовать одинаковые методики управления проектами?
Мое личное мнение: Agile, как он повсеместно практикуется ― это грандиозный обман. Agile переводится как «гибкий». При этом к вам приходит тренер и рассказывает на пальцах от А до Я, что вы должны делать, а чего вы ни в коем случае делать не должны. Какая уж тут гибкость.
Мало Unit-тестов (большая часть тестов ― функциональные) ― не Agile.
Нет планирования итераций ― не Agile
Нет формального заказчика ― не Agile.
Зато, если бумажка есть, сертификат ― тогда Agile.

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

Да, предписанных методик у нас в компании нет. Из повсеместно применяемых практик могу припомнить standup meeting (не обязательно именно стоя, кстати) ― очень полезно. Особенно учитывая, что наши команды распределены географически, и ежедневное общение через видеоконференции помогает держаться вместе. Ну и continuous integration. И самое главное, пожалуй, ― это EAP. Early Access Program ― это практически постоянно действующая программа, дающая доступ к текущим результатам в течение всего релизного цикла. Это не бета-программа, когда разработчик уже все сделал и бета-пользователям остается только искать ошибки. В EAP есть возможность следить за развитием функциональности и реально влиять на то, что в результате получится. Можно без преувеличения сказать, что наши пользователи ― наши со-авторы.

Этой осенью исполнился год с момента, когда JetBrains открыла лабораторию на матмехе СПбГУ. Есть ли какие-то результаты ее работы, что удалось сделать за год?
Напомню, что на данный момент этот проект ― чисто образовательная инициатива. То есть именно научных исследований там пока нет. Зато в учебном плане ― все замечательно. В течение 2012/13 учебного года ребята проводили несколько семинаров в интересных для нас областях, летом проходили практику у нас в офисе. У кого-то явно появилось желание у нас работать ― замечательно!

Впервые опубликовано на сайте конференции SECR.