Отправляет email-рассылки с помощью сервиса Sendsay

Записки СисАдмина2

  Все выпуски  

Журнал "Системный администратор" Максим Шафиров: «Фокусируйтесь на продукте!»


О секретах успеха в современном софтверном бизнесе и становлении компании JetBrains рассказывает ее исполнительный директор Максим Шафиров

Максим Шафиров
Досье
Максим Шафиров, выпускник математико-механического факультета СПбГУ, работает в JetBrains с осени 2001 года. Несмотря на руководящую должность, продолжает работать с кодом. Успешно победил былой «трудоголизм» при помощи жены и двух сыновей и теперь испытывает к своей работе нежные романтические чувства.

– Максим, расскажите, пожалуйста, какова была мотивация создания компании, с какими проблемами она столкнулась?

– Ее основатели в то время работали в TogetherSoft над главным продуктом компании, Together. Продукт обеспечивал параллельную разработку UML-диаграмм и кода, который генерировался из этих диаграмм автоматически. Идея визуального программирования или по крайней мере визуальной разработки архитектуры тогда казалась многообещающей и инновационной, этот продукт был на пике популярности среди разработчиков по всему миру.

Будучи программистами, Сергей, Евгений и Валентин сталкивались в своей работе с немалой долей рутины. Идея же новой компании заключалась в том, чтобы разработать некий новый способ программирования, интеллектуальную экспертную систему, которая брала бы рутинную часть работы на себя. Эта задача представлялась амбициозной, непонятной и неосуществимой. Поэтому решили начать с амбициозного, но понятного и осуществимого – автоматизации рефакторингов, по известной книжке Мартина Фаулера «Рефакторинг. Улучшение существующего кода».

Первый продукт компании – IntelliJ Renamer – вышел в июле 2000-го. Умел этот продукт (плагин к Borland JBuilder) только одно: переименовывать пакеты, классы, методы и т.д. в программе на Java. Даже такая простая цель потребовала решения некоторого количества нетривиальных по тем временам инженерных задач: поддержание детальной модели Java – программы в ограниченном объеме оперативной памяти, построение индексов для быстрого поиска вхождений переименовываемого элемента, трансформации синтаксического дерева, которые приводили бы к семантически корректным идентичным преобразованиям текста программы.

IntelliJ Renamer оказался нашим первым и весьма популярным приложением.

– Сейчас, оглядываясь назад, можно увидеть, что вы не зациклились на этом первом успешном продукте, плотно завязанном на популярную в то время среду разработки Borland JBuilder, а решили отказаться от дальнейшего развития в рамках этой среды. В чем была логика такого отчасти парадоксального решения?

– Да, IntelliJ Renamer оказался нашим первым и коммерчески успешным приложением. Но нам было уже тогда очевидно, что заложенные в нем технологии явно могли иметь более широкое применение, поэтому ребята приняли решение отказаться от JBuilder и писать свою собственную IDE. Конечно, учитывая, что JBuilder тогда являлся практически стандартом для Java-разработчиков, решение это было весьма рискованным с точки зрения бизнеса.

JetBrains
Это ведущий мировой производитель профессиональных средств разработки, который известен в первую очередь своими топовыми продуктами, такими как IntelliJ IDEA и Resharper.

Мало кто из российских производителей софта может похвастаться тем, что их продукты завоевали международную известность. А компании JetBrains это удалось! Основанная в 2000 году в Санкт-Петербурге Сергеем Дмитриевым, Евгением Беляевым и Валентином Кипятковым как частная компания, она за 12 лет деятельности добилась международного признания. Сегодня офисы JetBrains открыты в Праге, Санкт-Петербурге, Бостоне, Москве и Мюнхене. Выпуская 14 продуктов, пользователями которых являются около миллиона программистов по всему миру, компания получила немало международных наград. Самая последняя – титул The most innovative Java company, которого JetBrains была удостоена на недавней конференции JAX 2012 в Сан-Франциско.

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

