Transforming Magento version 1.9.2 Community edition into not only a more flexible shopping experience but also integration of customer account level services in the Telecom Industry was both exciting and challenging. Extensive planning, precision story writing, granular level acceptance criteria, prototyping, and process modeling were some of the steps used in our Agile Scrum approach to breaking this massive project into manageable iterations, user stories, and tasks.
Furthermore, in keeping with the core capability of multi-site support, features and alternate check out flows and account administration processes needed the same level of flexibility as not all sites would entail exactly the same feature sets or designs. In other words, each extension added not only needed the ability to be managed from the backend at the admin level it needed to be manageable at the store level and able to be enabled or disabled depending on the business rules of the site.
A multitude of check out process options also needed to be created in order to support application driven check out processes for government subsidized phone plans verses traditional check out processes and ongoing account billing methods along with the ability to support payroll deductions for sites needing to support this method of billing method.
As one can imagine, there were multitudes of user flows that could occur and dependant on certain conditional results of these processes for example only certain products would be shown or pricing discounts made available. Or for certain states for certain sites only specific check out flows would be present.
While this article will barely represent the complexity of the modifications justly, what is equally as important to emphasize is that through powerful tooling such as ScrumDo, Slack, Join.me, Google Hangouts, and emails and more, collaboration and team meetings were not hindered in anyway despite the location of the team members.
Every detail was flushed out through meetings between the product owner, scrum master and the developers. Time tracking was utilized to keep an accurate project timeline and planning tools helped to determine realistic and logical grouping of stories for iterations. Products such as Slack allowed for quick and audited communication between teams while allowing me the ability to monitor and stay on top of developer interaction, progress through reports and updates through story commenting and meetings.
Release management was also another critical factor, allowing for test plans to be established and followed in local development environments, staging and production. Through the use of Github we were able to achieve a release flow with rollback. Github also allowed the team to effectively manage version control and source code management, branches, pull request and merges. Many of these applications worked hand in hand so updates were recorded automatically.
The end result being a standardized process for developing simple to complex code ranging from but not limited to an extension for Magento, an plug-in for WordPress or a complete application whether coded from scratch or utilizing a framework such as Laravel.
As a Development Manager or Director it is critical to have processes in place such as those mentioned briefly in this article. Furthermore coding standards, vetting of code, and a team that works cohesively like a band who is well synchronized!