Блог компании Сбер

Мобильная разработка в СберТехе: разговор на бегу

Мобильные приложения банков есть практически во всех смартфонах - пользователям удобно управлять счетами и платежами, переводить деньги в пару касаний, иметь личный кабинет всегда рядом. Разработчики и дизайнеры мобильный приложений любят свою работу и знают толк в использовании современных технологий.
Однако в ИТ-среде упорно продолжают транслироваться мифы о работе в банках. Мы поговорили с мобильными разработчиками СберТеха - буквально на бегу они ответили на главные вопросы и даже позвали хабровчан присоединиться к их команде.
ДЕНИС ВОЛОШИН
главный инженер в отделе мобильных приложений
(Департамент развития фронтальных систем и электронных каналов обслуживания)
— Чем занимаетесь в компании?

В СберТехе я занимаюсь мобильными разработками под платформу Android. Полтора года принимаю участие в создании двух приложений: Мобильный Банк Европа и Sberbank IR. Назначение первого приложения будет понятно тем, кто пользуется приложением Сбербанк Онлайн. А Sberbank IR - это приложение для инвесторов.

За время работы в компании пришлось столкнуться со многими техническими задачами. Пожалуй, самые интересные из них - внедрение архитектуры Clean Architecture и технологии RxJava в обоих проектах, а также работа с code review и мотивирование команды применять его на практике. Например, архитектура Clean Architecture подразумевает разделение приложения на слои, что удобно при масштабировании и тестировании приложения. А технология RxJava удобна при работе с многопоточностью и при обработке последовательностей событий.

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

На работе - Windows 10, а дома - Ubuntu. В среде разработки мы используем Android Studio и Intellij idea. В code review используем инструмент Upsource от JetBrains.

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

Могу порекомендовать «Чистый код» Роберта Мартина и «Совершенный код» Стива Макконнелла: каждый программист должен прочитать эти книги, осознать и применять в работе эти принципы. По алгоритмам посоветую «Алгоритмы. Построение и анализ» Томаса Кормена, в изучении Java и Android поможет официальная документация. Кроме чтения литературы также советую проходить курсы Coursera и Udacity.

Есть ли какие-то отличия в работе с IT банка и обычного коммерческого разработчика ПО?

Компанию прежде всего отличает предметная область - банковская, финансовая. Тонкости этой предметной области осваиваются уже походу участия в проектах. В штате компании есть много аналитиков, которые более глубоко владеют знаниями в области финансов и всегда готовы подсказать и научить, так что освоение материала происходит довольно быстро. А вот с точки зрения разработки особых различий я не вижу.
Банковское ПО, а тем более мобильное приложение, неразрывно связано с вопросами безопасности, скоростью и высоконагруженными системами. Как решаются подобные задачи? Насколько интересно работать именно над этими тремя аспектами?

Высокие нагрузки и скорость - это скорее вопрос к серверным разработчикам. Я разрабатываю клиентское приложение. Но вот безопасность мобильного, особенно банковского приложения, - это действительно очень важно. Конечно, мы очень серьезно прорабатываем этот вопрос. Например, в Android-приложении мобильного банка для Европы встроено решение от Лаборатории Касперского.

Много legacy-кода, старые языки программирования, трудная поддержка проектов - это о разработке в СберТехе или всего лишь миф о банковском IT?


Многое зависит от проектов. Те проекты, с которыми мне приходилось работать, содержали широко используемые и поддерживаемые языки программирования, библиотеки и код. Например, основной язык программирования – это Java. Для тестирования используются JUnit и Mockito. Используется RxJava.

Каким должен быть специалист, чтобы стать сотрудником СбеТеха? Что у него должно быть за плечами: красный диплом, научная работа, сотни коммитов в open source проектах? Или, может быть, бэкграунд экономиста?

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

Но главное для ИТ-специалиста - постоянно развиваться, изучать новые подходы, библиотеки, средства, потому что прогресс не стоит на месте.
АЛЕКСАНДР АПРИАМАШВИЛИ
руководитель разработки в отделе мобильных приложений (Департамент развития фронтальных систем и электронных каналов обслуживания)
— Чем занимаетесь в СберТехе?

Я руковожу разработкой iOS приложений в рамках двух очень интересных проектов: Мобильный Банк Европа и Сбербанк для Инвесторов. Заботимся о том, чтобы пользователям было приятно и удобно работать с нашими приложениями.

Сейчас мы активно работаем над приложением для инвесторов Сбербанка, в котором полностью меняем UI и улучшаем UX, поэтому плотно взаимодействуем с нашей UI/UX командой. Конечно же, мы не забываем о качестве наших продуктов, поэтому до отправки приложения в релиз проводим циклы тестирования и багфиксинга. В этом нам помогает команда QA. Надеемся, что наша работа будет по достоинству оценена пользователями в AppStore.