– Совершенно верно, своих пользователей наша новая Java IDE обрела задолго до своего официального выхода в начале 2001 года. Тогда, насколько мне известно, мы первыми в мире открыли EAP (early access program), т.е. стали регулярно и бесплатно предоставлять пререлизные сборки всем желающим. Здесь важно понимать, что речь идет не о бета-программах, где пользователи выступают в роли бесплатных тестировщиков. В EAP пользователи – непосредственные заказчики. Они предлагают идеи, оценивают их реализацию, активно участвуя в разработке продукта. С тех пор этот принцип используется в разработке всех наших продуктов и технологий и является одним из основных факторов нашего коммерческого успеха.

– Несмотря на удачные находки и бурный рост компании, я знаю, что ее развитие не было безоблачным. Что происходило после выхода IntelliJ IDEA?

– Первые три года продажи IntelliJ IDEA росли экспоненциально. Регулярно выходили новые версии, пользователи становились фанатами и приводили все новых пользователей. Мы думали, что еще пара лет – и все Java-программисты мира станут нашими клиентами. Рынок, однако, внес свои коррективы.

В 2003 году вышла первая версия бесплатной IDE Eclipse. Будучи отрытой платформой, Eclipse довольно быстро сконцентрировал вокруг себя подавляющее большинство независимых вендоров программного обеспечения для разработчиков. Казалось, что рынок платных IDE для Java закончился. Для JetBrains настало время диверсификации, поиска альтернативных рынков и стратегий развития. Первым таким рынком стала платформа .NET. Летом 2004-го JetBrains выпустила первую версию ReSharper – плагина для Visual Studio, который предоставлял пользователям IDE от Microsoft функционал IntelliJ IDEA по навигации, рефакторнигу, автодополнению и многое другое.

– Получается, вы как коммерческий разработчик приобрели серьезный опыт «лобового столкновения интересов» с Open Source-индустрией. Кроме успешной диверсификации своего бизнеса, что, в свою очередь, породило целую плеяду интересных инструментов для альтернативной платформы, что можно сказать о дальнейшей судьбе IntelliJ IDEA?

– Как известно, все, что нас не убивает, делает нас сильнее. Спустя годы можно определенно сказать, что конкуренция с Eclipse пошла JetBrains на пользу. Благодаря этому опыту мы смогли избежать идейной стагнации, обеспечили динамичное развитие как IntelliJ IDEA, так и других продуктов, сфокусировали работу компании на разработке инструментов и технологий для разработчиков и команд в самом широком смысле. Мы по-прежнему стараемся радовать наших существующих клиентов и приятно удивлять потенциальных.

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

Это далеко не первый крупный образовательный проект компании. Так, совместно с Яндекс JetBrains создал Computer Science Center (www.compscicenter.ru), в котором сегодня учатся около 200 студентов из разных вузов страны и где готовятся специалисты с уникальным уровнем компетенции в области информационных технологий. Кроме того, компания поддерживает кафедру математических и информационных технологий Академического университета РАН (mit.spbau.ru), а также оригинальный проект Анатолия Шалыто «Сохраним в университетах лучших» (www.savethebest.ru), который заключается в прямом спонсорстве талантливых преподавателей и студентов, что позволяет им оставаться в университетах, а не гнаться за длинным рублем в коммерческой разработке. Для JetBrains стало уже традицией ежегодно тратить на финансовую поддержку чисто образовательных инициатив 1% от оборота компании.

Второе важное направление – это активная исследовательская работа, поиск новых инновационных направлений в сфере прикладного программирования. Так, компанией разрабатывается новый язык программирования Kotlin (kotlin.jetbrains.org). Это статически типизированный язык с трансляцией в JavaScript и JVM байт-код, что позволяет использовать его как в клиентской, так и серверной разработке. Отличительными особенностями языка являются совместимость с кодом на Java, более сильная типобезопасность (NullPointerException, к примеру, невозможен в программе на Kotlin), лаконичность и по сравнению с конкурентами простота для понимания и использования. Он предназначен для написания понятного и легко поддерживаемого кода в промышленных объемах.

Наравне с Kotlin стоит упомянуть и о JetBrains MPS (Meta-Programming System) –многообещающей системе метапрограммирования, которая реализует парадигму языково-ориентированного программирования. Иначе говоря, MPS одновременно является как средой разработки языков, так и выступает в роли IDE для разрабатываемых языков.

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

– После динамичной и отчасти драматической истории развития к чему вы пришли? Что представляет ваша компания сегодня? Какие принципы вы исповедуете?

