Empowering Telecom Company with Financial Analysis / Decision-Making System

  • Duration: 4 years
  • Industries: Telecom Industry; Finances
  • Services: Product Development; Backend Development; Custom Software Development; Test Automation Services; Project Management; Software Integration Services; Software Maintenance and Support Services
  • Software Categories and Types: Integration Solutions; Workflow Management & Business Process Automation; Payment & Billing Systems; Analytics Systems, Data Analysis & Visualization; Expense and Cost Management Systems
  • IT Architecture Paradigms and Approaches: Test Driven Development (TDD); Enterprise Integration Patterns; Software Frameworks Development; Object-Oriented Programming (OOP); Architectural Patterns; Event Driven Architecture
  • Technical Expertise: Java Server Side Development; Test Automation; Continuous Integration & Continuous Delivery (CI/CD); Databases; Scalable Projects. Containerization and Microservices; Expandable Software Solutions (Plugin Systems)
  • DevOps Expertise: Linux Advanced; Advanced build organization; CI/CD Basics; CI/CD Advanced; Virtual Machines; Docker; Monitoring Systems
  • Technologies: Akka; Project Management, Collaboration and Bug Tracking; Apache Karaf; Jira; JUnit / TestNG; Robot Framework; IntelliJ IDEA; CI/CD Automation Servers; Jenkins; Git; Apache Maven; OWASP; Ubuntu; Data Bases; RabbitMQ; Apache Tomcat; TestRail; Apache CXF; Fiddler; Test Management Tools; Logback; TeamCity; Java; Apache Groovy; BitBucket (Stash); Operating Systems; PL/SQL; Linux; Testing Frameworks; NetCat; Couchbase; IDE; Drools; Allure Framework; Build and Dependency Platforms and Tools; JVM Languages; Backend; SLF4J; Mockito; Spring; Open Service Gateway Initiative (OSGI); Source Code Management (SCM); Cybersecurity; Test Automation; CI/CD and DevOps; Jackson; Open SSH; Web Frameworks; Languages, Protocols, APIs, Network Tools; Network Tools; Message Queues and Service Buses; Software Engineering and Management Tools; General Frameworks; Other Technologies; Confluence; Java Libraries; Web and J2EE Servers, Java Runtimes; NoSQL DBs; Logging Libraries; DB Languages; XStream; Apache HTTP Client
  • Team size (7):
  • 1 Project Manager
  • 3 QA Manual
  • 3 Backend

Project business component

thumbnail-image

MFS (Multifunctional Financial System) is a product that is part of the billing and finance group. This group provides business processes for calculating services, informing customers, creating customer notifications for telecom companies, mobile operators and other large customers in the telecommunications industry.

The MFS product is designed to make decisions about the formation of control actions on external systems based on the analysis of financial data and key customer characteristics obtained from various data sources.

MFS functions:

  • Managing accounts receivable,
  • Making decisions: services management, notifications management,
  • Managing a subscriber’s life cycle,
  • Providing quick access to data.

MFS is a system for tracking and analyzing billing and financial information for customers and subscribers and responding to this information by interacting with third-party senders/recipients (products or external systems).

The product in the implemented configuration (which can be expanded) solves the following specific tasks:

  • Controlling and decision making on connecting/disconnecting various features/services for subscribers in a large billing system;
  • Making decisions on B2C and B2B customers’ notification if there is a wide variety of conditions, such as: overdue accounts, accounts receivable, loan repayment period is coming to an end, scheduled notification at regular intervals.

Project Specification

The project includes three applications:

In the implemented configuration, the MFS receives RabbitMQ messages from multiple senders in a large billing system.

An analysis of incoming information from external senders using business rules written in the Drools framework takes place. Then, in accordance with the implemented business logic, the MFS starts managing the features/services of subscribers, as well as sending requests for the creation/removal of various notifications (sms messages, email, fax, phone).

After making decisions, MFS sends the RabbitMQ response messages to the corresponding external products. At the next stage, the product saves the changed business objects (subscribers) to the local NoSQL Couchbase database, which serves for quick access to subscribers.

Also, MFS has a special tool for restoring/updating the NoSQL database in case, for example, starting in a new environment and/or restoring after an accident.

Our responsibilities

The following activities were carried out by our team in terms of development:

  • Development of technical specifications accordingly to the requirements of functional specifications, tight work with customer representatives (business analyst, representative of the product owner) and directly with the customer.
  • Active and regular interaction with the technical support team, joint analysis of problems and search of possible solutions.
  • Realization of internal business logic in the form of open and accessible for Drools rules changes.
  • Working with Oracle remote database, downloading data from Oracle to Couchbase local NoSQL store.
  • Integration of many related products using the RabbitMQ message broker; the product is focused on processing events from related systems.
  • Working with Akka, building chains of actors (flows), each of which is aimed at its kind of work.
  • Using Zookeeper to store and manage the configuration of the environment.
  • Participation in grooming, meetings, architectural discussions on the product.

The following activities were performed by our team in the testing part:

During the work on the project, QA team created more than 3000 autotests.

The technologies that were used to create and run automated tests: Java SE + JDBC, Spring, XML, JSON, etc., Robot Framework, PostgreSQL, Oracle, TestNG, Allure Framework, CI (Jenkins, TeamCity, VRA), Maven, Git.

  • Creating autotests for various new functionality, in particular:
  • life cycle management of subscribers;
  • customer debt management;
  • notification of B2B clients via various communication channels;
  • obtaining statistics on the product using the Java Management Extension (JMX) technology.
  • Creating test cases, test suites, test runs in TestRail.
  • Updating and refactoring of autotests on previously created functionality.
  • Participating in grooming, meetings, architectural discussions on the product.
  • Testing various functionality:
  • running autotests and analyzing the results after the run;
  • registration of detected defects in JIRA, testing patches;
  • manual testing of functionality, where covering with autotests was not possible;
  • integration testing of the product together with other products on the clones of the customer’s industrial stands;
  • testing product documentation, as well as functional and technical specifications for completeness, accuracy, uniqueness, consistency;
  • controlling the product delivery to the customer.

