Telecom Software Development Company.
The system of inventory and management of telephone numbers, IP addresses and international identifiers of mobile subscribers. The application is a single solution for recording equipment, phone numbers and SIM cards; execution of business processes of SIM cards manufacturing, defects assessment and removing from service; creation, cancellation and modification of starting kits parameters.
Within the project, JazzTeam specialists became a part of an international distributed team. We were responsible for the development of the system’s frontend part (Angular component of the project), its manual and automated Unit-testing. Our team also had to integrate the application with the customer’s centralized business process management system, namely, to combine the UI of the developed system with the UI part of the completed application.
- During the development, the requirements for the system’s UI part were constantly changing, as well as the back-end services specifications.
- The project’s UI should have had a modular structure to ensure asynchronous communication with the back-end: for example, dynamic loading of new data into tables.
- The JazzTeam specialists had to constantly be in sync with the customer’s back-end development team. To accelerate the work and ensure the independence of the teams, server-side emulators were constantly used on the front-end development side:
- Creation of an interactive system interface using the SPA (single page application) approach. Data routing, loading and rendering should be performed within a single page.
- After the UI part of the application is created, it should be integrated with the UI part of the customer’s centralized business process management system allowing to generate and track the execution of SIM cards manufacturing, defect assessing, decommissioning and other tasks.
Approaches and solutions
- Automated Unit testing of JS code. The initial goal set by the customer was to achieve 70-75% code coverage by Unit tests in order to ensure the stable operation of the application’s UI part. To track the process of achieving this goal, our engineers used the Karma test coverage calculation utility, which allowed to constantly monitor the percentage of code coverage by Unit tests. The Jasmine testing environment was deployed to run autotests. As a result of the approach applied, the code coverage by Unit tests was more than 75%.
- Scrum/Agile process organization. Due to frequently changing requirements, our manager initiated daily Scrum meetings (stand-ups). Every 2 weeks we were arranged demonstrations of new functionality, helping to establish a common understanding of the project’s current status among all team members. Also, we adopted regular sprint planning and retrospectives to discuss critical issues related to improving the development process. All of this contributed to the synchronization and effective communication among the distributed team, that allowed to achieve fairly rapid progress and mutual understanding among all project participants.
- Engineering approach to development. To combine the application’s UI part created by our team with the UI part of the customer’s centralized business process management system, we performed refactoring, during which the overall AngularJS project structure was developed. In addition, the code base of the applications was aligned to a common style. In this task JazzTeam engineers applied their extensive experience and knowledge in legacy code re-engineering.
- Application manual testing with careful preservation of scenarios and their reuse during autotests creation. Load testing was performed by generating numbers for SIM cards from different regions to a single server. We also performed functional testing of the system. In addition, we developed test case scenarios for writing automated UI tests. Later, these test cases were used by the customer’s automated testing specialists.
Results and achievements
- The JazzTeam specialists successfully completed their tasks working in a distributed team in short iterations and a tight time schedule. Our professional management became the basis for organizing the effective development process on this project. Due to the competent approach to project management, the team was constantly in sync and promptly responded to changing requirements. JazzTeam specialists quickly mastered the technology stack defined by the customer at the beginning of work. All this made it possible to implement a complex long-term project with high quality and on time.
- JazzTeam specialists prepared lots of visual interfaces for the application. Also, the two applications were successfully merged into a single system. It allowed to automate the entire cycle of business processes for the presale preparation of resources for the shipment of starter kits and exchange SIM cards to dealers, which fully satisfied the end customer’s goals.
- The product’s UI part works stable. The team was able to achieve a high rate of code coverage with Unit tests due to good automated testing traditions: excellent knowledge and regular experience in Unit testing is the standard of everyday work of JazzTeam engineers.
- Working on the project, JazzTeam specialists used a proactive approach adopted as a rule in the company. Our team suggested several improvements to increase the scope of some UI components, which were approved and implemented after discussion with the customer’s team. The automated Unit testing best practices were transferred to the customer and retained for use within our company: based on the results of the product stabilization work, we created a Software Development, which is used for training and immersion of new specialists in a project.