Project summary: Business process management for customer service is a system, designed to automate the client service business processes in telecom operator companies.
Business process management performs the following functions for customer service:
- Workflow automation.
- Setting the filter of client appeals by specified parameters.
- Getting statistics and generating reports, creating arbitrary reports, saving the report to a file or exporting reports in various formats.
- Performing group operations on processing appeals.
- Ability to define the conditions of displaying attributes in various processes of the route
- Creating notes for clients, subscribers and contact persons.
- Monitoring of appeals processing; the ability to track the current state of appeals at any time.
- Administering queues of appeal processing.
- Automatic archiving of appeals at the specified time.
- Registration and processing of system problems.
The project consists of frontend and backend parts. and our responsibility was to develop backend part of the project.
Backend was implemented on the basis of REST API services (Spring MVC), automatic build was performed using Maven, RESTful web API and XML/JSON serialization-deserialization were made with help of Restlet, logging was carried out by Logback. Unit testing was implemented using JUnit. MyBatis was used for ORM/JDBC. Apache ZooKeeper was used as a service name and also for configuring access to external services/applications.
Our team worked on the modernization of the system which had already been used by the customer. We developed Open API interface. Open API is an open communication protocol that is available to third party developers and allows solving any internal business problems of communication operator. Switching to Open API within the existing system is justified by the following requirements:
- Integrating the system into external systems.
- Creating and editing appeals to the system on the basis of the parameters received from external systems.
- Moving appeals on the route within the system on the basis of external systems events.
- Sending notifications and escalations.
Technologies: Spring, Apache Camel, JUnit, Jackson, Log4j, SLF4J, Logback, Java servlets, Mockito, MyBatis, Restlet, Liquibase, Hibernate, Maven, Oracle database, Apache Tomcat, Apache ZooKeeper, Confluence, Jira, Stash, TeamCity, Git, Oracle Client, RubyInstaller Development Kit (DevKit), Bundler (RubyGems), Ruby.
- Participation in the development of the complex multicomponent system.
- Using iterative development approach - two-week iterations, participation in retrospectives.
- Participation in the daily stand-ups and sprint planning.
- Work in a distributed team (3 cities, 2 countries), with highly qualified professionals - Senior level developers.
- Help in preparing for the weekly demo to the customer and participation in this demo.
- Regular cross code review.
- Within the work on the project the new features were developed, a number of problems was fixed, the automated tests were written, the functionality was tested.
- We have performed: analysis of existing implementation, code review and refactoring; proposals for improving architecture were announced.
- As part of work on the database the finalization of tables, change of fields, improvement of procedures, modernization of functions were made.
- All customer requirements have been satisfied. In addition, we have made proposals to improve the architectural solutions that have been adopted and implemented.
- Implementation of the developed client management system in business processes of many telecom companies will allow to solve the problem of operators activities automation in part of receiving and processing of client appeals, and will help to maintain the telecom operator's client loyalty.
- Connection software, hosted on different locations, through Open API allows to integrate the work of different data centers, distributed offices or branch offices.
Company's achievements during the project:
- Made a number of proposals to improve the architecture.
- Performed tasks successfully and in the set time frame, the customer repeatedly gave positive feedback on our teamwork, noted the high speed of development and excellent code quality.
- Carried out the work according to Scrum methodologies.
- Customer recommended our team to his colleagues.
- Took an active part in the discussion and decision-making on development with other teams.
- Established effective interaction with a remote team of developers and QA engineers.
- During the work on the project, our team improved their extra skills in Apache Camel Java framework.
- Successfully solved a number of problems associated with the optimization of the existing code and writing new functionality.
Aleksandr Polunov, Сhief of CRM solution development group, Peter-Service Inc, Software development company for Telecom industry, Russia
I would like to commend the work of the JazzTeam team members on our project during solving complex problems, their serious and thoughtful approach to problem research, their active participation in the architecture update, their advice and assistance to our employees. It is also worth noting that the guys offered non-trivial solutions and were always in touch.
Separately, I want to mention the constant JazzTeam’s managers involvement and efforts to support employees. In fact, it is quite a unique phenomenon, none of our other contractors have such participation from the management side.
We have already recommended JazzTeam engineers to our company colleagues. And if on our project the need for assistance arises again, it is likely that we will engage them once again, since there are no serious claims, and their code is good.
Good luck in all affairs!