В преддверии Joker 2016 продолжаем серию текстов о тех компаниях, в жизни которых Java-разработка точно играет большую роль: спонсорах Joker. В Luxoft нам ответили на очень разные вопросы — от того, какие Java-технологии используют чаще всего, до того, почему предубеждения по поводу аутсорс-разработки неверны.
Нашими собеседниками стали:
- Олег Золотых, управляющий директор Luxoft Russia
- Михаил Дружинин, архитектор и лидер архитектурного комьюнити (а также спикер HolyJS 2016)
- Максим Сячин, Java-разработчик (а также спикер Joker 2016)
- Анастасия Тихомирова, специалист по маркетингу
Олег Золотых
— Что даёт вам участие в конференции?
— Для сотрудников Luxoft как зрителей это возможность познакомиться с актуальными тенденциями в этой сфере, возникающими проблемами, экспериментами, положительным и отрицательным опытом (что, естественно, позволит учесть этот опыт в своих проектах, лучше оценить перспективность тех или иных решений, избежать возможных ошибок).
А для компании это:
- возможность продемонстрировать свою экспертизу в Java и других технологиях IT-стека, активную позицию и проектное развитие, что должно способствовать привлечению новых заказчиков.
- возможность вынести важные текущие технологические вопросы на обсуждение с экспертами мирового уровня.
- возможность наладить формальные/неформальные контакты, и, возможно, кого-то из известных профессионалов привлечь к своим проектам, пригласить работать в Центр Обучения.
— Какие у вас сейчас есть интересные проекты на Java?
— Их множество, вот буквально пара примеров:
- реализация микросервисов на платформе Apache Servicemix
- ряд интеграционных проектов, обеспечивающих обмен данными между разнородными системами (например, SAP, Oracle, удалённые Web-сервисы)
- система расчёта рисков для торговых площадок, реализующая многопоточные распределённые вычисления
— Какие технологии вы чаще используете в случае с Java?
— Всего не перечислить… Платформы — JEE/Weblogic, Tomcat, Oracle EBS, SAP, Apache ServiceMix (OSGI), Hadoop.
Для разработки традиционных бизнес-приложений в основном Spring*, Hibernate, MyBatis, Webservices (CXF), GWT, Camel, Velocity, JUnit, Mockito…
— Luxoft занимается софтом в очень разных областях — от финансовых сервисов до автомобилей. В каких Java вам хорошо подходит?
— Можно с большой долей уверенности сказать, что если софт должен разворачиваться на платформе, имеющей возможность установки JVM, то имеет большой смысл рассматривать Java как средство реализации этого софта. Есть, конечно, ряд областей, где не имеется возможности или смысла применять Java для разработки софта: firmware для чипов, какие-то старые среды, ориентированные на функциональное программирование.
Михаил Дружинин
— Михаил, вас знают как специалиста по Java, но при этом вы выступали у нас не на Java-конференциях, а на HolyJS с докладом про порталы на JavaScript. Как это вышло?
— На самом деле, это ожидаемо. Я архитектор, а это автоматически означает необходимость контактировать с разными технологиями. Без JavaScript сейчас сделать какой-либо красивый UI практически нельзя, так что это «необходимое» знание. А то, что до сих пор не выступал на Java-конференциях, скорее случайность: я живу в Нью-Йорке, и получилось так, что я был в России, когда проходила HolyJS. В следующем году планирую приехать на JPoint.
— Про Нью-Йорк хочется уточнить: ваш переезд туда произошёл как релокация при работе в Luxoft?
— Да. Коммуникация — одно из самый больших накладных расходов для разработки, и всегда нужны люди, которые взаимодействуют с заказчиком напрямую. Конечно, можно поговорить по телефону, но обсудить вживую и, например, нарисовать несколько вариантов на доске ускоряет и улучшает процесс в разы. Запуск и выполнение проекта проходят лучше и безболезненнее для всех. Поэтому Luxoft достаточно часто перевозит людей к заказчику. Вот для старта достаточно сложного и крупного проекта я и переехал в Нью-Йорк.
— В недавнем интервью нам Владимир Красильщик упоминал, что в Luxoft участвовал в возглавляемом вами Architecture Community — что это именно?
— Да, Красильщик даже на аватарке в футболке ArchComm. Это комьюнити внутри компании, в котором обсуждаются последние тренды в мире разработки, люди делятся своим опытом и решениями из различных проектов. Вот сейчас, например, у нас прошла встреча про тестирование REST API.
У этого сообщества две цели. Во-первых это возможность для ребят, которым интересно поделиться своим опытом или новыми наработками, сделать это и получить критику от своих коллег. А во-вторых, это инструмент для решения сложных технических вопросов, которые конкретная команда не может решить здесь и сейчас. И разработчики, и менеджеры обращаются с достаточно разнообразными вопросами: от настройки конкретного инструмента до архитектурных решений. В Luxoft делается достаточно много разных вещей в плане разработки. Поэтому часто случается так, что вопрос, который ты сейчас решаешь, уже кто-то делал до тебя, и можно избежать ошибок, по которым уже проходили.
— Ваш коллега Максим на Joker будет рассказывать про микросервисы — а вы сами как архитектор как относитесь к этому тренду и насколько активно применяете их в Luxoft?
— Я всегда за подход, при котором каждый элемент системы выполняет конкретно свою работу, поэтому тренд считаю положительным. Но микросервисы, как и всё остальное, надо уметь готовить. Много вопросов, без грамотного решения которых разработчики получают даже, наверно больше проблем, чем без микросервисов: как распределить обязанности между сервисами, как разворачивать сервисы, что делать при ошибках и как мониторить состояние сервиса — всё это важно.
Да и сам подход как таковой далеко не новый по сути. Мы делали гранулярные сервисы ещё до того, как это стало «мейнстримом». Но раньше каждый делал это по-своему и, как правило, сам, а сейчас уже появляется всё больше инструментов, которые помогают с этим процессом.
— У части разработчиков есть предубеждение по отношению к аутсорс-разработке: мол, пока в стартапе можно менять мир и делать уникальные вещи, в аутсорсе унылый штампованный конвейер. Вам есть что на это ответить?
— Да, есть предубеждение. Я считаю, что всё зависит от тебя самого. Если ты хочешь, чтобы в разработке было интересно и мир играл красками — предлагай, делай и не жди, пока кто-то сделает это за тебя.
Достаточно редко люди отказывают, когда предложение имеет смысл и улучшает конечный результат. Вот когда приходят с идеями сделать что-то только ради того, чтобы попробовать новую технологию, либо просто не понимают, кому движения сделают лучше — тогда и случаются отказы.
Конечно, всегда есть ограничения: по времени, по инструментам, которые доступны, по решениям, которые ты можешь применить. Они вызваны объективной реальностью, и с ней глупо бороться. Но мой опыт такой: мы во всех проектах делали именно то, что считали нужным для проекта, что хорошо и заказчику, и разработчику.
Да, для этого нужно уметь грамотно объяснить заказчику (или коллегам), почему нужно делать так, как ты предлагаешь. Но такая проблема есть во всех проектах вне зависимости от того, аутсорс это, продуктовая разработка или стартап.
У тебя всегда есть заказчик, всегда есть люди, с которыми ты взаимодействуешь, и всегда есть ограничения. У них могут быть разные имена и разные причины, но от них никуда не уйти. Я работал в очень разных компаниях и проектах, но концептуально ничего не меняется от формы.
Кроме того, не все клиенты Luxoft — это крупный энтерпрайз вроде банков. В части случаев разработку заказывают люди с идеей для стартапа. Компания в этом случае занимается всем от понимания того, что вообще требуется сделать, до тестирования и вывода в жизнь. Это ничем не отличается от работы в стартапе, потому что это она и есть.
В наших проектах мы всегда стараемся сделать так, чтобы команда разработки принимала участие во всех проектных решениях. Но тут есть обратная сторона медали: свобода выбора предполагает ответственность за этот выбор. А, к сожалению, не все готовы принимать эту ответственность. Если разработчики говорят такие фразы, как «нам не дали полные требования», «пусть Х определят, как мы будем делать» и т.п., то перекладывают ответственность (в том числе за технические решения) на кого-то другого. А после этого удивляются, почему никто не слушает команду и навязывает им решения. В таком случае, да, любой проект можно быстро превратить в штамповочный конвейер.
Поэтому, если ты понимаешь цели проекта, не боишься принимать и продвигать свои решения, тебе будет комфортно в любом проекте.
Максим Сячин
— О чём вы будете рассказывать на Joker?
— Я расскажу о том, как мы решили делать микросервисы в нашем проекте и что из этого вышло. Мой доклад будет в рамках Student Edition, так что он ориентирован на студентов, и я хочу разобрать там именно те моменты, которые будут интересны им.
— У Luxoft крупные клиенты — работать приходится как раз над крупными проектами, которые стоит разбивать на микросервисы, или небольших тоже много?
— Размер проекта — это лишь один из факторов, определяющих целесообразность выбора микросервисов. Существуют более важные нефункциональные требования, которые могут склонить чашу весов в сторону этой архитектуры. Но вообще, мне кажется, в Luxoft достаточно много проектов, которым микросервисы хорошо подходят.
— Кто обычно определяет, использовать в конкретном сервисе микросервисы или монолит — непосредственно вы или заказчик проекта?
— Это целиком и полностью задача архитектора, который может быть как со стороны заказчика, так и со стороны исполнителя. Решение об использовании микросервисов должен принимать человек, который действительно способен корректно оценить преимущества и недостатки этой архитектуры на фоне существующих нефункциональных требований. Кроме того, нельзя забывать о вычислительных ресурсах.
— Сочетается ли ваша любовь к языку Kotlin и другим «новинкам» с разработкой на заказ — используете их в продакшене, или для души?
— Если удаётся найти задачу, которую можно протащить на одной из «неведомых зверушек» — стараюсь использовать. На текущий момент существует одна небольшая программа, используемая для редкой обработки данных. На Kotlin же сейчас я пишу вне рабочего места — отдыхаю от Java и её многословности.
Анастасия Тихомирова
— Для того, чтобы заявить о себе, Luxoft использует разные каналы — например, на Хабре публиковал «шпаргалку Java-программиста». Какие преимущества есть у конференций?
— Участие в конференции — это возможность не просто лишний раз рассказать о себе, а именно продемонстрировать экспертизу компании: помимо выступающих спикеров, мы всегда берём к себе на стенд экспертов из наших проектов, которые готовы рассказать о своём личном опыте в Luxoft, о технологиях, которые используются в проектах. Ведь среди разработчиков наша компания и так достаточно известна, а вот, что именно у нас есть интересного, знают далеко не все, поэтому на конференциях мы всегда рады рассказать про то, что мы делаем.
— Если кто-то на конференции интересуется возможностью работать в Luxoft, речь обычно об офисе в городе проведения конференции, или и других городах?
— Luxoft — это международная компания, что, конечно, является достаточно привлекательным моментом для многих, поэтому на конференциях всегда интересуются не только локальным офисом, где проходит мероприятие, но и возможностями работы в других странах. К счастью, нам есть, что предложить :)
— Какую роль у вас играет петербургский офис, какие там проекты/процессы?
— В нашем петербургском офисе представлены проекты практически всех линеек бизнеса компании. Например, именно здесь сидят наши R&D и Innovations Lab команды, которые занимаются разработкой наших собственных продуктов. На данный момент в Санкт-Петербурге у нас работают уже более 700 человек, и мы не собираемся останавливаться на достигнутом, команды постоянно растут. Ну, и кроме того, петербургский офис считается одним из самых классных наших офисов, чем мы, несомненно, гордимся.
— Можете ли вы отследить реакцию зрителей на конкретный доклад вашего спикера? Бывает ли такое, что вам говорят «Увидел такой-то доклад вашего спикера и сразу захотел у вас работать»?
— Действительно бывали случаи, когда люди после доклада подходили к нашему спикеру лично и говорили: «Вау! Хочу с вами работать!», но, конечно, невозможно отследить количество людей, нанятых именно после определённого доклада. Безусловно, есть люди, которые приходят к нам работать после посещения конференции, но скорее всего, к этому ведёт совокупность различных факторов, а не влияние конкретного доклада.
Будем ждать на Joker 2016 доклад Максима о микросервисах, а пока что вспомним доклады спикеров от Luxoft на новосибирской JBreak:
А также на HolyJS:
Автор: JUG.ru Group