Мобильное приложение "Мой Перекресток" 2.0

История взаимоотношений

С 2016 года мы занимались развитием и поддержкой одного из онлайн продуктов компании — мобильного приложения «Мой Перекресток». За это время нам удалось глубоко понять бизнес клиента, построить эффективную совместную команду и подойти к решению сложной и амбициозной задачи.

Требования

  • Удобство
    пользователь должен был получить продукт, помогающий быстро совершать покупки и эффективно расходовать средства с помощью программы лояльности
  • Преемственность
    нам предстояло сохранить в новой версии все полюбившиеся покупателю функции
  • Инновации
    мы должны были интегрировать в приложение множество нововведений, которые должны сделать работу с приложением еще удобнее и проще

Команда

Команду под проект была собрана «с нуля». Сперва мы проводили внутренний отбор и только после того, как убеждались в том, что сотрудник хорошо проявит себя на проекте, проводили знакомство с Product Owner. Обязательным критерием было знанием методик SCRUM: до начала работы новый сотрудник проходил краткий инструктаж о сути проекта и обязательно читал ScrumGuide.

Этапы работы

Аналитика

Мы провели опрос на этапе тестирования приложения. Так мы выяснили, что большинство использует мобильное приложение не потому, что забывают пластиковую карточку дома, а просто потому, что так удобнее и современнее. Также мы получили сценарии, которые можно было использовать при юзабилити-тестировании.
Для разметки нового приложения использовалась App Metrica. Этот инструмент позволил нам собирать «сырые» данные и отдавать их бизнес-аналитикам для дальнейшей работы.
Мы выявили наиболее популярные разделы приложения и результаты взаимодействия пользователей с ними.

9d261c53ed9cccf3f1620dabc7a829a1.png

Проектирование

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

Дизайн

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

Разработка

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

  • Внедрили кэширование и тем самым снизили нагрузку на сервер. Это позволило клиенту сократить затраты на закупку дополнительных мощностей;
  • Поработали над обратной совместимостью, чтобы пользователи при переходе на новую версию не испытывали проблем с сохранением данных;
  • Провели рефакторинг кода: теперь он работает быстрее и с меньшими ошибками, а значит пользователь не ждет отклика и обработки запроса;
  • Обработали и дописали все коды ошибок. В свою очередь, описание ошибок стало информативным для пользователей: теперь на экране отображается причина ошибки и подсказка, как ее устранить (например, плохое соединение с интернетом);
  • Внедрили логирование и стали использовать его на всех платформах, сделав его доступным для всей команды. Это позволило быстро локализовывать ошибки;
  • Использовали микросервисы и теперь поломка чего-то одного не влияет на работоспособность в целом и система остается стабильной;
  • С помощью JSON Web Token решили проблему разлогина, оптимизировали работу приложения с медленным интернетом или вообще без интернета.

Тестирование

Было написано несколько сотен тест-кейсов, которые охватили почти все варианты взаимодействия пользователя с приложением.

  • Первыми с новыми фичами знакомилась команда проекта и сотрудники AGIMA. Это была группа альфа-тестировщиков, которые отсекали наиболее критичные баги.
  • После этого приложение попадало к бета-тестировщикам — специально подготовленные пользователи, которые знали, что именно надо проверить.
  • Получив обратную связь мы начинали показывать приложение ограниченному кругу пользователей. Первой тысяче, второй, третьей…
  • Плавная раскатка позволила устранить серьезные проблемы до того, как все пользователи получали в руки новый продукт. И как только мы видели проблему, то мы тут же приостанавливали распространение, пока проблема не решалась.

Эксплуатация

Для разработки и доставки приложения мы использовали систему контейнеризации Docker — это позволило быть уверенным в том, что на всех этапах производства система будет работать корректно. За счет оперативного анализа, мониторинга и аудита мы могли заранее предугадывать, когда серверы перестанут справляться с нагрузкой, и своевременно увеличивать ресурсы для бесперебойной работы сервиса. Мы следили за работой приложения 24/7 и оперативно реагировали на возникающие проблемы, обеспечивая непрерывную доступность сервиса

6ec98733271ce3c2d46ce6864ff55f53.png

Результаты

  • Обновлена навигация и логика главного экрана. На главной странице показываются релевантные для каждого пользователя товары — что он чаще лайкает; пользователь сам формирует главный экран, добавляя товары по акции/купоны в избранное.
  • Система авторизации/регистрации карты значительно упрощена: теперь не нужно вспоминать свой пароль, а достаточно просто ввести код из СМС. Оформление карты не занимает много времени: мы изменили экранные формы, убрав лишние для пользователя поля.
  • Легкость и скорость: приложение стало «легче» в два раза за счет оптимизации кода; благодаря этому приложение работает быстрее и стабильнее.
  • Устранили критические баги. Например, теперь не происходит разлогина и пользователю не приходится заново входить в приложение в самый неподходящий момент.
  • Новая концепция навигации: 4 больших раздела. 

113155266d1bd8abff7ccab85a462c2c.png

a282f73b678bc321706cde01ff696c66.png

Полный текст статьи читайте на CMS Magazine