Артём Грачёв

Артём Грачёв

Неделя
Nov 2, 2020 → Nov 8, 2020
Темы

Архив недели @Timur0vic

Понедельник


Всем привет! Я автор новой недели и меня зовут Артём. Работаю руководителем направления android (он же TeamLead) в банке Совкомбанк.

а вот какой вид у нас из офиса)
notion image

Предвижу сообщения о Совкомбанк. Расшифровывается это как современный коммерческий банк)

План недели: ПН: про работу в банке ВТ: собеседования, мотивация, бизнес и деньги СР: про проекты. О том о чём обычно не говорят. ЧТ: тенденции и развитие разработки. ПТ: расскажу про разработку в продуктовой и не продуктовой компании. СБ/ВС: день свободных обсуждений.

Сначала немного о себе. Android разработкой я заинтересовался в 2012, в тот момент я работал web-разработчиком в маркетинговой компании. Купил книгу "Android за 24 часа" и начал её штудировать.
notion image

В конце года я пошёл на курсы от "Школы программирования", сейчас это одна из крупнейших компаний онлайн образования в России geekbrains.ru.
notion image

В итоге в сентябре 2013 я уволился из маркетинговой компании и в ноябре уже работал в @ParagonSoftwareGroup junior android разработчиком. Славное время езды от 1.5 до 2 часов в Долгопрудный и обратно)

в Paragon я успел поработать с проектом для немецкого интернет магазина Pearl.de, делал электронный учебник для школ, прикоснулся к Paragon Handy Safe Pro и конечно к словарям Slovoed
notion image

Есть, кстати, забавный факт - про меня почти месяц не вспоминали)) Меня поставили потрогать проект Handy Safe Pro, на тот момент замороженного. После него меня перевели на словари, но узнал я об этом примерно через 2-3 недели)

в компании, за 2 месяца до ухода, я успел попробовать себя на бэкенде, потрогал spring, но мне не зашло)

В 2016 году я перешел в компанию Такском. Там я познакомился с kanban и ежедневными stand-up. Нас было 3 человека (2 Android и 1 iOS) и мы начинали мобильную команду разработки. Примечательно, что к тому моменту уже было одно android приложение.

Кстати, как вы пишете android по-русский?

Кстати, оба моих коллег уехали работать в Эстонию.

Печально осознавать, что сейчас уже команды мобильной разработки android, как и iOS больше нет.

За время работы в компании я принимал участие в 8 проектах из 9. Самое интересный для меня был Такском PhotoGuard, с использованием стеганографии.

Вот мы и подбираемся к моей текущей работе, банку Совкомбанк. Честно говоря, никогда не стремился в банк. Попал я в него совершенно случайно, а точнее это было совокупность факторов. Думаю об этом мы поговорим в другой день.

Понедельник. Работа в банке. Банк это не продуктовая компания и это влияет на процессы очень сильно. Хотя современный банк должен быть более технологичным, чем банк в основном нашем понимании.

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

Много банков имеет некую техническую часть бизнеса. Пример: СберТех, Альфа-Лаборатория и т.п.

Есть банки, которые вывозят своими силами или просто покупают компанию, которая делает для них продукт.

Конкретно наше приложение "Совкомбанк-Халва" является главным приложением банка. Команда сформировалась из команды Ubank. И это дает большую разницу работы внутри команды.

Банк - множество разных продуктов, таких как вклады, карты, кредиты и т.п. Развитием разных продуктов могут заниматься разные отделы и совершенно разные люди. В каждом банке также есть отдел безопастности (ИБ), который так же выдвигает свои требования к приложению.

Обычно наши PM знают, что будет в ближайшие 2-3 месяца. Соответственно мы все готовимся к фичам, которые будут выпускаться. Но всегда есть "бизнес", который может приоритизировать ваш бэклог) Т.к. мы частый банк, приоритизировать нас может директора банка.

Забыл поставить кавычки, под директорами я имел ввиду топов банка. Например, если нам нужно сфокусироваться на определенной тематике.

Конечно же каждый выпуск мы согласуем с ИБ

Бывает, когда к нам приходит ИБ и говорит: "Нам нужно добавить обязательное шифрование этого запроса по такому-то алгоритму"

