Brewing Modernization: How to Update Legacy RPG and Databases Without Burning the Coffee
☕ Today’s Coffee: Lavazza Gran Aroma — bold, aromatic, with a rich finish.
Modernizing legacy RPG applications and IBM i databases is a lot like brewing a
strong cup of coffee: done carefully, it energizes the business and delivers
something rich. Done hastily, it leaves a bitter taste and creates more
problems than it solves.
We’re at a tipping point. IBM is moving away from SDA and SEU (with SEU
likely following soon), developers are being asked to learn modern tools like
VS Code and RDi, and leadership is hearing constant whispers about “leaving the
IBM i.” The reality: you can’t ignore modernization any longer. The
choice is whether to do it right—or do it wrong.
Why Modernization Matters
- Sustainability – RPG programs from the 80s and
90s may still run, but maintenance is slow, risky, and
knowledge-dependent. A single retirement can create a huge knowledge gap.
- Integration – APIs, web services, and
analytics all demand modular, SQL-based designs that play well with other
platforms.
- Talent Retention – Developers—especially new
ones—don’t want to work in “green screen only” environments. They want
modern tooling, code editors, and workflows.
- Future-Proofing – IBM’s roadmap and broader IT
trends point clearly: modernization is inevitable. Waiting only increases
cost and risk.
The Human Challenge: Getting
Developers to Move
One of the hardest parts of modernization isn’t technical—it’s cultural.
Many RPG developers are comfortable with SEU, SDA, and DDS. They know how to
fix problems fast in that environment. Asking them to switch to VS Code or RDi
feels like asking them to throw away decades of mastery.
Common pushbacks include:
- “The old code works—why change
it?”
- “I can code faster in SEU than in
VS Code.”
- “SQL is slower than native I/O.”
(true in some edge cases, but usually outdated thinking).
- “I’m scared of using something
new. What if I break it?”
- “I don’t have time to learn with
all the deadlines we already have.”
- “We don’t have time to rewrite
everything.”
These concerns are real, and they can’t be brushed aside. Deadlines are
pressing, and learning new tools feels like slowing down. But the truth is,
modernization done right actually frees up time in the long run by
reducing technical debt and making development more efficient.
Overcoming the Resistance
- Incremental Wins: Don’t modernize everything at
once. Pick a subroutine, a program, or a file, and modernize while making
a real enhancement.
- Education: Show developers how VS Code,
RDi, and SQL simplify tasks they already struggle with.
- Support: Provide mentorship and time for
developers to learn, not just deadlines.
- Leadership Alignment: Upper management needs to see
modernization as essential for longevity, not a luxury project.
Doing It Correctly
1. Start Small, Prioritize High-Impact
Areas
- Identify programs or databases
that cause daily pain (like nightly batch jobs, invoicing routines, or
order entry).
- Begin by modernizing just one
calculation spec or one table. Don’t try to tackle everything at once.
- Example: Converting one invoicing
routine to free-format RPG can reduce onboarding time for juniors from
weeks to days.
2. Introduce Modern Practices
Gradually
- RPG Free-Form: Convert fixed-form to free-form
line by line, not entire programs at once.
- Modularity: Move common routines into
service programs.
- SQL Views: Replace repeated embedded join
logic with SQL views for clarity and consistency.
- Example: A “CustomerActive” view
can replace dozens of handwritten joins across the system.
3. Maintain Parallel Functionality
- Always validate that modernized
code behaves exactly the same as the legacy code.
- Use regression testing, compare
file outputs, or run dual systems temporarily.
- Example: When replacing an RPG
program that updates invoices, run the old and new versions side by side
on test data to confirm identical results.
4. Engage Developers Early
- Show developers how tools like VS
Code, RDi, and even AI assistants (ChatGPT, Copilot) make their work
easier.
- Build shared templates for common
programs so nobody is starting from scratch.
- Celebrate small wins: “Ed
converted this old report driver to free-form in one afternoon.”
5. Communicate with Leadership
- Translate modernization benefits
into business language:
- Less downtime → more customer
satisfaction
- Easier onboarding → lower
training costs
- Future-proof code → reduced
migration risk
- Share concrete ROI examples:
- “Refactoring one program cut new
hire training time by 30%.”
Doing It Incorrectly
- Big Bang Rewrite – Attempting to rewrite
everything in six months almost always fails. High cost, high risk, low
adoption.
- Ignoring Culture – Developers resist change if it
feels like “extra work” or if leadership doesn’t back them up.
- Tool Overload – Dropping a pile of tools on
the team without training or standards creates chaos, not clarity.
- Data Integrity Risks – Neglecting commit/rollback or
testing leads to corrupted data, broken trust, and leadership skepticism.
Case in Point: One company attempted to migrate all RPG programs to Java in a single
project. They underestimated the embedded business logic in RPG and ended up
with delays, overruns, and broken functionality. The result? Millions wasted
and a leadership team now skeptical of modernization.
Getting Everyone on Board
Developers
- What they care about: cleaner code, faster debugging,
modern editors.
- How to win them over: give them tools (VS Code, RDi,
AI prompts) that save time on daily tasks.
- Pro Tip: pair juniors and seniors on
modernization projects. Seniors provide business knowledge, juniors bring
fresh eyes.
Management
- What they care about: costs, risks, timelines.
- How to win them over: show incremental ROI—fewer
production issues, shorter onboarding, less dependence on tribal
knowledge.
Executives
- What they care about: strategy, future-proofing,
external perception.
- How to win them over: connect modernization to the
company’s larger goals: agility, cloud integration, customer satisfaction.
Leadership Angle: Modernization Is a
Team Sport
Leaders must set the tone:
- Encourage small, consistent
improvements—not waiting for the mythical “big project.”
- Recognize and reward developers
who modernize code as part of daily work.
- Tie modernization goals into
career paths and OKRs so developers feel invested.
When leadership reinforces that modernization is not a side project but the
way forward, culture shifts. Teams stop saying “why bother?” and start
asking “how can we improve this?”
Final Sip
Modernization done right is like Lavazza Gran Aroma—strong, energizing,
and sustainable. Done wrong, it’s burnt coffee: bitter, costly, and avoided by
everyone.
The recipe for success isn’t complex:
- Start small.
- Validate results.
- Equip your team with the right
tools.
- Communicate ROI in business
terms.
- Build a culture of continuous
improvement.
When you approach modernization as an evolution, not a revolution,
you preserve the value of legacy code while preparing your systems—and your
people—for the future.
☕ Follow The RPG Blend for practical modernization strategies,
leadership insights, and code examples you can use today.
đź“‚ Code examples on GitHub: The RPG Blend
Comments
Post a Comment