Development processes are a given in every IT business conversation. Their optimization is the never-ending struggle for any company willing to shorten the time from the ideation to release of an end product.

Today we’ll dwell on how we create epics, write use cases, decide on module architecture and check the code for compliance with Magento and in-house standards.

Well-set epic saves time

The development of a new extension starts with a product owner who creates an epic following the results of the marketing assessment of module demand that we’ve covered in the intro article.

Given created, the epic is split by our business analysts into user stories to further inspect each of them separately.

Ultimately, we receive the following outline:

  • the main functionality and business logic of the new extension including diagrams in BPMN and/or IDEF notations;
  • a list of features for the MVP (minimum viable product);
  • a list of features for the MMP (minimal marketable product).

Then the epic is passed to the technical lead of a responsible development team who will reason out solutions to the architecture. The technical lead conducts a risk assessment study for each of the given options to weigh their strengths and limitations.

After that, the epic hits the architecture meeting attended by all development teams’ technical leads. The objective of the meeting is to draft the best possible architecture solution for the new product. The attendees discuss the options offered by the development team technical leads, find the vulnerabilities and solutions to make the module extendable with new features, secure and well-supported.

Given the architecture adopted by the team, the epic gets onto the team board where is further decomposed into simpler tasks under the guidance of the tech lead during the refinement session. Thereafter, the task is taken into development.

Important components of the extension development process

  • We figure out the testing strategy during the refinement meeting to prevent bugs at the last stages of the development. The strategy includes all types of automated tests, functional and non-functional testing like security and performance check.
  • According to our in-house standards, we cover all the new extensions with unit tests, MFTF tests, and integration tests. Thus, we have one testing logic for all extensions that allows us to make sure the developed product is ready to use.
  • We resort to cross-team code review during which all team members review each other’s code. This allows us to ensure the code quality and increase the employees’ competencies.
  • We use PHP_CodeSniffer of the latest version to make sure our code fully complies with the latest Magento standards. Moreover, we’ve set the strictest level of bug severity detection, equal to 1, which indicates we follow the most stringent requirements for the quality of the code we write.
  • Beyond that, we run the code through PHPStan which lets us reduce to a minimum any code typos.
  • Also, we launch Magento (Magento 2.2.0; Magento 2.3.2; Magento 2.3.4) installation together with the extension to verify the vanilla features of the platform weren’t affected by the changes we’ve introduced.

Acceptance criteria for the released extension

We take care of the high quality of our products and check them for compliance with our in-house technical and business requirements. Our standards include the examination of the extension’s functionality, stability, and compatibility.

Our technical specialists double-check our extensions are secure and not vulnerable to any known online attacks. All our extensions support GraphQL. We take care of the UI/UX testing and do the utmost to release the extensions bug-free.

Here at Amasty, we pay particular attention to the extension compatibility to make sure it won’t cause any conflicts with Amasty_Base and all the related extensions with dependent functionality, as well as Magento latest versions.

That’s it for today! In the next part, we’ll tell you about our testing approaches, how we check our extensions are ready for release and smooth usage by end-users.

Still have questions? Feel free to leave your questions in the comments below.