Можно работать на проекте и не знать, что с тобой в команде пишет код известный инженер, автор популярных книг в области технологий Microsoft и .NET Andrew Troelsen. Проект Starkey уже больше десяти лет доверяет ISsoft разработку своего enterprise-приложения. Мы попросили участника команды Starkey – .NET разработчика и Team Lead Сергея Горбабу, рассказать о проекте и работе со знаменитостью из мира .NET.
Starkey занимается разработкой и настройкой слуховых аппаратов. Девиз компании отражает всю суть культуры проекта – «Alone we can’t do much. Together, we can change the world». Помогать людям слышать также естественно, как и дышать, получается и у нашей команды разработчиков и тестировщиков. На стороне заказчика уже несколько месяцев работает и автор книг по взаимодействию Microsoft COM, ATL, .NET, C #, VB и COM & .NET Andrew Troelsen.
Сергей, расскажи, чем вы занимаетесь на проекте?
Starkey довольной большой проект, на котором мы вместе с американскими коллегами разрабатываем огромное приложение, предназначенное для настройки слуховых аппаратов. Например, если у человека есть проблемы со слухом, он приходит к специалисту и говорит о том, что хотел бы себе прибор, который позволит ему лучше слышать. Специалист заходит в Desktop приложение «Inspire», и подбирает девайс в зависимости от бюджета пациента. Затем настраивает устройство так, чтобы все параметры были максимально удобными для клиента. Мы же поддерживаем весь цикл: от подключения устройства к компьютеру, загрузки параметров девайса до оптимизации устройства и записи его параметров.
В Беларуси у нас есть множество типов устройств – слуховых аппаратов, и контроллеров. Подключаться к слуховым аппаратам можно по-разному: есть дорогие, к которым можно присоединяться посредством Bluetooth, подешевле взаимодействуют через usb. Держишь в руках несколько таких девайсов и думаешь о том, как много все они стоят, а ведь значат еще больше.
Поскольку мы взаимодействуем со Starkey с 2005 года, можно назвать его одним из «бородатых» клиентов ISsoft. Когда-то давно над ним хорошо поработали наши коллеги из ISSoft. Они занимались поддержкой и разработкой старого приложения, сейчас же наша команда занимается разработкой и тестированием новой версии этого приложения. Можно сказать, что мы пишем новое приложение, потому что учитываем новые тренды программирования, используем новую архитектуру, подходы к программированию, различные паттерны, чтобы приложение было максимально гибким, и в него можно было быстро добавлять новые девайсы, не меняя код или с минимальными изменениями в коде. Основная идея, реализовать data-driven приложение насколько это возможно.
Ты на проекте всего полгода, что нравится больше всего?
Я давно не видел такого красивого кода, как на этом проекте. Он довольно сложный, прекрасно структурированный, смотришь и глаза радуются. По комментариям к коду более-менее понимаешь суть, часто нет необходимости читать требования, чтобы понять, как это работает. В таком бизнесе – это очень удобно, чтобы человек быстрее вливался в суть проекта и понимал, как все устроено. С одной стороны порог вхождения на проект высокий, потому что нужно очень много знать, а с другой – низкий, потому что для отличного программиста код понятный, в нем легко ориентироваться. Особенно радуются те, кто пришли с проектов, где код выглядит, как каша, когда его приходится структурировать самому, чтобы прочитать. На Starkey такого нет. Круто и то, что тут настроена система билдов таким образом, что когда появляется warning в результате чьего-либо чекина, автоматически заводится таск в системе на его исправление.
Но сложно нам тоже бывает, например, когда мы делаем новые фичи, каждый раз это как вызов, который нужно решить.
Нравится еще и то, что я не чувствую разделения команды на две стороны – белорусскую и американскую. Во время общего времени мы общаемся также, как коллеги в одном офисе: постоянно пишем друг другу в messenger, созваниваемся, как только что-то нужно решить. Коммуникация хорошо налажена, благодаря этому чувствуешь единство команды.
А что за новые технологии и подходы вы используете?
Например, используем паттерны программирования, чтобы код был максимально flexible. Раньше при выходе нового девайса нужно было что-то менять в коде, это могло занять неделю разработки и два месяца тестирования, что было очень дорого. С текущим подходом добавить новый девайс – это добавить в базу данных девайс с его описанием, проверить, что он правильно работает – требуется на порядок меньше времени на всю работу. Конечно, если в девайс добавляется новая фича, тогда да, в код нужно будет ее добавлять, добавить девайс в базу данных и проверить ее работу. Но все равно это в разы быстрее чем было раньше.
Осенью у вас очередной релиз, часто перерабатываете?
Нет. Процесс построен настолько четко, что овертаймить не приходится.
Как вы поняли, что работаете с известным в кругу программистов Andrew Troelsen?
Мы узнали, что этот тот самый Andrew Troelsen, случайно. Пару месяцев назад у нас в команде появился новый человек. На daily standup звонке нам представили нового разработчика Andrew. Ну хорошо, приятно познакомиться с Andrew. А потом я обратил внимание на его контакт в мессенджере, где была фамилия и задумался: «А не тот ли это писатель, который написал книги по C# и так далее?». Оказалось, что тот бородатый Andrew – это он.
Мы, конечно, ему не говорили, что узнали его. Конечно, в первое время было прикольно наблюдать за ним на митинге уже другими глазами. У нас в команде он такой же разработчик, как и все, решает задачи наравне со всеми.
В наших кругах он довольно известный, я сам давно, когда начинал изучать C#, читал его книги. Мы попросили его подписать нам шесть книг. Их постепенно привозят коллеги из США, потому что книги очень большие и тяжелые. Уже две книги по C# читают наши сотрудники, в сентябре привезут следующую партию.
Приедет ли Andrew Troelsen на ISsoft Insights 2020?
Мы приглашали его на ISsoft Insights 2019, но у него очень большая загрузка, ведь кроме проекта он берет дни на работу с книгами и читателями. Плюс скоро у нас релиз, а Andrew в команде совсем недавно, ему много чего нужно освоить в плане знаний продукта, поэтому времени на работу требуется много. Надеемся, что он приедет в качестве гостя на ISsoft Insights 2020.