DKV Belgium - Party Master Data Management

August 2018 till January 2019
Content:  
     

Management Summary

The Belgian branch of the Deutsche Krankenversicherung AG (DKV) is the market leader for the Belgian market when it comes to private health insurance. It has existed since 1964 and offers a wide range of health insurance products to both individual and corporate clients. In order to reduce technical debt and rationalize their IT setup, this project will consolidate their existing solutions surrounding master data management for customer/party data and upgrade to the new technologies and best practices available in the Java community.

The goals of the project are oriented towards Operational Excellence and Technical Rationalization with the following objectives in mind:

  • Correct distribution about customer data to all applications in the DKV landscape
  • A reduction of maintenance work as the customer data is no longer distributed over multiple systems
  • A reduction in data synchronization between systems, rendering the data less error-prone
  • Easier integration with the customer data as it is being built with more recent technologies
  • A reduction of production incidents and an increase in data quality

A secondary goal is to introduce a new standard technology stack around Spring Boot and to optimize the ALM Processes around this setup. These processes are supported by a host of components to render it easier to manage the lifecycle of the PMDM services as well as offer monitoring of progress and quality of the delivered code:

ALM Technology Stack

Team Composition

This project is delivered by a High-Performance Team (HPT) of Ordina consisting of the following members:

High-performance teams are multidisciplinary coalitions of professionals who are perfectly coordinated with one another and have fully mastered the relevant technologies, from Java to Microsoft. These are the kind of teams you want if you aim to shorten time-to-market, increase the quality of IT applications or optimise your primary processes, for example. Their ruling principles are the following:

  1. DevOps culture
    High-performance teams collaborate closely based on a DevOps culture. This involves three fundamentals: trust, passion and craftsmanship. They will break the project down into manageable goals and achieve them on a short cycle.
  2. Measure & improve
    The mindset of a high-performance team is geared towards constant improvement. Mutual coaching and measuring efficiency therefore also play prominent roles within the team. They drive business value through targeted metrics.
  3. Automation first
    Maximum automation of production and quality assurance processes. High-performance teams use a fixed set of tools and business platforms, enabling them to streamline processes and save time in development.
  4. Agile governance
    Self-confidence in a team, self-organisation and goal-driven management; the context of the team impacts its performance. We provide the right application of agile principles and values so that high-performance teams can realise their full potential.

High-Performance Team Principles

When placing an HPT at a customer, some effort is put in to mix and match the team with people already active at the customer to achieve a blended pool of competences. Thus, the best practices that are upheld by an HPT can be introduced in other parts of the customer’s units through osmosis. In this case he HPT becomes an incubator to elevate all aspects of the IT department. These are the blended non-Ordina members of the team:

Blended HPT Members

Lessons Learned

Returning to the field of Application Lifecycle Management (ALM), I got reacquainted with SonarQube, a product that is used for static code analysis and coverage calculation. Where during my previous encounter swith it, we still had the Cobertura plugin to calculate this coverage, I found it had been replaced by JaCoCo. In order to make sure it interacts properly with the SonarQube, we need to add the following plugin to the Maven POM file of the project:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <runOrder>alphabetical</runOrder>
    </configuration>
</plugin>
<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.8.1</version>
    <executions>
        <execution>
            <id>default-prepare-agent</id>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>default-report</id>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
        <execution>
            <id>default-check</id>
            <goals>
                <goal>check</goal>
            </goals>
            <configuration>
                <rules>
                    <!--  implementation is needed only for Maven 2  -->
                    <rule implementation="org.jacoco.maven.RuleConfiguration">
                        <element>BUNDLE</element>
                        <limits>
                            <!--  implementation is needed only for Maven 2  -->
                            <limit implementation="org.jacoco.report.check.Limit">
                                <counter>COMPLEXITY</counter>
                                <value>COVEREDRATIO</value>
                                <minimum>0.60</minimum>
                            </limit>
                        </limits>
                    </rule>
                </rules>
            </configuration>
        </execution>
    </executions>
</plugin>

Project SOA EIM Healthcare Financial ALM