Cybersecurity activities

This product is related to the storage of our customer’s MFS system users’ financial data, so special attention was paid to developing a solution that is resistant to hacking attempts.

Our team carried out an OWASP audit of the created product’s functionality. With the participation of JazzTeam specialists, guidelines and checklists for its developers were implemented that contained criteria for writing code in compliance with cybersecurity rules. We then checked the compliance of the existing code against the established checklists and identified areas for its improvement. Separate sprints and epics were allocated to dealing with them in the project. As a result of this work, all identified issues were resolved and the customer’s product was successfully certified.

This experience was then successfully applied within JazzTeam: methodologies, checklists and guidelines for developing secure solutions were introduced. We have compiled a set of basic information security literature for our developers.

We always take into account typical problems and risks related to information security. Our company has implemented on a corporate level principles and standards for secure development and combating SQL injection, cross-site scripting and other system-level vulnerabilities.

Technologies

Stack: Groovy, Java SE 7, Java SE 8, Spring, Apache Maven, Apache Tomcat.

Infrastructure: Jenkins, Git, IntelliJ IDEA, Teamcity, Stash, TestRail, Jira, Confluence.

Frameworks: RabbitMQ, Drools, Akka, Apache Karaf, Apache Zookeeper, Apache CXF.

Test Automation libraries: Robot Framework, JUnit + Mockito, TestNG, Allure Framework.

DB: PL/SQL (Oracle database), Couchbase.

Other libraries: Apache HTTP Client, Logback, Slf4j, Jackson, Xstream, Fiddler.

Screenshots

Project features

Work on the product in a complex multicomponent system with our team engagement was carried for more than two years.

A number of features that accompanied our work on this project:

  • Flexible development according to Scrum methodology;
  • Potentially Shippable Product Increment;
  • The team’s work in the format of Feature team, that means:
  • separated roles of a scrum master and a team lead;
  • planning with the help of planning poker;
  • carrying out grooming during the analysis of new functionality;
  • holding daily status meetings;
  • demonstration of the executed works on Demo days and Sprint reviews;
  • iterative approach: work on two-week sprints;
  • regular retrospectives on sprints completion or emergency situations and problems;
  • preparation and shipment of patches/releases in accordance with regulations;
  • Mandatory implementation of code cross-review;
  • Mandatory compliance with Code style;
  • Release engineer makes great demands on the team to the quality of the delivered product, when preparing and delivering releases to the customer;
  • Compliance with the requirement to cover all the new functionality by test cases;
  • Work with territorially distributed teams and divisions of the customer.

Project results

Project results
Project results
  • The system is fully developed and used by several customers, including one of the largest mobile operators in different regions;
  • At this stage a new functionality development is in progress;
  • Support for the current functionality is being implemented;
  • Work on customizing solution for other customers (mobile operators);
  • The product works with subscribers’ bases around the clock. The size of databases stores about tens of millions of unique subscribers.

Company’s achievements during the project

  • For 2 years the number of our team members increased from 1 test engineer to 7 specialists;
  • We successfully fulfilled our potential as a team in the format of Feature team work;
  • Our team provided a full cycle of iterative development: daily stand ups, groomings, sprint reviews, retrospectives, weekly demos to the customer; analysis, development, testing, regression and integration testing, preparation and delivery of releases or patches;
  • We analyzed and implemented a large number of new business cases;
  • Our engineers showed and maintained a high level of responsibility, self-organization and self-learning;
  • New technologies (Drools, RobotFramework, ELOG) were learned;
  • Product quality support was performed at a high level by increasing the coverage of the code (Unit tests), business cases (Autotests), conducting integration tests to verify the complex work with a set of related products;
  • 3312 autotests were created during two years, large number of tests was updated;
  • All tests were stabilized during the optimization of regression testing;
  • Our team took part in the development of a new test architecture;
  • We took part in the transition to a product distribution;
  • Our engineers acted as initiators of improvements in the project processes;
  • We took part in a community of scrum masters;
  • We have developed a program for introducing a new person into the project;
  • After more than two years, at the time of publication of the article, our cooperation with the customer on this project continues.

Testimonials

Alexander Zolotarev
Head of Laboratory, Billing and Finance, Nexign JSC (earlier Peter-Service Inc), Software Development Company for the Telecommunications Industry

"We have been working with JazzTeam company for many years. During this time, the JazzTeam engineers have become for us not only exceptional developers and QA engineers, but also true partners and friends.

Their ability to identify hidden problems and eliminate them quickly and efficiently. In my opinion, this is a natural component of any project in which JazzTeam participates.

Stable and confident work of the team, reasoned actions, clearly posed questions - all that makes JazzTeam the professionals in their field.

I particularly wish to commend the management team, which has set a high level of responsibility from the very beginning: they always not only listen to our requirements, but also hear them, and implemented everything exactly in the form that we need and that is the most important thing.

Cooperation with JazzTeam is a pleasure, strong friendship and gained boundless trust, that was fully gained by the guys’ work. I sincerely believe that our effective cooperation will be continued. I want to thank every member of the team and wish them good luck and further professional success!"

Related projects

Recent Work

    Contact Us

    What happens next?
    • 1

      Leave your project request. We will contact you and schedule a call.

    • 2

      Signing of the NDA to ensure the project info confidentiality.

    • 3

      Negotiation of your request and the required services.

    • 4

      Team forming, coordination of workstages.

    • 5

      Contract signing and project start.