Typically when a PCB layout gets screwed up, the problem is that somebody lost track of the ordering of pins on a large BGA chip. And as crude as it may seem, often our starting point is a spreadsheet that outlines what’s on the board now and how we want things to be eventually. Based on that, we can start to identify what the important signals may be and how best to route them first.
The reality is that when a large device (particularly a uBGA) footprint gets scrambled to the point where hand rework is no longer a solution, it may not be physically possible given mechanical constraints to devise an interposer card that can correct it all. There are just too many signals in too dense an area that need to be swapped, and no number of layers of PCB would allow it because of the staggering number of vias that would be required.
Nine times out of ten what a failed first prototype board does that is most damaging to a development schedule is that it blocks further code writing, since there’s no working target hardware on which to run firmware or test HDL code. Unblocking this can keep the overall project moving forward while a replacement prototype board is laid out. So we work with customers to make the trade-offs that allow them to get the bad board working well enough to facilitate the rest of their development effort, which would otherwise be dead in the water.
Each of these interposers is done on a case-by-case basis, and since creating one requires some understanding of the PCB on which it will go, the process is far from rote. But done correctly, it can rescue a project and prevent months of development delays.