На каких проектах становятся хорошими инженерами, а на каких – менеджерами?

Руководитель команды Android-разработки в EPAM Андрей Сержантов рассказывает о двух типах проектов, о возможностях профессионального развития, а также делится своим опытом работы.

Почему ты занимаешься именно мобильной разработкой?

Она нравится мне потому, что можно написать приложение и сразу же увидеть, как оно работает на мобильном телефоне. Но я начинал свою карьеру как веб-девелопер, пока руководитель команды не уговорил меня перейти в мобильную разработку. В то время еще не было сматрфонов, и мы создавали приложения для обычных кнопочных телефонов, используя Java 2 Micro Edition.

Такой опыт дал хорошие знания в работе с многопоточностью и коллекциями, в том числе с архитектурной точки зрения. А сейчас, благодаря современным фреймворкам, уже не нужно думать о низкоуровневых вещах. Однако если ты не знаешь, как система работает изнутри, есть большая вероятность сделать то, что «свалится» через год, причем по неизвестным тебе причинам. Люди, у которых горят глаза, всегда стараются докопаться до сути. Иногда к нам приходят ребята, которым, к примеру, 25 лет, а в некоторых областях они не уступают техническому лиду. Поскольку я отвечаю за технические интервью на Android-разработку в Минске, как раз стараюсь присмотреть ребят, у которых есть потенциал. Пусть сейчас они могут допустить какие-то ошибки, но видно, что через год они вырастут на уровень выше благодаря своему любопытству и старанию.

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

Один из моих недавних проектов – создание приложения, которое по функционалу напоминает Skype for Business. Изначально общая логика была написана на JavaScript, и мы работали с такими развивающимися технологиями, как WebRTC для передачи аудио- и видеоинформации между смартфонами для организации онлайн-конференций. В нашей команде было около 10 разработчиков и 4 QA-специалистов. Работали по классическому Scrum с правильными процессами. Мы предлагали клиенту много архитектурных решений, 90 % которых он одобрил. Это и перевод архитектурной логики на Clean Architecture, и внедрение архитектурного паттерна Model-View-Presenter, который позже перешел в VIPER, и переход на Rx (реактивный подход), и плавный перевод кода с Java на Kotlin. Проект следовал лучшим мировым практикам разработки и прошел соответствующую сертификацию в нашей компании.

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

Мне неоднократно доставались проекты не лучшего качества, и постепенно, силами всей команды, их удавалось вывести в зеленую зону. Решение зависит от заказчика и цели, которую он преследует, – 1) хочет быстро получить продукт сомнительного качества и через два года, образно выражаясь, выкинуть его в мусорницу либо 2) качественное приложение, создание которого потребует больше времени и финансовых затрат. Здесь важен скоординированный подход, когда работает вся команда, включая технического лидера, который должен объяснить заказчику, во что выльется то или иное решение в будущем. Большинство заказчиков доверяет технической экспертизе команды и считается с ее рекомендациями, видит перспективу и готовы дать свободу команде, чтобы она успела создать качественное решение.

Над чем ты работаешь сейчас?

Пока занимаюсь Research and Development-активностями – пресейлами, изучением различных библиотек, архитектурными подходами и сервисами в области мобильной разработки. Цель – нарастить экспертизу в сфере интеграции с крупными сервисами, так как облачные вычисления только начинают набирать силу. Пресейлы включают митинги с заказчиками, изучение разных технологий, оценку проектов и создание прототипов. Работы действительно очень много. Такой опыт учит видеть проблемы, которые ты как инженер раньше просто не замечал.

Скоро стартует интересный проект, на котором я буду собирать команду вокруг себя. Клиент – австралийская компания-производитель имплантов для слабослышащих людей. Они вживляются в ухо и «подключаются» к нерву, благодаря чему человек имеет возможность слышать и жить полноценной жизнью.

Продукт, над которым мы будем работать, – мобильное приложение для настройки индивидуальных параметров саунд-процессора, который примагничивается к ушному импланту. Приложение соединяется с саунд-процессором через Bluetooth. С помощью этого продукта доктор настраивает слуховой саунд-процессор для пациента. Или же человек сам может отрегулировать некоторые параметры, чтобы сделать звук максимально комфортным – например, находясь в метро, отсечь шумы и хорошо слышать собеседника. И хотя само приложение не такое уж сложное, оно должно быть хорошо защищенным от «падений» и хакерских атак. Поэтому разработка будет чередоваться с многоуровневым тестированием. Им занимается собственный QA-отдел заказчика. Приложение уже написано на iOS, и мы будем разрабатывать его на Android. Меня очень вдохновляет, когда я создаю не просто измеритель пульса, а продукт, который поможет улучшить уровень жизни человека. Только представьте – родился ребенок с нарушением слуха, и от качества импланта и его настройки зависит, научится ли он говорить и какой будет его жизнь. Ответственность мотивирует – вот почему мне нравится направление Healthcare.

Какой ты видишь свою дальнейшую карьеру в компании?

Поскольку любой проект начинается с Solution Architecture, мне интересно развиваться в этом направлении. Стараюсь следить за тем, что происходит в Mobile-домене – быть в курсе новых практик и архитектур. Вижу себя как специалиста, который делает скелет приложения, а с ним уже в дальнейшем работает команда. Было полезно поучаствовать в Mobile Architecture School в EPAM, чтобы посмотреть, чем занимаются Solution Architects и повысить свой уровень знаний в этой сфере, так как архитектура охватывает и Cloud, и back-end, и другие домены. Если заниматься мобильной разработкой, все время нужно держать ухо востро и следить за новинками, чтобы не выпасть из этой сферы.