🔥

Тред (Андрей Берюхов)


Начнем с различий в типах команд разработки: 1- и кросс- платформенных/функциональных. Насколько интересно для вас сравнение опыта в таких командах и работали ли вы в обоих типах?
🤔 41.2% Интересно - работал
🤔 17.6% Не интересно - работал
🤔 29.4% Интересно- только в одной
🤔 11.8% Не интересно - только в 1

Большинство голосует за "интересно" - продолжаем 😎 Мне удалось поработать и в той и другой. Интерес к новому для меня формату стал одной из основных причин подтолкнувших к переходу между компаниями.

Начнем с 1-платформенных. Больше 4 лет я проработал в одной команде разработки Кaspersky Intеrnet Sеcurity 4 Andrоid. И попал в неё совсем случайно стажёром-тестировщиком (но не про это сейчас). Постепенно перешел в стажёры-девелоперы, а затем уже вверх по лестнице.

В моём опыте 1-платформенная команда (одного продукта), это когда примерно 6-10 Android-разработчиков, 5 тестировщиков, PM и пара аналитиков делают один продукт под одну платформу.

Конкретно в Лаборатории эта команда входила в большую единицу - Мобильный департамент, где разрабатывают другие приложения под Android, iOS и не только.

Фронт работ в этом департаменте в основном ограничен клиентской разработкой под мобилки. Backend, frontend, десктопные продукты - это отдельные команды, в другом здании.

Даже до Covid было минимальное количество пересечений с ребятами из других функций, а уж тем более понимания, как они работают. А контракты API приходили к нам обернутыми в C++ библиотеку из третьих команд.

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

Если резюмировать, плюсы работы в Android-only команде: Глубокое понимание платформы Хорошая возможность для роста - множество коллег одного профиля работают рядом и помогают 2а) В моем случае вообще повезло - т.к. тимлидом был сам @e_matsyuk

Как сейчас - в кросс-функциональной команде: 1-Android, 1-iOS, 1-2 - Web, 1-3 - Back, 2 - аналитики, 1 - product manager. И все эти люди придумывают и разрабатывают примерно одинаковые части для одной фичи - авторизации.

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

Теперь к минусам кросс-функциональных команд. В команде я - один разработчик под Android. Чтобы что-то спросить/узнать - нужно идти в другие команды или на встречи Android Community. Это может быть не очень комфортным на ранних этапах карьеры.

(продолжение минусов кросс-ф.) 2) Зона ответственности ограничивается одной функциональной областью - версткой и логикой в ней. Чтобы узнать что-то больше, нужно идти "помогать" в платформенные команды (для погружения) или брать задачи других продуктовых команд (смена домена).

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

(продолжение плюсов кросс-ф.) 3) Можно сходить посмотреть, как то же самое сделано у других клиентов (iOS, web), перенять какие-то подходы. 4) Можно задуматься о реюзе кода с клиентами. 5) Легче начать t-shape / отдохнуть от своей платформы.

Андрей БерюховАндрей Берюхов