search menu icon-carat-right cmu-wordmark

From Monolith to Microservices: A Leadership Perspective on Legacy Application Modernization

April 2015 Presentation
Einar Landre (Statoil ASA), Jørn Ølmheim (Statoil), Harald Wesenberg (Statoil)

This talk shares leadership challenges of modernizing legacy systems, illustrated by a 20-year-old custom-made client/server application with 3.5 million lines of code.

Publisher:

Software Engineering Institute

This presentation was created for a conference series or symposium and does not necessarily reflect the positions and views of the Software Engineering Institute.

Abstract

In this presentation, we will share some thoughts on the leadership challenges that come with modernizing legacy systems. Our reference case is an ongoing modernization of a 20-year-old custom-made client/server application consisting of about 3.5 million lines of code. The modernization effort is driven by a need to reduce cost of ownership, position the system for new deployment models such as cloud, and facilitate shorter time to market for new business features. It is also about reducing vulnerability, as there are more developers in the market who are masters of JavaScript than of PowerBuilder.

From an architectural perspective, the aim is twofold. First, consolidate on fewer but more up-to-date technologies. Second, create a more loosely coupled architecture by introducing functional separation through horizontal and vertical slicing, in many ways moving toward what today is called "microservices," and do this in line with the principles in our management system, adhering to natural business process boundaries.

From a leadership perspective, the challenge is to effect the cultural and organizational changes needed to create architecture in line with modern principles, seizing the opportunities offered by new technology. We need to break the mindset incurred by the relational database—that everything has to be interconnected in a global model—and replace this by a mindset and technology that support deployment of smaller but cohesive functional services or modules. A major challenge here is technologically outdated domain experts, key stakeholders who are stuck in the possibilities of yesterday's technology.