Из-за ограничений безопасности мы не можем использовать любые готовые библиотеки, все библиотеки должны быть согласованы. Тут конечно без абсурда, никто тебе не запретит юзать LiveData или Dagger. Но если ты захочешь затащить сомнительную любу, будут вопросы о необходимости

Не мало важно еще в каком банке ты работаешь. Множество банков жутко не поворотливы, в частных банках по проще)

Это всё конечно не совсем то, что вы ожидали. Продолжу о том, как мы работаем

На момент моего прихода в компанию мы придерживались 2х недельных спринтов. Нас было 4 человека. Сейчас же мы бурно растем и придерживаемся уже месячного спринта, итогом каждого спринта является новая версия приложения.

В связи с большим временным отрезком мы проводим 3 митинга: - первый на обсуждение спринта - второй на поддержание спринта - перед окончанием спринта

Вторник


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

Фронт-"лицо" проекта, внутри у нас несколько уровней "подсистем". Фронт-бэк, в обычном понимании тут не работает. С упрощением это выглядит так: Фронт-бэк-подсистема, обеспечивающая работу других "источников"-подсистема, работающая с открытым api-закрытая часть данных.

Интересное наблюдение-нигде не встречал каноничных применений методологий. В основном конечно компании придерживаются, но всегда с какими-то нюансами. Сам я сторонник того, что отталкиваться мы должны не от методологии, а от задач. У вас чистый Agile?

В команде android мы придерживаемся общих правил работы и рекомендаций. Например: - код стайл - работа с репозиторием - построение навигации в проекте и т.п.

Приведу пару примеров: нейминг и стандартную работу с источниками данных
notion image

В рамках разработки приложения мы сталкиваемся с разными не стандартными кейсами и когда видно тенденция подходов предложения заводятся в confluence, где каждый участник команды высказывает свои мысли по предложенным идеям. Кстати, как у вас выстроен данный процесс?

Дублирую План недели: ПН: про работу в банке ВТ: собеседования, мотивация, бизнес и деньги СР: про проекты. О том о чём обычно не говорят. ЧТ: тенденции и развитие разработки. ПТ: расскажу про разработку в продуктовой и не продуктовой компании. СБ/ВС: день свободных обсуждений.

Понедельник плавно перешел во вторник. Предлагаю недосказанность рассказать в выходные. Вы только накидайте что вам интересно.

Вторник Поговорим про собеседования, мотивацию работы, затронем вопросы денег.

Это полностью описывает как я провожу собеседования в текущих реалиях
notion image

Собеседование это моя прямая обязанность. Собеседовать я начал в 2017 году, когда впервые примерил должность и.о. тимлида. Тогда я составлял список вопросов своих + из интернета. Гуглил что спрашивают в крупных компаниях и если мне казалось это полезным переписывал себе в листок)

Исходил я из того, что нужно обязательно знать те технологии, которые мы применяем и конечно знать, а лучше уметь что-то модное, например dagger

Например один из вопросов был выглядит так: Лист с нарисованным экраном, где есть TextView, EditText и Button. - Напиши как бы ты реализовал этот экран с применением MVP. Тут для меня важно было понимает ли он как это работает в MVP. Сам код не имел значения

С того момента я пересмотрел пару раз как нужно вести собеседование и что следует спрашивать

Пока я пришел к тому, что оцениваю знания по андроиду (тут зависит от уровня соискателя) знания фреймворков, используемые у нас (если опыта работы с ними нет, то тут появляются вопрос, как "Как бы ты это реализовал" и "Как по-твоему он работает") впечатление от человека

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

По фреймворка идеальное попадание это знание и умение работать с нашим стеком. Опять же нет никаких проблем, если соискатель имеет представление о нем и о его работе. Например: Научиться использовать RxJava/Корутинами, если ты понимаешь как работать с потоками - вопрос времени

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

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

Часто бывает когда тебе не хватает совсем немного от кандидата и тогда ты предлагаешь ему тестовое. Согласен с тем, что тестовое это спорное решение, тем более что за него не платят. У вас платят за тестовое задание?

Несколько хороших кандидатов из-за этого к нам не пришли. К сожалению они так же не имели что-нибудь в GitHub/gitlab и т.п.

