If you have a systems engineering design strategy you probably consider solutions for each part (of your system), and select a single solution that seems best at the time. You develop that solution and deal with problems as they arrive and iterate until you get to a tested, qualified, solution that can be profitably produced.
The big issue is that the problems can become huge, and they often eat up management reserves and other budgets. What’s more, is they cause project delays, impact other projects, put unnecessary pressure on people, and the list goes on.