- Shortening application build time by 45% - saved 100+ development hours each month
- Prepare automated migration of the largest Swedish insurance providers to Sapiens’s Journey & Form Composer with its custom components, flows, and complex business logic.
- Solve the most critical performance issues pointed out by global clients.
- July 2021 - May 2023
- Web Application Development
- Technical Audits
- Quality Assurance
- Product Ownership
- Tech Lead & Software Architect
- 3 Full Stack Developers
- Automation Engineer
- Product Owner
About the project
- property and casualty,
- pension and annuity,
- financial and compliance,
- workers’ compensation,
- and financial markets.
It’s made possible by using the library of ready-to-use components and orchestrating forms with the processes, including external data sources and API integrations. This powerful tool allows non-technical users to design the entire customer journey without programming a single line of code.
Why did Sapiens choose to go with Vazco?
What challenges did the client face?
At the very beginning
Handling and integrating custom components of one of Sapiens' most prominent clientsCreate a reusable system to plug in any set of custom components.
Optimizing product architectureTo ensure the seamless scalability of the system, engineers were charged with structuring the architecture and streamlining the deployment processes.
Transformation from multirepo to monorepoAdvisory and implementation of a codebase transformation for efficiency gains.
Along the way
Fine-tuning application front-end performanceIn order to optimize application performance and reduce battery drainage, the team was responsible for optimizing the front-end part of the system.
Setup of the CI/CD processes with automated library publishingAdvisory and implementation of automated processes for a streamlined development cycle.
Design architecture for meta-data modelsThis tool helps create and manage different versions of advanced models that work with underlying data. It enables seamless integration with existing systems.
How did we navigate the client for success?
When Sapiens approached us to audit their new tool, Journey Form Composer (JFC), their purpose was to assess its extendability, scalability, and performance. They also wanted to evaluate the feasibility of replacing its predecessor, Journey Manager, for a major insurance client of Sapiens.
Audit recommendationsWithin 2 weeks, we presented the audit report to key technical stakeholders in the R&D department. The report acknowledged the feasibility of migration while identifying gaps that needed addressing to bring JFC on par with the previous tool. It also highlighted critical concerns about data consistency, overall maintainability, front-end application performance, and Developer Experience.We provided a list of recommended actions with priorities and effort estimates. The stakeholders appreciated the outcome and invited us to join an R&D development team to implement the audit recommendations.
Custom Components and migration roadmap of one of the biggest insurance providersOne significant business challenge our team tackled was enabling JFC to support custom components, a common need for Sapiens' customers. Previously, JFC only allowed predefined components. Using a specific Sapiens client as an example, our Product Owner and Tech Lead devised a comprehensive plan:(1) Create a bridge for custom components(2) Migrate the client's components(3) Migrate entire journeys(4) Develop a tool for automating the migration of all live journeys.Our entire development team estimated the plan and outlined it as a roadmap with four milestones.
The first milestone was completed in three months, delivering a universal architectural solution for integrating custom components into JFC that will fit any client's needs. Once plugged in using the bridge, they become available in the drag & drop toolbox like all predefined components in JFC. This solution was documented for all developers at Sapiens.
Over nine months, we achieved all milestones, enabling Sapiens to confidently communicate migration readiness to their critical insurance provider and continue progress independently.
Applying critical improvementsMeanwhile, our other developers concentrated on implementing audit recommendations to enhance the overall Journey Form Composer. We started by transitioning the entire codebase from a multi-repository structure to a mono repository (consolidating 40+ repos). This change had a substantial positive impact on the development team's speed and efficiency. Thanks to a streamlined code development and maintenance process, it notably hastened the delivery of subsequent features.We also introduced a system for migrations from scratch, enabling Sapiens to support various client product versions. Additionally, the introduction of database transactions proved to be a valuable enhancement. In terms of DevOps, our team established a comprehensive application building pipeline using GitHub pipelines. We ensured a smooth skill transfer to Sapiens' developers over a few months, enabling them to handle any issues independently.Implementing build caching with NX Cloud, introduced by our team, saved hundreds of hours of computing time for GitHub Actions and development efforts. This efficiency translated to substantial monthly financial savings for Sapiens.
End-to-End tests covering 100% of the applicationUpon joining the project, we observed a scarcity of end-to-end (E2E) tests, which posed a notable product risk. Given the complexity of Journey Form Composer and its sizable development team, the absence of E2E tests integrated into the CI/CD process left room for potential bugs. As manual testing had led to substantial overhead, our QA Automation Leader devised an E2E testing strategy.The aim was to achieve full feature coverage with E2E tests, prioritizing critical use cases initially and progressively moving to less frequently used features. The goal was to reduce manual testing to only new features in each sprint, eliminating the need for regression testing. With Development Manager's approval, the QA Automation Engineer led the planning, guided other QAs, provided estimates, and played a central role in the execution of test development.After a year, the comprehensive application coverage was successfully achieved through E2E tests, a significant milestone documented for future reference.
Successful team augmentationEfficient team augmentation was a pivotal aspect for Sapiens. Our developers seamlessly integrated into the JFC development team, aiming to bolster Sapiens' developers' expertise and seniority. While initially focused on specific challenges (custom components and client migration) and product improvements, our developers immediately embraced the Scrum process, its ceremonies, and the organization's tools.From day one, they actively engaged Sapiens developers, prioritized transparency, and facilitated knowledge transfer. Our Tech Lead swiftly evolved into a crucial consultant and mentor for the team while our experienced Product Owner helped to fine-tune the Scrum and Software Development Processes.Following the implementation of audit recommendations and client migration, our collaboration with Sapiens' team intensified as we advanced the product roadmap. To foster closer collaboration, we divided into two mixed sub-teams, reshuffling every two months to encourage knowledge exchange between developers.
Metadata architectureOur recent significant achievement for Sapiens was crafting an architecture from the ground up for constructing intricate forms using metadata models sourced from other Sapiens services. This marked a crucial business milestone, allowing Journey Form Composer to generate forms tailored to specific received data automatically. Prior to this, form composition was limited to drag-and-drop UI.We brought to the table valuable insights due to experience gained while building uniforms and Forminer, which solved a similar challenge in their foundation. Our Architect collaborated closely with business stakeholders and technical leaders, gathering requirements and analyzing various data models to propose a solution. The entire development team swiftly embraced this solution.
- ~1500hsaved development time in total thanks to migration to monorepo
- ~800hsaved computing time of Github Actions each month thanks to cashing of build and lint steps
- ~100hsaved development time each month thanks to local cashing
- ~45%shortening application build time
- ~80%accelerate page rendering time for the most advanced forms
- ~90%reduction of E2E tests flakiness
Delivered key functionalities
Vazco expert opinion
- A large number of applications to activate
- Each change requires several PRs - the checking process is protracted and unstable
- Each application has to be configured separately
- Publishing new libraries requires manual effort
- Provisional CI, non-existing CD
- No E2E tests
- Limited unit tests
- Inefficient development processes
- Management processes adapted only to smaller teams (less than 10 members)
- Library changes need to be published before they can be tested
- One command to enable all applications
- One feature means one PR - easier to check, test, and rollback
- Unified configuration - ease of implementing modifications
- Publishing new libraries is a unified process that fires automatically - no effort required
- Rich CI, automated CD
- 800+ E2E tests that run automatically on CI, 100% of application covered
- Growing number of unit tests with 'threshold' checking tool - raising test coverage to over 40%
- Highly efficient development processes, including (HCR) Hot Code Reload
- Processes tailored to work in large teams
- Local library testing and seamless developer experience thank so symlinking of applications & libraries