Но есть и другой пример. К нам пришел кандидат, с таким GitHub аккаунтом, что у меня вопросов никаких не оставалось. Собеседование прошло на ура, плюс было очень приятное впечатление от общения. В общем одни плюсы, если не одно но. Кандидат ушёл в другую компанию)

Но мы его вернули, после 3 или 4 месяцев работы у них)

Это не ради рекламы, я считаю действительно интересным материал от кандидата, которого мы в переманили. link.medium.com/hEbjHftAi0

Плавно хочу перейти к мотивации в работе. Это всё взаимосвязано. Если у тебя есть мотивация устроится, скажем, в google ты будешь проходить все этапы и готовится к этому на протяжении долгого времени. Но мы не google по этому мотивации тут другие)

Какие способы мотивации выбора компании есть? Бренд компании. Ты слышишь про них почти на каждой конференции и просто мечтаешь соприкоснуться с этим. На вскидку: epam, тинькофф, яндекс. (Выбор компаний был рандомный)

Техзвезды/Лидеры мнений. Обычно они +- на каждой конференции выступают и они двигают нашу сферу вперед. Создают куча полезностей: библиотеки, конференции, академии. С такими всегда хочется поработать. Тут я не буду приводить примеров, мы все их знаем))

Деньги+социалочка (часть 1). Некоторые компании пытаются заманить деньгами и плюшками Мне кажется тут что-то не так. Возможно большая текучка или малопривлекательная работа. Тут я тоже не буду приводить примеров

Деньги+социалочка (часть 2). Стартапы. Быстрый способ набрать квалифицированные кадры, но как по мне из-за скорости выбор кандидатов может страдать.

Деньги+социалочка (часть 3). Действительно крупные игроки на рынке, которые не только технологии продвигают, но и работают с правильными процессами. Такие могут позволить себе дорогих и хороших спецов, т.к. прибыль от них выше, чем расходы.

Проект. Компании делают/собираются делать классный продукт. Так же возможно раньше этот продукт делала какая-нибудь удаленная компания и теперь они хотят перенести разработку во внутрь. В таких есть шанс реализовать себя или же погрязнуть в реализации/переписывании продукта.

Есть ли всё вместе - наверняка. Должно быть где множество сочетается. Например: у компании интересный проект и предлагают достаточное количество денег.

Хочу обсудить мотивацию работы в компании. Что вас мотивирует работать в своей компании?

Твиттер предлагает только 4 варианта, этого я не учёл) Что для вас не так важно для работы в компании

Лично для меня, важен проект. Я вкладываю сюда и самореализацию и интересный проект. Так же можно отнести перспективы.

Среда


Пришел к такой идее, что зп это слабая мотивация для работы. Если ты отличный спец - свои деньги заработаешь. Не в текущей компании, так в следующей.

Последние 2 дня пишу довольно холиварные мысли и вот еще одна. Я не понимаю людей, которые приходят на работу и "отбывают" рабочее время. Условно: в 17:55 собираются и в 18:00 их уже нет. Продолжу мысль в следующем посте. Встречали таких коллег?

wlb это прекрасно. Сам грешу переработкой. Но тут я пишу немного о другом. К сожалению, есть люди, которые заинтересованы только в закрытии своей таски/двух. Развитие/улучшение проекта это не для них.

Вижу, что я не достаточно правильно выразился. Такие разработчики не заинтересованы в развитии продукта или в его улучшении. Именно это я имел ввиду)

Очень интересно узнать ваше мнение. При третьем варианте напишите, пожалуйста в ответе на твит. Если вы увидите что можно улучшить в проекте, как вы поступите?

Я хочу вам всем пожелать, чтобы у вас не было проблем с wlb и процессами в работе. Продолжение обсуждения можно перенести на выходные) Честно говоря я не ожидал такой активности от себя.

Добрый день! Сегодня затронем тему проектов. А именно проектов вне работы.

В наших кругах много говорят про пользу pet проектов. Это классно, если у вас есть такой проект и он развивается. У вас есть pet project?

Бывают ли у вас проекты на стороне? Сюда отнесем все проекты, в которых вы являетесь только исполнителем.

У меня в архивах есть пару pet project. Некоторые уже морально устарели. Идеи некоторых были в своё время правильными, но не хватило упорства или знаний, иногда специалистов других сфер. Некоторые просто утратили мой интерес. Это главная моя проблема. Как вы боритесь с этим?

