> What is important that there is one company you can go to who does all of that for you.
This is what gets us in this mess in the first place.
> Running a government institution and having 20 different vendors to make your basic IT system work is a nightmare.
Then scale down the bureaucracy and bring back the decision-making power down to the leaf nodes. Have each institution working as a "microservice" which is responsible only for defining the interfaces on how to interact with them, but leave the internal implementation completely up to the department. You can of course have some collaborative structure where these departments can use as a reference guide, but they are completely free to override those decisions when it best suits them.
> Then scale down the bureaucracy and bring back the decision-making power down to the leaf nodes. Have each institution working as a "microservice" which is responsible only for defining the interfaces on how to interact with them, but leave the internal implementation completely up to the department. You can of course have some collaborative structure where these departments can use as a reference guide, but they are completely free to override those decisions when it best suits them.
Dear god no. That's how you end up with contracts assigned to "Joe's Nephew Software Design" that don't just smell but reek of nepotism (although I will admit, the "big bodyshops" aka Accenture and friends aren't much better), neverending GDPR et al. compliance issues, and massive employee overhead in training and onboarding costs when every local government does its own shit and economies of scale can't be leveraged.
Also, even assuming "Joe's Nephew Software Design" manages to complete the DMV software on time and in budget... who's guaranteeing that in 10 or 20 years Joe's Nephew will still be around to provide updates? It's (way) easier and cheaper to do continuous maintenance when there are lots of clients to fund upkeep, compared to just one.
God, the idea of microservices for humans is nightmare time. I work for a company that runs micorservices, and I can say I've spent days attempting to get everything running on my dev system. One upgrade and I can watch my whole day/week disappear into config hell.
I can't imagine how hard it would be to do this with people. Each working with their own little bubble.
Just the other week someone decided that an api needed a tweak, so they adjusted the code and the tests, but missed one external system. Took 4 days to fix, because we couldn't figure out what had changed. And the team who owned the external system wasn't around. People as microservices.. no just no.