— Какие задачи решаете?

  • Управление командой iOS разработчиков

  • Взаимодействие с другими командами, участвующими в процессе разработки (аналитики, QA, UI/UX)

  • Составление и распределение задач по участникам команды, контроль их исполнения

  • Принятие архитектурных решений для реализации задач по iOS приложениям

— Есть ли какие-то отличия в работе с IT банка и обычного коммерческого разработчика ПО?


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

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

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

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

Самое главное - все наши проекты направлены на удовлетворение технологических нужд Сбербанка и его клиентов, поэтому мы работаем над действительно интересными проектами.
— Банковское ПО, а тем более мобильное приложение, неразрывно связано с вопросами безопасности, скоростью и высоконагруженными системами. Как решаются подобные задачи? Насколько интересно работать именно над этими тремя аспектами?

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

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

Так, в одном из проектов нам пришлось попрощаться с поддержкой кастомных клавиатур (Custom Keyboard Extensions) и появившимся в iOS 9 SFSafariViewController, который позволяет просмотреть веб-станицу, не покидая приложения. К сожалению, данные возможности могли бы привести к потере данных или фишингу.

Также мобильное приложение, как и любой клиент, должно выполнять некоторые функции «щита» для сервера. Ведь поломка клиента не так печальна, как попадание вредоносных данных или кода на сервер. Мы написали замечательный валидационный модуль, который проверяет переданное значение на запрещенные символы и попытку SQL-injection. Мы произвели некоторую магию с сертификатами, так что, можно считать, что мы защищены от MITM-атак. Конечно же, все это было бы бессмысленно без реализации проверки устройства на JailBreak. Кстати, именно в СберТехе я узнал много нового о том, как можно обезопасить мобильное приложение.

— Много legacy-кода, старые языки программирования, трудная поддержка проектов - это о разработке в Сбертехе или всего лишь миф о банковском IT?

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

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

Наша команда использует XCode, так как это нативная и понятная для любого iOS разработчика среда. Мы стараемся по минимуму использовать фреймворки и сторонние библиотеки: лучше ведь переиспользовать свой код. Правда, очень важно, чтобы было что переиспользовать.

Наиболее известные сторонние библиотеки, которые мы применяем в приложениях - RestKit и Alamofire/AFNetworking. Мы также обращаемся к библиотекам наших подрядчиков, если необходимо производить интеграцию с какой либо АС этого подрядчика.

— Какую профессиональную литературу вы бы могли порекомендовать?

Лично мне кажется, что книги успевают устареть еще до их выхода, поэтому советую начинающим разработчикам изучать разработку под iOS по лекциям Paul Hegarty из Stanford University, которые можно найти в iTunes U. Всю остальную информацию советую черпать из официальной документации Apple. Там можно получить самые актуальные данные по последнему iOS SDK.

— Каким должен быть специалист, чтобы стать сотрудником СберТеха? Что у него должно быть за плечами: красный диплом, научная работа, сотни коммитов в open source проектах? Или, может быть, бэкграунд экономиста?

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

Даже если у него не очень много опыта, но при этом он готов обучаться и совершенствоваться в профессии, - такому тут всегда будут рады.

