Прокачиваем hard и soft skills: опыт мобильных разработчиков компании

# Из нашей практики
Январь 2022 г
SimbirSoftMobile

Согласно данным аналитической компании Sensor Tower, по итогам 2020 года расходы пользователей мобильных приложений выросли на 30,2% и достигли $111 млрд. При этом общее число установок с App Store и Google Play превысило 143 млрд. С наступлением пандемии и массовым выходом в онлайн бизнес еще отчетливее стал осознавать, что нужно вкладывать в мобильные приложения. А хорошее приложение – это сложная архитектура, скрупулезное проектирование и интенсивная работа над юзабилити. Поэтому профессиональные разработчики востребованы, и в мобильном направлении сегодня наблюдается качественный рост. К тому же у специалистов есть несколько вариантов для развития карьеры.

В этом материале мы на основе личного опыта мобильных разработчиков SimbirSoft расскажем о трех направлениях роста и о навыках, которые нужно развить, чтобы добиться успехов в профессии.

Путь № 1 – развивать управленческие навыки

Итак, первый вариант роста мобильного разработчика – стать управленцем: от тимлида до руководителя отдела или ИТ-директора.

Тимлид (Team Lead) организует процесс работы команды на проекте, делегирует коллегам задачи, проводит code review, а в некоторых ситуациях еще и активно взаимодействует с заказчиком. Эта роль подойдет тем, кто готов нести ответственность за команду. Подробнее о задачах и скилах тимлида можете прочитать в другой нашей статье.

Рассказываем историю iOS-разработчика Марины, которая пару месяцев назад стала руководителем отдела мобильной разработки в питерском офисе SimbirSoft. За 5 лет работы в компании она уходила в глубокое развитие своих hard skills как iOS-разработчика, попробовала себя в пресейле, менторстве, тимлидстве. В итоге поняла, что ей интересно работать, взаимодействуя с людьми: коллегами, клиентами, стажерами.

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

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

Путь № 2 – технологический рост в сторону углубления хардскилов

Профессиональное развитие мобильного разработчика может проявляться в новых и более глубоких знаниях и навыках. Поэтому второе направление роста в профессии – стать сеньором, фулстек-разработчиком и архитектором.

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

Еще один вариант технологического роста – стать fullstack-разработчиком который может сделать и backend, и frontend-части мобильного приложения. Вершиной этого пути является роль ИТ-архитектора. Чтобы её достичь, разработчику нужно иметь широкий технический кругозор и большой опыт практического применения различных технологий на проектах. Кроме этого, в своей работе архитектор должен уметь проектировать архитектуру будущего приложения и учитывать множество различных факторов и рисков.

По пути углубления хардскилов пошел Android- и Flutter-разработчик Андрей. Развить профессиональные навыки ему помогло менторство и практика на проектах.

«Когда я несколько лет назад пришел в компанию, за мной закрепили ментора. Он здорово помогал тем, что делился со мной опытом и ставил задачи. Тогда у нас не было единой инструкции для новичков, где можно узнать порядок обучения и работы на проектах. А нам был очень нужен такой гайд, чтобы было проще погружать сотрудников в процессы, и мы сами начали его составлять. Расписали теорию и практику по iOS, Android и Flutter, который тогда еще только начинал набирать популярность. Имея единые программы, менторам стало проще оценивать знания своих подопечных. Сейчас у каждого направления есть такая программа и общий welcome book, который описывает процессы обучения, работы на проектах, NDA и прочее», – делится своими воспоминаниями Андрей.

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

Путь № 3 – развитие за счет получения нового опыта в смежных направлениях

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

iOS-разработчик Вячеслав решил прокачать свои профессиональные навыки в оценке ИТ-проектов, в том числе для иностранных компаний, и в качестве дополнительной оплачиваемой активности на протяжении уже четырех лет подключается к работе службы пресейлинга SimbirSoft.

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

«В пресейлинге я научился слушать и анализировать требования клиентов в реальном времени. А главное – предлагать решения по разработке или улучшению ИТ-продукта в рамках актуального технологического стека, а также нести за них ответственность. Еще один навык, который удалось прокачать, – умение четко и понятно доносить свои мысли, объяснять суть конкретного решения не только с использованием технологических терминов, но и абсолютно технически неподкованному человеку. А опыт общения с иностранными клиентами помог усовершенствовать мой уровень владения английским языком», – рассказывает Вячеслав.

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

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

Что учить мобильному разработчику: советы наших коллег

Самообучение – неотъемлемая часть жизни мобильного разработчика. В SimbirSoft для этого активно применяют менторство, код-ревью, welcome book’и, преподавание на курсах внутри компании. Мы поддерживаем изучение новых технологий на внутренних и pet-проектах, а также регулярно обмениваемся опытом с коллегами. Кстати, наставничество оказывается эффективным не только для подопечного, но и для самого ментора. Недаром говорят, что лучший способ закрепить знания – объяснить другому.

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

Независимо от направления разработчику важно изучать:

  • типичные случаи применения шаблонов, достоинства и недостатки каждого шаблона,
  • SDK соответствующей технологии,
  • худшие, лучшие и средние оценки времени выполнения алгоритмов.

Советы о том, какие навыки еще развивать с учетом направления мобильной разработки, аккумулировали в таблицу:


iOS

Android 

Flutter 

    · Продвинутая работа с асинхронным кодом: примитивы синхронизации, NSOperationQueue

    · Углубленное изучение фреймворков

    · Умение создавать кастомные компоненты с кастомной отрисовкой контента (например, графики, диаграммы)

    · Знание многопоточности Java и Kotlin, способов фоновой работы в Android

    · Знание внутреннего устройства стандартных  и потокобезопасных коллекций

    · Знание решений, предлагаемых Google Play Services (Maps, Ads, SMS Receiver и др.), Firebase

    · Добавление Flutter activity/fragment в Android-приложение, Flutter ViewController в iOS-приложение

    · Интеграция нативных view во Flutter-приложении

    · Понимание архитектуры Flutter и анимаций (Scheduler, Ticker и его отличия от Timer, TickerProvider)


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