Scientific simulation comprises a complex mixture of mathematical components, such as models for scientific and engineering problems, discretization algorithms, and software libraries interacting with a computer science software stack that is our interface to the hardware. In this talk, I will look at how we have navigated this complex system in the case of numerical methods for partial differential equations on structured grids to obtain successful simulations across a broad range of fields. I will also discuss how the coming changes in processor architecture due to power limitations is causing the approach we have taken over the last 20 years to break down, and describe some new ideas we would like to use to remedy this problem.