Комментарии 34

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

      Потом еще месяц будет рута получать...

        0

        А потом приложение Сбербанка заявит — "вы получили рута, функциональность ограничена — вы можете пользоваться только клавишей Esc" ;-)

        +2
        Это по моему во всех банках так — например у нас в конторе я тоже первую неделю книжки читал — и это ещё ладно. Мне рассказали историю про одного чувака, который устроился в наш отдел, «проработал» 3 месяца, уволился и за всё это время комп ему так и не подогнали. =)
          0
          Это не черта банков, у меня та же история была с другими фирмами в ИТ, среди которых были всероссийского масштаба. Обычное российское раздолбайство
            +3
            И не только российского, это вообще одна из типичных болезней большого бизнеса…
            … ну а чё, админ спит, зарплата идёт, а тут и разработчикам перепадает :-)
            0
            а давно ли ваш бывший коллега устраивался? Может раньше так и было. Я работаю в СберТехе и исторически сложилось, что оформляю всем новеньким коллегам в моем отделе заявки на предоставление техники. 2-3 дня обычно занимает это. Последним двум новичкам вообще оба компа выдали в первый рабочий день))
              +2
              оформляю всем новеньким коллегам в моем отделе заявки на предоставление техники. 2-3 дня обычно занимает это. Последним двум новичкам вообще оба компа выдали в первый рабочий день))

              — а заранее, то есть во время оформления\проверок нового сотрудника и до фактического приёма сделать заявку с конкретной крайней датой исполнения невозможно? я бы сказал, что вы скорее подтвердили слух, нежели его опровергли…
                0
                Так заранее и делают, но жуткая бюрократическая машина наверное не успевает..«мы рассмотрим Ваше заявление в течение месяца»:)
                  0
                  заявка-уведомление от отдела кадров в ИТ о месте, должности и дате выхода.
                  человек приходит — и у него УЖЕ рабочее место.

                +1
                Совсем забыли :)
                image
                +2
                Главный инженер в отделе мобильных приложений. (Департамент развития фронтальных систем и электронных каналов обслуживания)


                При этом аджайл вокруг, быстрота коммуникации и пр. )
                  0
                  В среде разработки мы используем Android Studio и Intellij idea.

                  Зачем при разработке под Андроид использовать сразу две почти идентичных IDE? От второй вообще сейчас уже проку нет(в разрезе Андроида)
                    0
                    Здравствуйте! Для разработки мобильных приложений мы используем Android Studio разумеется. Intellij IDEA привычнее для других задач на Java: будь то алгоритмическая задачка или код серверного приложения.
                    +1
                    Пользуюсь я мобильными приложениями Сбербанка и Альфа-Банка на мобильном. Сбер почему-то страшно тормозит при запуске, а порой еще и два раза пароль просит ввести. Я даже подозревал троян какой-нибудь, ан нет, технологии такие.
                      –1
                      Я поставил себе идентификацию по отпечатку пальца, всё летает. iPhone5, Сбербанк Онлайн.
                        0
                        Тут речь об android версии, которая действительно серьёзно тормозит при запуске.
                        Кроме ввода пароля несколько раз, частенько приложению ещё почему о сеть не нравится, приходится его прибивать и запускать заново. Да, на iOS таких проблем не замечаю, а android смартфон не самый плохой (lg G5)
                      +1
                      В чём польза статьи?)
                      Рассказали какие необычные подходы используются в СберТехе? Нет.
                      Рассказали что-то новое о мобильной разработке? Нет.
                      Рекламировали какой СберТех крутой и надо идти туда работать? Нет.
                        0
                        Ну офигеть теперь! пишут рекламу — плохие, не пишут — тоже плохие. По-моему, посыл ясен — ищут ребят в команду, рассказывают по-честному, что и как — никаких мифов, обычная интересная работа для профи.
                          0
                          Ну так и расписали бы нормально. Вот я прочитал про Андроид, краткий пересказ: мы пишем на Java в Android Studio, применяем Clean Architecture и RxJava. Тестируем с помощью JUnit и Mocktio.
                          Ну, молодцы, чё! А кто щас так не делает…
                            +3
                            разговор на бегу
                              –1
                              Ну так и зачем?) Ничего полезного/нового/интересного не сообщили
                                +2
                                Знакомства пост
                                  0
                                  Ну СберТех вроде не маленькая студия по разработке, чтобы поверхностно себя представлять. Не могли найти время/денег/ресурсов на написания хорошей подробной статьи с уникальным контентом?
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                      0
                                      Про мобильную разработку будем еще много писать. Напишите, что конкретно интересует, обязательно ответим!
                                +3
                                А что, вы ожидали от Сбертеха особого высокоуровневого языка 1Сбер и фрейворка YSber? Инструменты у всех одни и те же, но кто-то пилит приложения с хайлоадом на бэкенде, а кто-то хелловорд скомпилировать не может. Суть в этом.
                                  +1
                                  Да, можно было и больше. В прошлом году на MBLTdev конференции посвящённой мобильной разработке выступал человек от Сбербанка, подробно рассказывал об архитектуре.
                                    +3
                                    Мы скоро расскажем!) Выше правильно заметили, что это пост знакомства, дальше будет больше подробностей. Можете написать, что особенно интересно, обязательно учтем))
                            +2
                            у нас отличная команда и всё делается быстро :-) приходите в Сбертех, будем рады новым трудоресурсам!
                              0
                              Это в Москве или в Минске?
                              В Минске не всё так весело
                              Четыре прежних резидента лишились членства в Парке. Среди них обращает на себя внимание ООО «Сбербанк-Технологии» — минский офис одноимённой дочерней компании российского Сбербанка. В компании dev.by коротко сообщили, что это было «решение руководства». Слухи о значительном сокращении белорусского дев-офиса ходили давно. Получить официальный комментарий от Сбербанка на момент этой публикации нам не удалось.
                                0
                                Комментарий кстати не просили) Формулировка, что мы «лишились членства», вызывает вопросы...))
                                  +1
                                  дев.бай всегда был немного жёлтым :)
                                  Вы бы могли и сами рассказать что да как — многим было бы интересно как живётся по ту сторону ПВТ.
                              0
                              а работу клиента на zenfon2 в android6 уже починили?

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.