We turned an ordinary mobile app into a super-app with innovative financial services and banking. And powered big data analysis by Metabase BI
We've integrated the X5 Bank and Express-Scan services into the application and organized work with data.
This case study describes how an agile approach to organizing teams and processes can successfully solve the challenges of mobile application development.
Pyatyorochka is one of the largest corner grocery store chains in Russia. Founded in 1998, it now has 18,000 stores nationwide. Pyaterochka is part of the X5 Group.
The main requirement of the client was to quickly develop a number of services on a fairly short notice. In order to solve their problems, customers were looking for teams that had the right set of experts and could quickly get involved in the work.
We know how to select teams for a specific task, quickly integrate into customer processes and get to work immediately.
IMAGA provided ready mobile development and product analytics teams for Pyatrochka's projects.
We cooperated closely with the Pyaterochka teams on two fronts:
1. Financial services
Two new services (X5 Bank and Express Scan) were integrated into the Pyatoyrochka app.
2. Product analytics
We assigned IMAGA specialists to work with customer data. We deployed the necessary infrastructure to implement self-service analytics.
Before showing you the results of working together with the client, here's a little backstory.
We have been working with Pyatoyrochka since 2018, and our collaboration began with the development of a mobile app.
The solution was to bring in a competent performer from the market to strengthen the in-house team.
The financial services development team consisted of 8 people (mobile developers, backend developer, tester, analyst, manager).
In less than a week, we immersed ourselves in the specifics of the project, understood the product code, studied the backlog and prioritized tasks together with the Product Owner of Pyaterochka. Then, we started the development.
Finservices: integration of X5 Bank and Express Scan
The tasks were implemented in a month . To meet that deadline, we built the following workflow:
- On the Pyatrochka side: product expertise, ideas and features.
- On IMAGA’s side: participation in solution design, development, implementation of functional and segmentation logic, integration with third-party systems.
Financial services: X5 Bank
At the end of 2021, X5 Group launched by financial services under the X5 Bank brand. The first was the digital X5 Card, which combines the Pyatyorochka loyalty card and banking services (payments, money transfer, refunds for purchases, etc.).
In December 2021, we launched an MVP solution in the Pyaterochka app. Since the beginning of 2022, we’ve developing its functionality. For example, we added onboarding, help with frequent card-related questions, and information about specials and bonuses.
The team led development on the app side in parallel with the bank team’s integration development. Due to the specifics of the infrastructure and security rules, there was virtually no opportunity to test the functionality until launch day. But we were able to launch successfully with minimal debugging because we designed the queries, responses, and stubs in a proper way.
Finservices: Express Scan
Express Scan is a handy tool for in-store shopping. It’s a service that turns your phone into a cash register. The customer scans the barcodes of goods in the store and pays for them in the app.
We were responsible for integrating this service into the Pyaterochka app. The work was carried out jointly with the Express Scan developers on the X5 team.
We elaborated different behavioral scenarios. For instance, if the user is not allowed to use the phone camera, we’ll let you know about it and assist you in setting it up.
We also didn’t forget to account for the subtleties of sales in certain categories of goods.
Financial services: Technology
The work on the project was carried out in the sprints, while the backlog was formed together with the client.
- Python 3.9 (FastAPI, aiohttp, Celery), PostgreSQL 11, Redis, RabbitMQ, MongoDB. Docker, k8s.
- Swift, MVP, RSwift, Firebase, SwiftLint, AppsFlyer, SPM, Realm, SnapKit, IVCollectionKit, Alamofire, Fastlane, Gitlab CI.
- Kotlin, MVVM, Coroutines, Cicerone, Room, Adapter Delegates, Koin, Firebase, Gitlab CI.
The product analytics team consisted of two to four people at different stages: analysts, a tester, an analytics team leader, and a manager.
The team was formed in accordance with the client’s needs. Two IGAMA experts were enough for standard tasks at the start. When the project began to develop, the team expanded.
In the first phase, we operated in the analytics area by collecting data (app + web) and turning it into reports/dashboards for customers within the company.
We then defined the ways of development, approved them and launched the project for the implementation of Self-Service analytics. This made it possible for our staff to quickly locate the required data without the help of analysts.
As part of the task, we have:
- We created a hierarchy of metrics.
- We deployed an ETL layer.
- We implemented a BI tool for data visualization.
- We developed a data catalog.
- We prepared the documentation.
Analytics: Metrics hierarchy
Metrics hierarchy is a system of metrics that is divided into subprojects (financial services, OS, loyalty, delivery, etc.) within the Pyatyorochka app. It enables you to identify metric dependencies and evaluate the impact of each process's metric on the ultimate objective.
To create the hierarchy, we completed the following steps:
1. Conducted an audit of all the markup the customer had.
Finding out what was done well and what was not. Prepared the ToR for updating the markup. All critical points were immediately corrected so that unnecessary events wouldn’t clog up the data.
2. Held interviews with product managers.
This step allowed us to establish what data they needed to track in order to make decisions. We delineated all of these metrics, from the more general to the more detailed ones.
Next step: get this data from all sources and transfer it to the Metabase data visualization and analysis service.
Analytics: an ETL layer and Metabase
For data visualization, we decided to use the Metabase BI tool. It helps address the tasks at hand and has a low entry threshold for the user.
To employ Metabase, we had to deploy the entire ETL infrastructure.
After the launch, we kept up with the ETL layer’s development, connecting more data and sources and converting more Data Studio dashboards into Metabase. Note that Metabase is an open-source solution with no risk of it being withdrawn from the Russian market.
Metabase wraps all collected data into clear graphs, charts, and dashboards. In total, we track almost 140 different metrics, which include:
- Total MAU (monthly active users)/DAU (daily active users) for the entire app;
- MAU/DAU by sections;
- Number of activated plastic cards in a month;
- Android/iOS installations in a month.
Analytics: data catalog
Data catalog comprises metadata (description of the information) in Russian, which can be combined with the backend data. Such descriptions make technical data more understandable and readable.
After we’d set up all the analytics systems and built a process for working with them, we documented the highlights:
- We described all the dashboards;
- We explained how the ETL layer works;
- We developed protocols for task assignment and team interaction.
This allowed employees to quickly become familiar with the new rules and properly organize their workflow.
Pyatyorochka is one of the largest data projects, with 100,000 unique events alone, which is a whole lot. Usually the number is around 100 or less. We’ve attempted to lighten the load on the analysts by making use of self-service analytics, which has also sped up the process of gathering the necessary data for data customers.
For instance, dashboards have helped us reduce the number of (ad hoc) requests for unloads. It was up to five a month at the beginning of 2021, but now it only happens once every two to three weeks.
Analytics: teamwork organization
With tasks planned for the coming week, the work was completed in sprints. We increased the sprints to two weeks after realizing that our tasks were lengthy. Story points were another addition.
The Delivery Manager used in different rituals, introducing or abolishing them to suit the situation.
We maintained in the current analytics system while ensuring quick R&D task development.
We simplified handling large volumes of data, making it more visual (Metabase), understandable (Data Catalog) and accurate (Metrics Pyramid).
We reduced the workload of analysts for some tasks by over 2 times.
Get in touch
Would you like to say hello or find out more information?Let's talk