From what I have observed, having an in-house technical team at the government - even small - aids all of these projects.
In fact, that's basically what this team is - SREs - professionals at running and maintaining code. A small integrations / uptime team that understands the implications of design decisions aids everything.
I've seen the distributed approach done at a university and it was a total bureaucratic don't step on my toes mess - when they centralized, things got organized very quickly.
I think we need maybe either a tech branch or sub-branches per branch of government. Contracting is great and all but we need consistent development not one time fixes. I'm sick of hearing about how our government got hacked here or there every now and then.