– Сегодня в офисах JetBrains в Праге, Санкт-Петербурге, Москве, Мюнхене и Бостоне работают более 250 человек. Мы выпускаем 14 продуктов, пользователями которых являются около миллиона программистов по всему миру.

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

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

– Кстати, о ваших проектах. Перечислите для читателей ваши ведущие продукты, каково их предназначение?

– Самая большая группа продуктов – IDE на базе платформы IntelliJ, которая, к слову, доступна в открытых кодах под лицензией Apache:

  • собственно IntelliJ IDEA в двух версиях: IntelliJ IDEA Community Edition (бесплатная, открытая под лицензией Apache) и IntelliJ IDEA Ultimate Edition – старейший продукт компании, IDE для разработчиков под платформу Java;
  • RubyMine – IDE для разработчиков на Ruby;
  • PyCharm – IDE для разработчиков на Python;
  • PhpStorm – очень популярен на российском рынке, IDE для разработчиков на PHP;
  • WebStorm – JavaScript IDE;
  • AppCode – достаточно молодой продукт, замена Xcode от Apple, IDE для разработчиков под iOS и Mac OS X.

Следующая группа продуктов предназначена для разработчиков под платформу .NET:

  • ReSharper – плагин для MS Visual Studio. Предоставляет функционал для «умного» редактирования кода на C#, VB, XML, JavaScript, HTML, CSS, навигации и многого другого. По данным Microsoft, это самый устанавливаемый плагин для Visual Studio;
  • dotTrace – профилятор;
  • dotCover – анализатор тестового покрытия;
  • dotPeek – декомпилятор. Позволяет исследовать, как работает сторонняя библиотека, даже если исходных кодов у вас нет.

Направление инструментов для команды разработчиков, которое мы активно планируем развивать, сейчас включает в себя два продукта:

  • TeamCity – инструмент для билд-инженеров, а также организации постоянного прогона тестов;
  • YouTrack – багтрекер и одновременно инструмент планирования.

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

– Если речь идет именно о продуктовом бизнесе, а не сервисном, как аутсорсинг, то, как ни банально это ни звучит, нужно сфокусироваться на продукте, а не на бизнес-аспектах. Это должна быть замечательная идея, которая кардинальным образом улучшит жизнь большого количества людей (или хотя бы слегка улучшит жизнь, но для очень большого количества людей, как, например, gamedev). При использовании нового продукта не должно возникать ощущения, что разработчикам приходилось принимать компромиссные решения из-за недостатка времени, денег или чего-то еще, хотя, конечно же, такие решения принимать придется.

Необходимо обязательно добиться хорошей динамики развития. Тогда вокруг продукта образуется community, которое будет предлагать новые хорошие идеи, а узнав и воплотив их, вы покажете еще лучшую динамику – это цепная реакция!

Вкратце: если есть хороший продукт, действительно нужный людям, то бизнес образуется.

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

– В настройках интеграции компилятора (напомню, IntelliJ IDEA – это IDE) есть поле «Куда складывать класс-файлы?» и чекбокс «Удалять содержимое output каталога при rebuld?» Последняя функция сделана на случай, если там регулярно оказываются сторонние файлы, для чистоты пересборки с нуля. Один наш пользователь на вопрос «Куда?», не особо раздумывая, указал корневую папку диска C (как он позже сказал: «У меня других и нет, только C:».). Ну и чебокс этот полезный включил также. Катастрофические последствия, случившиеся с его системой, предсказать несложно...

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

– В чем тренды и особенности развития теперешнего софтверного бизнеса? Как кризис влияет на подобные разработки? Куда движется мировая софт-индустрия? Ваши прогнозы ее развития в ближайшем будущем?

– Давать прогнозы – неблагодарное занятие. Поэтому хочу просто поделиться наблюдением о том, что фокус разработчиков смещается от программ для бизнеса к программам для людей. Будь то социальная сеть (веб) или маленькая игрушка для iPhone (mobile), наибольший интерес вызывает софт, которым пользуются миллионы конечных потребителей. Что касается сферы бизнеса нашей компании, то программистов будет все больше и больше, и все они наши потенциальные пользователи.

Беседовал Игорь Савчук


В избранное