Четверг


Обычно не принято говорить о не доделанных или провальных проектов, особенно если это проект со стороны. Считаю, что большинство таких дает бесценный опыт. У меня таких проектов 2. Один не доделан до конца из-за заморозки. Второй я считаю провальным, т.к. не сделан он из-за меня.

Первый это проект для медицинского центра. Довольно интересная идея, компания занималась (занимается) проведением медосмотров. Второй это приложение для пар. Мне очень понравилась идея, я был готов за небольшие деньги сделать приложение. Был ли у вас такой негативный опыт?

Любой опыт, даже негативный это опыт. Меня это научило правильнее работать с ТЗ и подводными камнями. Ну и проектов я больше не беру, потому как work-life balance тоже нужно стараться соблюдать. Желаю вам всем больше позитивного опыта работы и отличного настроения после выходного

Четверг. Сегодня поговорим про тенденции и развитие разработки. Помнится как несколько лет назад многие скептически относились к Kotlin, который может заменить Java. Как же всё поменялось) Каком языком вы пользуетесь на работе?

Помнится была волна слухов, что на замену Android в РФ придет Sailfish OS. Tizen, Sailfish, Android и теперь еще HarmonyOS. Всё это разнообразие имеет тенденцию. По идее если вы планируете охватить максимальное количество пользователей - вам необходимо всё это поддерживать.

Сейчас для мобильного разработчика выбор очень богат: - Kotlin - Swift - Java - Objective C - Dart - Прочие ЯП, такие как c, c++, js, delphi и даже 1С (список не полный)

Бизнес давно хочет найти универсальное решение для кроссплатформенной разработки. Мне самому не очень нравиться такой подход, возможно Kotlin Multiplatform изменит моё мнение. Как вы относитесь к кроссплатформенной разработке?

Пятница


Так как я представляю банковскую сферу, тенденции я буду писать в основном с уклоном на эту сферу. Вот куда уже идёт финтех: - банки уходят в it сектор - голосовые помощники - ИИ - маркетплейс - BigData - экосистема (Сбер, Тинькофф)

В банковской сфере есть понятия: Daily Banking - переводы/платежи и прочее Digital Office - замена услуг оффлайн на онлайн (Пр.: получение карты) Финансовая платформа - маркетплейс Медия - советы, экспертизы, консультации

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

Некоторые банки оценивает консалтинговое агентство Markswebb. Оценки довольны субъективны на мой взгляд. Так вот они предъявляют банкам одинаковые, надеюсь, требования. Поэтому в конце года разница в приложениях уменьшается. Например: ввод номера карты с помощью nfc

Пятница. У меня релиз)) Простите меня, что я задержался. Напишу в ночи, с надеждой что вы завтра или сегодня прочитаете. Писать будем про разницу разработки в продуктовых и не продуктовых компаниях

Суббота


Раз уж зашел разговор про релизы расскажу как у нас обстоит с этим дела. Наш день релиза - вторник/среда. В 90% случаем релизы в пятницу или перед праздничными днями - вынужденные релизы. В такие дни у нас всегда есть дежурные в выходные дни, ведь форс мажоры никто не отменял.

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

Схема готовности выглядит примерно так: Подсистема 1 - 2 (редко 3) неделя с начала спринта Подсистема 2 - 2 или 3 неделя с начала спринта Бэк фронтов - 3 неделя с начала спринта Фронты - 4 неделя спринта Это условная схема

Соответственно если в данной схеме происходит задержка или что еще хуже, что-то работает не так/не до конца так всё это аффектит на нас, фронтов. Такие ситуации бывают, редко, но всё же. Глупо это отрицать.

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

Выпускаете релиз по пятницам?)

У нас устоялась практика постепенной раскатки с ежедневной фиксацией качества сборки. Всё это делается для снижения рисков.

Суббота. Сегодня нет определенной темы. Продолжим говорить о темах, которые обсуждались в будни.

@vvsevolodovich @mobileunderhood @stepango В финтехе, например, у меня был жёсткий срок по релизу поддержки СБП (система быстрых платежей между банками по номеру телефона). В райдхейлинге это, к примеру, поддержка новых языков. Опять же, при использовании поэтапной раскатки фича должна быть готова заранее
Очень хорошо описано) twitter.com/xotta6bl4_/sta…

