Provided services
Product Development, Backend Development, Frontend Development, Test Automation Services, Manual Testing Services, IT Consulting, Project Management, CI/CD Implementation & Modernization. DevOps Services, Early-Stage Innovation, R&D Services, Software Reengineering, Refactoring and Modernization. Cloud Migration, Software Integration Services
Client
Our client is an international company providing software for distributors and wholesalers all over the world.
Product
The client’s product is B2B software platform for inventory and order management, intended for distributors and wholesalers, as well as for e-commerce, and has the following basic configuration:
- An adaptable workflow for any order management model.
- The ability to process and invoice for multiple orders in 8 clicks.
- An advanced real-time inventory tracking system.
- Supply chain visibility.
- Sales forecast tracking.
- Multicurrency.
- Online payment processing.
- Any type of reporting.
- Integration with major trading systems (Amazon, eBay, Alibaba, etc.).
- Scalability and customization.
- Plugin system.
Challenge
The history of the project goes back to the early 2000s. At that time, quite a successful architecture, based on XML modeling of business processes and entities, was designed.
This architectural concept withstood the test of time, as well as scaling the product to millions of completed transactions and providing access to hundreds of customers.
JazzTeam engineers joined the project in 2019. By this time, numerous technical debts and shortcomings appeared in the project, which blocked the obvious advantages of the established architecture:
- A system with a lot of functionality and modules was difficult to scale.
- In the absence of automated testing, it was impossible to control the stability of the product.
- Attempts to make changes and develop the product caused release delays and bugs in the production stage, which negatively affected the customer’s business.
- The development and delivery processes were intense and stressful for all participants.
Project context
JazzTeam became the core workforce in client’s internationally distributed development team.
We consulted stakeholders on the processes and the dedicated team establishment for the project implementation, as well as provided guidance to the entire IT department.
JazzTeam challenge
Together with the client, we agreed on the following scope of work that would help solve the technical debts:
- Develop new features and modules.
- Implement technical solutions, including:
- Migration to Java.
- CI/CD implementation.
- Business processes analysis.
- Implementation and maintenance of QA Automation.
- Implementation and development of Unit-tests, including Blackbox testing.
Solution
JazzTeam experts suggested the implementation of this complex project in several phases that emerged into the following subprojects:
Consulting for stakeholders and technical leaders
By providing consulting services for client’s stakeholders and technical leaders we helped our client to ensure alignment and smooth communication throughout the project. It allowed the company expand the team, increase sales revenue, and significantly eliminate technical debts. See more
Complete CI/CD Implementation
Complete CI/CD implementation helped our client to automate the processes, bring transparency to operations, and allowed for more efficient and reliable product releases. See more
Migration from .NET to Java
Migration from .NET to Java aimed to modernize the technology stack and improve performance and scalability. The project was successfully completed within an expected timeframe. See more
Phase 1. IT consulting and business analysis
During the consulting phase, JazzTeam representatives analyzed the current quality of product development, the composition and speed of the team, and other criteria.
Based on our findings, we advised the product owners to augment the team with our professional QA and QA Automation engineers. The offer was approved, and after a few months it became obvious how the quality of the product had improved.
During a thorough audit, we introduced our Business Analyst to the project with relevant expertise who gathered needs and requirements from product partners and provided the necessary project documents, including:
- DoD (Definition of Done).
- Acceptance Criteria
- Risk analysis.
- And a full-fledged project estimation.
Our expert implemented a task estimation process and introduced potential labor costs analysis for each project task. It allowed developers to break down their tasks into subtasks taking into account possible risks.
This work helped to streamline the development planning process and to make planning more transparent to all team members and stakeholders.
Phase 2. Agile processes establishment
We introduced agile development rituals that were missing in the customer’s project. They were maintained during the whole project development process and ensured a transparent reporting process, including financial reporting.
- Daily stand-ups for a distributed team helped increase the level of synchronization between experts, reduce misunderstandings, and achieve a supportive atmosphere in a team.
- Retrospectives helped to improve processes and emphasize obvious problems.
- Features demonstration and knowledge sharing helped a team implement needed functionality faster with fewer bottlenecks.
Phase 3. Migration to Java and CI/CD implementation
The additional .NET layer added architectural complexity to the product. It caused the increasing onboarding time for new project members, prevented the project from evolving in a unified architectural layer, and hindered containerization. Migration to Java from the .NET layer would help to cut hosting and CI/CD implementation costs.
A dedicated team of JazzTeam engineers implemented a product version without the .NET layer that allowed the team to focus on the Linux platform. It helped to reduce the cost of hosting and technical support by 50%.
Complete CI/CD processes implemented by JazzTeam experts accelerated the frequency of product delivery and improved the quality of delivered functionality.
After our analysis of the client’s MDD (Model Driven Development) templates, we suggested automating build processes and regular quality checks. The CI/CD implementation and deep code refactoring of the project core resulted in a notable breakthrough for the client’s development team, as we excluded manual building.
Also, by leveraging JazzTeam’s expertise in usability and frontend development, we successfully modernized the frontend part of the product despite its heavy backend integration.
Phase 4. Quality assurance
Before JazzTeam came in, testing processes on the customer’s project were done spontaneously, and the role of QA was performed by the developers themselves and one of the product owners. In order to speed up the development process and reduce delivery costs, we have implemented a full-fledged Quality Assurance (software testing) phase in the lifecycle of the project.
JazzTeam QA experts created a framework for writing BlackBox tests that allowed developers to check the complex chains of actions of the system. While doing this, there is no need to dive deep into the internal structure of the code. Tests run as part of regular project builds: on schedule and on demand.
Unit tests covered all new code and most changes to existing legacy code.
We also created a framework for quick writing and supporting a lot of GUI autotests at minimal cost.
Result
JazzTeam engineers have developed and delivered dozens of new epics and user stories. At the same time, a deep refactoring of the existing code was carried out and the coverage of the developed functionality with tests (GUI autotests and unit tests) was provided.
We established partnership relations with the project stakeholders and reorganized the structure and processes in the development team.
During this project, we implemented and maintained Agile development principles, and provided a transparent reporting process (incl. financial).
The following value our client’s business achieved after cooperation with JazzTeam:
- Integrated automated testing helped our client reduce development costs and increase features delivery speed.
- Code refactoring and migration to Java made the ERP solution maintainable and scalable, with increased productivity by 60%.
- Integrated Agile development process simplified and improved communication between team members, which led to higher productivity and efficiency of the team.
- A refreshed User Interface simplified the usability of the system, which was proved by positive feedback from the system’s users.
Technologies
Stack: Java 7/8, Java Servlet & JSP, Apache Tomcat, MySQL, JDOM, REST API, XML/XSLT.
Frameworks: Avalon Framework, XML-RPC, dbPool, JasperReports, MyFaces, JavaMail, PD4ML, PayPal, Gdata, jQuery Mobile.
Architecture: Model-driven development, event-driven architecture, CI/CD.
Testing (integration and load): JUnit+own framework.
Infrastructure: AWS, Bitbucket, Jenkins, Liquibase, CloudWatch.