And today, we’d like to share our expertise with you. With this article, we start introducing you into the process of extensions development we follow at Amasty.
But first, let’s speak about our…
Organizational structure & style of management
In development, we have independent delivery units with their clearly defined scope and areas of responsibility.
Product organization is separated from the delivery organization to make it fully focused on short- and long-term business needs of our clients and partners and also on new market opportunities.
We base our management strategy on teaching and mentoring people inside the teams to grow better professionals that are loyal to our company and clients. We also believe that bringing in some fresh blood helps our company to adopt market best practices more effectively and efficiently. Among such relatively newly introduced initiatives we can mention lean coffee with CEO that takes place every week and is organized to allow anyone in the company to raise their questions, thoughts or even concerns directly to CEO.
We are actively adopting agile software development methodologies (Scrum and Kanban) in our delivery teams, it allows us to better react to the needs of our clients and be more productive.
Extensions development process at Amasty
It all starts in the marketing and product management teams. Our marketing specialists together with product managers conduct market research and find the pain points our target audience are experiencing at the moment.
In case we don’t have a ready-made solution that covers the emerging requirements, it comes to the question of the development of a new extension.
At first, we analyze the market, current trends and increasingly popular tools in the area of e-commerce. Then we dive deeper into the Magento community needs and analyze the development path of Adobe. At this stage, we form the idea of a new product. We gather feature requests from our clients and partners and pass them to the product team…
Based on customer needs and e-commerce business challenges, product owners define a set of features to include in a product to create the best market fit.
Product marketing conducts a must-have part of the market analysis and user needs before the extension development. At this stage, we collect user pains and requirements, evaluate them to understand the priority of the new features. Based on the generated patterns, we design the approach to the product UX. It is this initial analysis that allows us to develop the extension the end-user is waiting for.
At this stage, product managers involve business analysts to maintain a competitive analysis of the new extension and gather the requirements that will later be included in a product. BAs also conduct customer development research. We speak to our clients and partners interested in enhancing their Magento functionality, and the result clearly shows the ways to make our products better.
BA is a vital link between the end-user and the product team. Our big part is to understand what the end-user’s business lacks right now for better efficiency, what problems it comes across, fully analyze the request and translate it to the language the product team speak at and make sure the realization of the solution is the most effective.
Once they are done, product managers and business analysts meet together with marketing specialists to further discuss the new product vision and requirements. The agenda includes high-level product specification, technical benchmarking, use cases, key features, estimation and understanding of what development team (catalog, backend, checkout, shipping, frontend, etc.) can take it into work.
Then the product gets into the roadmap.
Having reached a consensus on the question, a responsible product manager gathers the information into a project and presents it to the stakeholders.
Given the fact that the project is approved, the product manager discusses the architecture of the extension, resources and project timing with the technical lead of the development team that will write the future extension.
We set up a cross-team meeting where technical leads from different teams discuss the architecture of the future module, its basic functionality, and the logic of the work. As a result, the leads create a diagram of classes and database (if required).
Later their investigation goes to the development team where the team technical lead together with developers start to decompose the task with the view to eliminate potential risks.
After the decomposed tasks are passed to the refinement meeting where the team estimates them based on the volume, risks, and complexity.
Tech leads design the architecture of a new product taking up programming challenges, code review with a view to detect possible vulnerabilities, the module performance, and potential bugs.
After the technical evaluation, the product manager arranges a meeting with the project manager. When the product manager creates a product backlog he involves the scrum master and presents the vision of a new product and scope of tasks to the development team. Also, we monitor the progress of work and how we move towards the goal on daily meetings.
The biggest thing in any teamwork, whether it’s software development or baking cakes, is the synergy of all actors in the process. When people understand their part of the project and how they’re involved in the common cause, they contribute daily making both the released modules and the work better.
Our design team creates a prototype of the new extension even before it goes to development. We’re doing this to eliminate possible problems that can influence the product UX and reduce the development time at an early stage.
Quality assurance specialists are the part of a new development project from the very beginning, they participate in refinement and planning sessions. As soon as specific features of a new module are written using split branches in git, the functionality of each of them can be tested independently as required. Also, if needed the different functionalities are merged. When all the features are written, our QA department conducts regression testing to make sure all the features work as needed without adversely affecting the work of others.
On the testing stage of a project, we check the quality of our products and their conformity with the release criteria. This includes both functional and non-functional testing conducted by our manual QA specialists and QA automation engineers.
Once done, we inform interested clients and partners about the release and provide the information to the public. We constantly analyze clients’ and partners’ feedback to enhance the product and share the positive experience within the community.
Once the product is online, our support team assists in any case, whether it’s a presale question about module features or technical help with further customization of the extension. They analyze customers’ demands and update the product documentation in the website FAQ section and video guides.
We gather first feedback from our clients who’ve bought a new extension and supply our product teams with useful information from the end-users.
Although we’ve reached the final stage of a new extension development process, our work doesn’t end there.
As you know, Amasty offers life-time updates, which means that all the feedback we gather from our clients we later transform into new enhancements and features for the released product.
This was the intro article from the series of “How Amasty creates Magento extensions”. Next week we’ll dig deeper into our development process. We’ll tell you how we design the architecture for a new extension, how we review the code, what tools we use to make sure the code quality meets Magento standards.
So, stay tuned…
and ask your questions in the comments below!