@vvsevolodovich @mobileunderhood @stepango Что в фмнтехе, что в райдхейлинге бывают обновления требований регуляторов/законодательства. Сюда же относится сертификация при выходе на новый рынок. И релизы больших фич, которые затрагивают все платформы, под которые может готовиться оффлайн реклама/оффлайн мероприятия.
Я бы лучше и не описал бы) twitter.com/xotta6bl4_/sta…

В комментарии был поднят вопрос про грейд и разработку проекта. Так вот какую проблему разработчиков я встречаю, когда они долго занимаются одним проектом. Зачастую проект делается на знакомой технологии, что понятно, и развивается рамках знаний одного-двух разработчиков.

Допустим приходит к нам разработчик с опытом от 2 и более лет, но он работал над одним проектом. И всё это время он не пробует новое или не предпринимает попыток внедрить новый подход/технологию. И вот он решается сменить работу, но его опыт может быть не релевантен для других.

Какие причины, выбрал несколько, приводят: - "Бизнес хочет здесь и сейчас - нет времени на изучение чего-то нового" - "Читал про этот подход/технологию, но не было у кого спросить, хочу развиваться, поэтому ищу новое место"

В таких случаях есть неопределенность. Справится ли кандидат с новым требованиям и как много времени это займет. Но это крайне малый процент кандидатов. У нас пока нет выстроенного процесса для этого, так что мы больше ориентируемся на твердых middle/senior разработчиков.

Главное тут твердые знания по Android, то твердое от чего можно отталкиваться. Так же советую нетворкинг, так ты узнаешь больше коллег и это подтолкнет к изучению нового или как минимум будет у кого попросить совета или спросить. Кстати, как вы относитесь к нетворкингу?

Интересная тема для Android разработки. Не так давно мы начали поддерживать сборки для Huawei/Honor телефонов. Вы поддерживаете сборки для несколько сторов, например Google Play и appGallery или даже Galaxy Store?

Никогда не делал сборки для Galaxy store, расскажите в чем особенность.

Для разных сторов вы используете разные подписи для приложения?

Большинство моих коллег, бывших и нынешних, не видят пользы от нетворкинга. Точнее их нетворкинг ограничивается только своими коллегами. Я же наоборот считаю, что каждое новое знакомство дает многое. Тут тебе альтернативное мнение и новый опыт.

На последней посещенной мною оффлайн конференции я с удовольствием пообщался с коллегами из других банков, таких как Revolut, Raiffeisen, Альфа, ВТБ и Промсвязьбанк.

Воскресенье


Давно хочу внедрить практику "эксперта из вне". Смысл в том, чтобы пригласить к нам на внутренний митан эксперта со стороны. До пандемии было столько планов связанных с этим. Вы проводите внутренние митапы?

Теперь вся эта задумка перенесется в 2021 год. Что к лучшему, ведь нас ждет расширение. Мы уже некоторое время упираемся в ресурсный лимит. Теперь мы запланировали разбиение разработки на фичёвые команды. У вас есть фичёвые команды?

Спасибо всем, кто был в эту субботу со мной. Подложим завтра.

Воскресенье. Хотел мы обсудить зп в разработке. Есть ощущение, что с рынок слишком прогревается и наступит день, когда компании перестанут поддерживать ожидания разработчиков. Пузырь когда-нибудь лопнет.

Я понимаю, почему в разработке высокие зп. Представим ситуацию: приходит компания A и предлагает оверпрайс на зп, например +30% к средней Это аффектит на ожидаема зп разработчиков. И вот условный middle ожидает зп на уровне senoir.

Отсюда может произойти ситуация, когда компании должны будут подстраиваться под рынок. Но так же останутся компании, которые не могут предложить те же деньги. Что в итоге мы получим, множество переоцененных разработчиков и множество компаний с низким уровнем разработки

Это не значит, что предлагаю всем снизить свои ожидания, не всем) Это мои опасения.

Всем спасибо, за эту интересную неделю. Желаю всем продуктивной недели, сохранения work-life balance, достойной зарплаты, быть услышанными и уметь слушать окружающих)

Ссылки