NDA: Mobile app – boxed diets
Ecommerce / Technology: Flutter
Project Objectives
The main goal was to take over the application and ensure its continuity, while eliminating critical bugs and preparing it for further stable development. We had to carry out ongoing development of new features and salvage existing code in parallel to minimize the level of bugs and improve user satisfaction.
Challenges
- Code complexity and instability: The main challenge was the non-developable code, in which even small changes in one part of the application caused a cascade of errors in other, seemingly unrelated areas. The lack of stability prevented the rapid addition of new features.
- Lack of documentation and testing: The project was not equipped with any automated tests, making it impossible to make changes safely. In addition, the lack of detailed technical documentation made it difficult to understand the operation of key modules.
- High error rate: Despite thousands of daily users, the error rate (crash free users) was low, negatively affecting the user experience and reputation of the application.
- Budget and time constraints: We had to work within a strict budget and deadlines, which precluded the possibility of creating the application from scratch. What’s more, we took over the project at a key time in the industry, which meant that the app had the highest traffic and load at the time.
Solution
We began our work with an in-depth analysis of the code and an overview of the planned functionality. To minimize the risk of introducing further bugs, a key step was to write unit tests for the existing code. This allowed us to make sure that our modifications did not spoil features that were already working.
After this stage, we proceeded to refactor the most critical parts of the code, while conducting ongoing development of new functionality. In six months of intensive work, combined with continuous testing, we managed to raise the level of error-free operation of the application (crash free users) to more than 99%, which restored its stability and enabled further, safe development.
