owroomexorcist
Modernization to me (specifically in the context of the GC) means refactoring/rewriting systems to follow modern industry standards and practices. Things like proper version control, automated testing, automated/semi-automated deployments, and monitoring and logging.
I think there are major benefits in adopting these practices for both the Canadian public and the developers building/maintaining the solutions. Unfortunately, getting a budget to move the source code from a shared network drive to Git is next to impossible. And God forbid you want to spend time adding any sort of testing.
The problem is these big projects, like modernizing core social service systems, are given big budgets and big expectations. Then they start a big team to work on it, with short deadlines and not enough direction. At some point it is discovered that the legacy systems business logic is mostly undocumented/baked into a mainframe/functioning through sheer luck/nothing but PL/SQL and DB triggers. Then the several contacting companies are brought in to try and sort out the mess, solutions are purchased from billion dollar private companies (all of which have screwed over the Government of Canada one way or another), and project management is shuffled around as fast as HR can fill out the forms. After three years the money runs out, the project dies, and then we try again in two years.
The solution is never a slow and steady modernization. It's never small, focused teams working on improving or rebuilding individual components. It's never upgrading infrastructure, or moving to modern best practices.
It's always all or nothing. Solve the problems, without fixing them.