Revitalising Insurance Operations: A Comprehensive System Overhaul for Stability and Efficiency

One of the leading insurance companies in South Africa required a completely new system for sales, collections, and administration for their micro-insurance portfolio. Their previous system was riddled with legacy bottlenecks and limited support, as well as astronomical licensing fees due to the scarcity of support and resources for the technology used. The rewrite had gone poorly, and we were tasked with taking over and recovering the project, ensuring it could go into production with the necessary level of stability, quality, and resilience one would expect from a new system.

Challenges:

  1. The system had been partially built but lacked proper design and implementation patterns, leading to slow system response, instability, and inconsistent/non-functional implementation.
  2. The team was scrambling to align themselves with the scope and deadline and find a way to deliver a system that could resolve all the permutations.
  3. The system behaved inconsistently, resulting in a growing backlog of bugs and issues that frequently re-occurred.

Implementation:

  1. Technology Stack Consolidation: The technology stack had already been defined, so our priority was to consolidate the technical estate and rebuild each of the layers using proper design principles such as SOLID, n-tier, and state management. We identified all the services and REST endpoints that were used and created a template for how these services should be defined and implemented. We rewrote all the existing services to conform to this template, introducing concepts like validation, exception handling, caching, and standardisation.
  2. Front-End Optimization: We identified the core bottlenecks on the front-end and integration pieces and set out splitting and optimising the components. We introduced advanced bundling techniques and lazy loading to the front-end, as well as improved routing, promoting reuse and componentization of repeated pieces of functionality. We then implemented various interceptors to handle navigation, error, and network events consistently.
  3. Development Lifecycle Improvement: We improved the development lifecycle by introducing branching strategies, code review, and an approval process that helped us catch and resolve issues preemptively while ensuring stricter code standards were enforced.

Results:

  1. Refactored over 130 services into a consistent standard.
  2. Reduced the initial page load from over 20 seconds to sub-second loads.
  3. Reduced the main front-end bundle from 18 megabytes to 9 megabytes.
  4. Cleared the bug backlog and introduced stability and resiliency.
  5. Improved deployment time and confidence in quality.

Leave a Comment

Your email address will not be published. Required fields are marked *