BonCode Partners with Vopak to minimize technical debt across core OutSystems Applications

by | Dec 1, 2021

B O N C O D E   C A S E

Executive Summary

Vopak is one of OutSystems‘ largest clients. Its software factory involves 50 developers, 16 scrum teams, and over 40 applications. Quality is paramount for these business-critical applications — which is why Vopak partners with BonCode. Learn how the world’s largest independent tank terminal operator empowers architects and technical leads with the facts needed to continually improve the quality and maintainability of this complex and interconnected portfolio of OutSystems applications.

“If we were buying applications, we’d demand quality, and it’s no different just because we build our own software. Quality determines the experience we provide to customers and users, and it directly correlates to developer productivity. BonCode gives us the objective facts and industry-standard benchmarks needed to drive quality and productivity right across our OutSystems software factory, one sprint after another.”

Wim Gerholt

Director of Software Development, Vopak

50 Developers

Vopak’s OutSystems Software Factory has 16 scrum teams working in three-week sprints.

40+ Applications

Mission-critical ERP replacement for the world’s largest tank terminal operator.

ISO 25010

BonCode provides Vopak with the facts needed to manage software quality and maintainability.

The Problem

You Cannot Manage What You Don’t Measure

Vopak, the world’s largest independent tank terminal operator, provides safe, clean, and efficient storage and handling of bulk liquids and gases. Its terminals are crucial for the world’s supply chain for a wide variety of products, including chemicals, biofuels, and vegetable oils. Given the nature of the products Vopak handles, safety and efficiency are paramount. This places great importance on the quality and reliability of the software applications needed for terminal operations.

When Oracle announced the retirement of the JD Edwards ERP system that Vopak had used for years, the company decided on a “build plus buy” software strategy. It would custom-build a storage terminal management system to precisely meet its needs and integrate that with generic SaaS packages for non-differentiating functions like finance and human resources.

To accelerate development, the company adopted OutSystems in 2015 and has since grown one of the world’s largest and most mature OutSystems software factories.

Given the business-critical 24/7 nature of the terminal management system—from an operational, environmental, health and safety perspective—Vopak takes software quality extremely seriously, as Wim Gerholt, Director of Software Development at Vopak, explains.

We had spent several years developing our terminal management system on OutSystems, and we wanted to assess the product from a quality management perspective. We wanted a standards-based approach such as ISO 25010 and independent objectivity. That’s what led us to BonCode.

Wim Gerholt, Director of Software Development, Vopak

Wim wanted to understand how the maintainability of software differed between different products and modules and how technical debt was impacting development speed. “At that stage, we had around 14 scrum teams working on different modules and products,” explains Wim. “To make valid comparisons between the teams and applications, we needed an objective way to measure the size and complexity of the software each team was working on.”

Wim knew that to do that manually would be far too labor-intensive. So, when he heard that BonCode integrated with OutSystems and could automate function point analysis and add a technology-agnostic perspective to Vopak’s quality assessment, he decided to investigate further.

Why Vopak chose BonCode

Z

OutSystems Approved

BonCode is an approved OutSystems Technology partner and integrates via an API to the development environment.

Evidence Based

BonCode provides insights from objective and transparent sources, so decisions are based on facts, not assumptions.

Actionable for any Role

BonCode provides concrete follow-up tasks that are optimized for the various layers in your organization.

The solution

Measuring Development Speed and Quality with Objectivity

BonCode integrates with the customer’s OutSystems development environment via an API. However, for an initial proof of concept, a BonCode software quality specialist visited Vopak to load data and train Wim and Vopak’s OutSystems software architect, Claudio Oliveira, to use the BonCode dashboards and interpret the results.

This initial consultation turned into a long and fruitful relationship, as Wim explains.

Getting the numbers is the easy bit, but numbers go nowhere. You must decide what you are going to do as a result. That coaching role has become invaluable to us. BonCode are experts in software quality, so our conversations are always useful, and they are based on facts, not on egos and opinions.

Wim Gerholt, Director of Software Development, Vopak

Even from this first consultation, Vopak could start to see how software maintainability varied between products and affected the work of different scrum teams. BonCode provides Vopak an objective way to measure software size and complexity at any level of detail—from application to module.

A complexity multiplier is included in BonCode’s function point algorithm,” explains Wim. “This is calculated based on the number of interrelationships between modules. These dimensions of size and complexity gave us new insights which we could not get from Architecture Dashboard or other OutSystems analysis tools alone.”

Those insights included an objective way to assess development productivity compared to industry norms like C# or Java.

We knew how much development time we had invested in each application, and now we know their size based on function points. So, we can make evidence-based comparisons, between teams, or with other organizations, or software industry benchmarks.

