Case: integrated a third-party software product

Problem: A large telecommunications company ordered the software product development from a contractor. The contractor hoped that after the main development phase he would support and refine the solution, but it didn't work. The contract was cancelled and the code base with all instructions was transferred to two development teams from their staff to develop the project that the contractors were doing.

The requirements increased over time, it turned out that the chosen technology was not suitable, the developers did not have sufficient competencies, and, in general, the managers and architects who accepted the product from the contractors fuck-up. Feature development took unreasonably long, testing wasn't complete, quality suffered, deadlines constantly dragged on, and people reworked.

Analysis: We studied the code, documentation, requirements, process and resources, and estimated the labour costs.

Solution: Justified the need to switch to a familiar stack, and convinced the client to rewrite the basic functionality of the solution in the form of a scalable microservice. The development took two months, the full-time team coped, and everything worked.

Result: The new solution ended up on a familiar stack for the entire parent organization, which means that almost any developer could extend the solution. The application turned out to be testable, becoming possible to write unit tests (hello groovy and java integration). Development and support became measurable and began to meet the expected timelines.