Nobody dares touch it any more.
It started as a small user exit.
That was way before your time.
A dozen developers have patched it since. Most of them have left. It works, most of the time. When it doesn’t, it’s month-end, the heat is on, and nobody can tell you why it chose what it chose.
Every fix adds another IF. Every IF makes the next fix riskier.
Nobody wants to be the next person to touch it
Half the code looks dead. You can’t prove it. The business logic and the technical processing are wound so tightly together that changing one rule could bring the whole thing down like a house of cards.
And to change one rule safely, you’d have to understand all of it. Nobody does.

Find the decisions hiding inside the code
Fix.
Start with one question: which parts of this code are decisions? Those parts can move into BRF+. Each rule becomes visible, testable on its own, and something you can simulate before it ever meets production.
Nested conditions with priorities and exceptions become rows you can read. Export them to Excel, walk through them with the business, correct what’s wrong.
What stays in ABAP is the plumbing: read the data, ask BRF+, act on the answer. The next fix changes a rule, not another layer of code.
BRF+ won’t magically untangle twenty years of history
Someone still has to read the old logic and decide what still matters. Some of it will turn out to be dead, which is good news. But move a mess into BRF+ unchanged and you get a tidier-looking mess.
And not everything belongs in BRF+. Use code to perform a technical task. Use BRF+ to make the business decision.