Wim Gerholt, Director of Software Development, Vopak

results

Improved Maintainability and Benchmark Results

Vopak now uses BonCode to measure software quality across every scrum team at the end of every three-week sprint.

“All our scrum teams are in sync, using the same sprint schedule, which makes communication and reviews easier,” says Wim. “At the end of every sprint, our senior architect reviews the dashboards and insights together with a BonCode software quality consultant to identify any concerns and improvement targets. Then the architect meets with all the tech leads to give feedback and agree on quality objectives for the sprint ahead.”

“This is great feedback for developers,” says Wim. “The emphasis is on maintainability and identifying learning opportunities where developers need to brush up on OutSystems development best practices.”

Application Maintainability Insights

As can be seen from the charts below, the insights Vopak gets from BonCode include a maintainability score per application which Vopak tracks per sprint. For each application, the development team can drill-down to specific details. Trends are clear, and the reasons behind them can be discussed.

maintainability of several outsystems applications compared
Figure 1: Maintainability (y-axis) per application (x-axis).

Vopak can monitor how the maintainability of an application changes over time.

maintainability of one outsystems application per sprint
Figure 2: Maintainability (y-axis) per sprint (x-axis) for one specific application.

The maintainability of a set of applications can also be compared:

comparison of the maintainability of several outsystems applications over time
Figure 3: Maintainability (y-axis) per sprint (x-axis) for a set of applications.

Wim says that a degree of competitive rivalry between development teams can be constructive, so long as that doesn’t result in a speed race without quality.

Ultimately, we need quality, not just for our users and customers, but to keep our software highly maintainable. That means our developers deliver more value to the business, and their jobs are more fulfilling as well.

Wim Gerholt, Director of Software Development, Vopak

Function Point Analysis and Benchmarking

Besides measuring the maintainability per application, BonCode provides Vopak with the number of function points per application. Function Point Analysis (FPA) conforms to ISO 20926, as standardized by the International Function Point Users Group (IFPUG).

The FPA measures an application’s functional size based on a standardized unit called a function point. This involves looking at how the user interacts with the system: what inputs and outputs exist on screens, and how they interact with data stored or processed by the system.

In other words, the function point (FP) is a “unit of measurement” to express the amount of business functionality an information system provides to a user. To measure application development productivity, we divide the FPs of an application by the hours spent by the development team to determine the average hours needed to deliver one FP. This number can be benchmarked with other OutSystems customers.

Having benchmark figures helps different development teams learn from one another and improve their way of working.

In addition, benchmarking between different OutSystems customers will be an exciting next step in professionalizing development. I know BonCode aims to make this possible soon.

Finally, the next important question I would like to see answered is, are there possible correlations between software maintainability, productivity, and operational IT/application incidents?

Wim Gerholt, Director of Software Development, Vopak

The following table shows example benchmarks that Vopak has calculated for different application sizes:

ApplicationBenchmark (Hours Development per FP)
Small Application (5,000 FPs)0.96
Medium Application (10,000 FPs)1.12
Large Application (25,000 FPs)1.59
Note: BonCode automatically applies a complexity factor so that both size and complexity of applications are represented in the FP number.

Wim says, “Having an objective, industry-standard viewpoint is important. If we’re going to have productivity and quality conversations with developers, we need facts, not egos and opinions, or you’re just going to demotivate developers. Working with BonCode gives us a degree of impartiality and objectivity.”

Additionally, by working with BonCode and its software quality experts, Vopak finds it easier to align with the ISO 25010 System and Software Quality Model. “There’s a comfort factor in knowing that our software quality strategy is based on a robust industry framework and not too narrowly focused on an OutSystems proprietary perspective.”

Asked how these insights have changed how Vopak runs its OutSystems factory, Wim says, “Where we improved the quality of a module or application, we could see a considerable uptick in productivity for the associated scrum team. That’s to be expected; we were eliminating technical debt, making the software more flexible and maintainable. The business case was so clear that we now have two additional scrum teams focused exclusively on quality. That ensures we can spread the benefits across our whole OutSystems application portfolio, and productivity improves for every scrum team.”

Wim’s advice for other OutSystems software development managers is, “It’s never too soon to start. The business case for a low-code platform is development speed and quality. Having an objective way of measuring these things improves your ability to manage developers and consultants. Plus, you get the facts needed to keep your CIO, CFO, and CEO happy about the investment they’re making in a platform like OutSystems.”

You may be interested in this:

How Companies Can Manage Technical Debt In Custom Software

How Companies Can Manage Technical Debt In Custom Software

Technical debt is the future cost – in time and effort – of improving low-quality code. If your company’s custom software is accumulating technical debt  – and you do nothing about it – at some unknown point in the future, software development will come to a...