О клиенте
X5 Retail Group — одна из ведущих российских мультиформатных продуктовых розничных компаний. Управляет магазинами торговых сетей «Пятёрочка», «Перекрёсток», «Карусель» и магазинами «Перекресток Экспресс».
Крупнейшая российская сеть супермаркетов, которой управляет X5 Retail Group
X5 Retail Group — одна из ведущих российских мультиформатных продуктовых розничных компаний. Управляет магазинами торговых сетей «Пятёрочка», «Перекрёсток», «Карусель» и магазинами «Перекресток Экспресс».
С 2016 года мы занимались развитием и поддержкой одного из онлайн продуктов компании — мобильного приложения «Мой Перекресток». За это время нам удалось глубоко понять бизнес клиента, построить эффективную совместную команду и подойти к решению сложной и амбициозной задачи.
пользователь должен был получить продукт, помогающий быстро совершать покупки и эффективно расходовать средства с помощью программы лояльности
нам предстояло сохранить в новой версии все полюбившиеся покупателю функции
мы должны были интегрировать в приложение множество нововведений, которые должны сделать работу с приложением еще удобнее и проще
Команду под проект была собрана «с нуля». Сперва мы проводили внутренний отбор и только после того, как убеждались в том, что сотрудник хорошо проявит себя на проекте, проводили знакомство с Product Owner. Обязательным критерием было знанием методик SCRUM: до начала работы новый сотрудник проходил краткий инструктаж о сути проекта и обязательно читал ScrumGuide.
результаты, собранные с помощью Google Analytics
какие экраны наиболее популярные, сколько появилось новых пользователей, их «портреты».
внутренние базы
магазины мобильных приложений
рейтинги
Мы провели опрос на этапе тестирования приложения. Так мы выяснили, что большинство использует мобильное приложение не потому, что забывают пластиковую карточку дома, а просто потому, что так удобнее и современнее. Также мы получили сценарии, которые можно было использовать при юзабилити-тестировании.
Для разметки нового приложения использовалась App Metrica. Этот инструмент позволил нам собирать «сырые» данные и отдавать их бизнес-аналитикам для дальнейшей работы.
Мы выявили наиболее популярные разделы приложения и результаты взаимодействия пользователей с ними.
Вначале мы выбрали две приоритетные группы пользователей с двумя ключевыми сценариями: первый вход в приложение и использование приложения постоянным пользователем.
Второй этап включал расширение пользовательских сценариев и определение исключений, которые нужно обрабатывать для хорошего функционирования приложения.
Финальная работа проектной группы проводилась уже на стадии дизайна и ранней сборки, когда мы могли свежим взглядом опробовать решения, принятые до этого, и обсудить отдельные сценарии с группой пользователей.
Мы очень сильно переработали дизайн приложения.
Вся поверхность — экран, и на этом экране главная навигация расположена внизу. Поэтому мы провели важную унификацию: нижнее меню версии для iOS теперь органично вписывается в Android. Результаты тестирования показывают, что унификация дизайна не вызывает затруднений. Пользователи легко ориентируются в новой навигации, и, наоборот, она стала проще и понятнее. Мы руководствовались принципом: меньше тапов — больше пользы.
Одновременно велась разработка как бэкэнда на python, так и приложения под мобильные платформы iOS и Android. Мы провели масштабную работу и добавили множество улучшений, не заметных невооруженным глазом:
Внедрили кэширование и тем самым снизили нагрузку на сервер. Это позволило клиенту сократить затраты на закупку дополнительных мощностей;
Внедрили логирование и стали использовать его на всех платформах, сделав его доступным для всей команды. Это позволило быстро локализовывать ошибки;
Поработали над обратной совместимостью, чтобы пользователи при переходе на новую версию не испытывали проблем с сохранением данных;
Использовали микросервисы и теперь поломка чего-то одного не влияет на работоспособность в целом и система остается стабильной;
Провели рефакторинг кода: теперь он работает быстрее и с меньшими ошибками, а значит пользователь не ждет отклика и обработки запроса;
С помощью JSON Web Token решили проблему разлогина, оптимизировали работу приложения с медленным интернетом или вообще без интернета.
Обработали и дописали все коды ошибок. В свою очередь, описание ошибок стало информативным для пользователей: теперь на экране отображается причина ошибки и подсказка, как ее устранить (например, плохое соединение с интернетом);
Было написано несколько сотен тест-кейсов, которые охватили почти все варианты взаимодействия пользователя с приложением.
Запустили многоуровневую систему тестирования:
Для разработки и доставки приложения мы использовали систему контейнеризации Docker — это позволило быть уверенным в том, что на всех этапах производства система будет работать корректно. За счет оперативного анализа, мониторинга и аудита мы могли заранее предугадывать, когда серверы перестанут справляться с нагрузкой, и своевременно увеличивать ресурсы для бесперебойной работы сервиса. Мы следили за работой приложения 24/7 и оперативно реагировали на возникающие проблемы, обеспечивая непрерывную доступность сервиса.
Легкость и скорость: приложение стало «легче» в два раза за счет оптимизации кода; благодаря этому приложение работает быстрее и стабильнее.
Устранили критические баги. Например, теперь не происходит разлогина и пользователю не приходится заново входить в приложение в самый неподходящий момент.
В 2018 году проект занял второе место в Рейтинге Рунета в категории «Мобильные приложения»