Principal Product Architect · 2019 Delivered

Application Portfolio Rationalization Engine

A static-code-analysis system that maps a sprawling enterprise application portfolio using knowledge graphs and graph neural networks, surfacing consolidation candidates data-driven rather than by intuition.

Problem

A large enterprise carried an unwieldy application portfolio with poor visibility into overlap, dependencies, and redundancy. Consolidation decisions were guesswork, and maintaining the status quo tied up 40 to 50 FTEs in redundant work.

Contribution

Built a knowledge-graph-based rationalization tool that analyzes source code statically and applies graph neural networks to surface dependencies, redundancy clusters, and consolidation candidates across the full portfolio.

Outcome

Product built and demonstrated to several of the retailer's portfolios; the pharmacy portfolio engaged first. Projected, from a scenario study: about $1M a year in savings from rationalizing that portfolio, which was supported by 40 to 50 FTEs. Not measured after adoption.

Graph Neural NetworksKnowledge GraphsStatic Code AnalysisPython

Most portfolio rationalization efforts happen in spreadsheets fed by surveys. Neither the data nor the analysis is trustworthy, so consolidation decisions stall in politics. Replacing that with code-derived evidence fundamentally changed the conversation: the graph made dependencies visible and made the cost of the status quo legible.

The graph neural network layer was the non-obvious choice. Static analysis gives you a dependency graph. GNNs let you reason about it at a structural level, identifying clusters of applications that are tightly coupled but organizationally separate, or applications that appear redundant but share no code path. That structural reasoning is what produced actionable consolidation candidates rather than a raw dependency map.

It began as a C#.NET impact-analysis scanner I built for an enterprise store-numbering change, which had to find every affected application across shell, Python, C, C++, Java, COBOL, C#, VB.NET, Perl, and JavaScript. I generalized that scanner into the rationalization product, demonstrated it with a mock application to several portfolios, and led a team of more than 25 to build it. The pharmacy portfolio, whose core application dated from 2004 and depended on knowledge held by people who could retire at any time, was the first customer.

This ran as an INFINITY Labs intrapreneur project, which meant taking it from research hypothesis through validated PoC to a result the business could act on. There was no pre-committed product budget.