Upon analyzing the customer’s internal development processes, Iflexion's team suggested a way to optimize them. Our team also studied the custom Magento-based platform and planned the necessary technology uplift for it. Working together with the customer’s internal team, Iflexion successfully implemented the suggested improvements.
Apart from that, our dedicated Magento developers organized a quick and efficient onboarding process to cope with further upscaling and implemented a knowledge management system to ensure seamless knowledge sharing between Iflexion and the customer.
Team Management and Collaboration
Having analyzed the customer’s processes, Iflexion’s dedicated Magento developers revealed that the agency lacked standards for managing the application development lifecycle and code quality. We recommended resolving this by introducing two improvement areas: Kanban process setup and code review.
Earlier on, each customer-side team lead was responsible for a certain pool of projects. When there was a need for developers, team leads grabbed them from the general pool, which resulted in competition for human resources. To solve this issue, we suggested breaking the developer pool up into several teams, each assigned to a specific customer-side team lead. In this scenario, team leads with their own teams can deal with specific requests from end customers. At the same time, each team reserves planned hours for developing the main platform.
To minimize communication barriers across distributed project teams and make the overall software production flow consistent and transparent, we introduced Kanban boards.
We also created a matrix team structure designed to organize interaction between team members and help them cope with a large amount of work. This allowed us to avoid blockers and backlog problems that caused developer downtime in different micro teams. In case of downtime, we quickly onboarded developers to another micro project and helped that team deliver results on time.
Figure 1: Kanban Board: Team Level
Figure 2: Level Correlations: from Team to Program
We have set up, described, and implemented a git-flow process, creating guidelines for both single tasks and epics. The guides include descriptions of team member roles and steps they should take to perform actions, as well as unified naming conventions for the whole team. Guides demonstrate the process of store development and new and existing module development.
The analysis of the core platform revealed several issues that hindered new store development. The core Magento-based platform contained 80 custom modules that helped assemble new ecommerce stores. The system was outdated, contained excessive dependencies, and lacked code consistency.
To deal with the issues, Iflexion’s team performed system refactoring. Frontend developers refactored JavaScript code and eliminated the dependency between JavaScript and PHP code in key modules. This also allowed them to create a custom front theme on ES6. The backend team transferred all existing projects to the latest version of PHP and implemented full page caching.
Our developers also introduced code review practices and implemented SonarQube code quality control and readability tools.
To this day, Iflexion’s team continue gradually reducing the technical debt by eliminating code dependencies, rewriting modules, and standardizing code. All of the above has helped us to get rid of 40% of the technical debt.