«Маджента» –
то место, где можно
заниматься любимым
делом

Пётр Попов, руководитель мобильной разработки для "Грин Томато", всего пять лет назад пришёл в "Мадженту" после университета.

Как давно ты работаешь в «Мадженте»?

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

На тот момент я учился в госуниверситете, на пятом курсе. Во время обучения я интересовался программированием, прошел курсы на Java разработчика, но опыта коммерческой разработки приложений у меня не было.

Я прошел каскад собеседований и ждал ответа – я очень волновался. Меня взяли и началась моя жизнь программиста.

Как получилось, что ты начал заниматься разработкой мобильных приложений? Что этому способствовало?

Так выглядит карта переходов по экранам, с нее начинается описание нового функционала

Этому способствовала проектная необходимость. Это сейчас в компании сильно развито мобильное направление – основные продукты компании включают в себя мобильные приложения на iOS и Android. В 2010 году у компании был большой опыт создания сложных enterprise систем на java, мобильное же направление начало зарождаться незадолго до моего прихода.

После прихода в компанию, я участвовал в разработке системы для управления перевозками с веб-интерфейсом. Это был мой первый опыт работы в команде над сложным enterprise приложением. Я начал разбираться в ремесле разработчика, у меня получалось, мне было интересно. По прошествии совсем небольшого времени стартовала разработка мобильного приложения для водителей компании Avis. Поскольку я хорошо зарекомендовал себя на текущем проекте, было решено поручить разработку этого приложения мне (под руководством опытного разработчика разумеется).За два месяца я разработал свое первое мобильное приложение. Оглядываясь назад можно сказать, что за первые два года я успел перезаниматься всем: и серверной j2ee разработкой, и фронт-эндом на js (ExtJs и YUI), и мобильной разработкой на java под phoneME для Windows Mobile, и портированием этих приложений под Android c последующей доработкой – скучать мне не приходилось.

Следующим важным этапом в моей работе стала разработка iOS приложения для крупной лондонской такси компании Greentomatocars. В 2012 году у нас стартовала разработка системы для управления такси бизнесом для Greentomatocars на базе маджентовского продукта. Система должна была покрывать операционную деятельность компании, это сложная и большая система работающая 24/7. Важной частью системы являлось iOS приложение для заказа такси. На тот момент у Мадженты не было опыта создания iOS приложений, и задача разработки приложения для конечных пользователей в сжатые сроки, конечно, была рискованной. Но тем не менее мы решили сделать приложение своими силами. Я уже зарекомендовал себя хорошим разработчиком и чувствовал в себе силы взяться за такое приложение. Так я попал в команду Greentomatocars. Помимо меня над приложением работал QA, дизайн мобильного приложения нам помог сделать Саша Голанов, Антон Катков поделился опытом разработки под iOS. Мы все сделали вовремя, и приложение появилось в AppStore. Вскоре к нашей небольшой команде присоединился Android разработчик, и мы начали образовывать ядро будущей мобильной команды. Первоначальная версия iOS приложения радовала пользователей два года, новый функционал конечно добавлялся, но каких-то коренных изменений не было. Не то чтобы приложение перестало радовать их по прошествии двух лет, просто потом начался новый этап.

Первая версия документации была тремя листами набросков от руки

В чем сейчас заключается твоя работа?

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

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

Интересно, как получилось, что ты вышел на передний край коммуникации с заказчиками?

Обсуждаем с лондонской командой планы захвата мира

Изначально большая часть коммуникаций между нами и заказчиком происходила через наших ребят в Лондоне. При таком подходе удлиняется цепочка коммуникаций, теряется часть знаний при передаче информации от заказчика до нас. Взаимодействовать с заказчиками я начал во второй половине 2014 года. Сначала меня Макс (руководитель проекта) начал подключать к скайп конференциям. В то время обсуждалось новое клиентское мобильное приложение, которое позволило бы запустить заказчику Uber’оподобную модель бизнеса в дополнение к уже существующему классическому такси бизнесу. И в декабре 2014 года меня взяли в Лондон для участия в обсуждениях нового приложения.

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

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

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

Для создания успешного продукта
мы анализируем данные

Какие сейчас перед тобой стоят задачи?

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

Для меня интересно продолжить разбираться в бизнесе заказчика, в том какие критерии используются при выборе функционала для реализации, как оценивает успешность того или иного изменения, какие данные при этом анализирует. Это позволяет нам предлагать свои решения, заказчик начинает нас слушать, что делает нас частью продукта, а не программистами, бездумно преобразующих спецификацию в приложение. Сложно конечно двигаться в этом направлении, находясь с заказчиком в разных странах, но мы созваниваемся по скайпу, выезжаем в командировки и делаем все чтобы стать частью одной команды. С другой стороны, для нас важно постоянно удерживать качество на высоком уровне. В декабре мы запланировали переработку continuous integration, которая широко используется для разработки серверного интерфейса для мобильных приложений. Сейчас эта работа идет полным ходом. Это критичная для нас часть процесса разработки, благодаря ей, серверные программисты могут поставлять рабочий интерфейс мобильщикам и поддерживать его в рабочем состоянии потом. Еще в прошлом году мы освоили end-to-end тесты для iOS и Android приложений и уже успели покрыть существенную часть сценариев для регрессионного тестирования приложений. Мы хотим довести до конца это начинание, чтобы снизить время, которое тестировщики тратят на рутинную работу, и освободить больше времени для работы над тестовыми сценариями и тестированию специфичных для мобильных приложений случаев.

Ну и конечно продолжим улучшать приложение: нужно исправить некоторые неконсистентности подчистить и улучшить UX, мы релиз за релизом улучшаем, но еще много где все далеко от совершенства. Также некоторые операции сравнительно долго выполняются в приложении – мы тоже над этим работаем.

Еще я успеваю отдохнуть: с семьей на пляже

Чем ты гордишься больше всего?

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

Как ты видишь будущее компании и своей команды?

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

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

Что бы ты пожелал сотрудникам Мадженты?

Я пришел в компанию, в 2010 году. За это время я успел получить опыт серверной разработки на Java, мобильной Android и iOS разработки. Сейчас руковожу разработкой мобильного приложения для крупнейшей такси компании Лондона. Думаю, что могу пожелать своим коллегам не бояться брать на себя новые задачи и вызовы.

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

Вакансии

Мы постоянно расширяемся, поэтому сейчас у нас открыто 1 вакансия.


Самара
ВАКАНСИИ