OK, I've been poking at the still-sidelined F-22 a bit lately. Let's step back a bit and look at some of the principles involved.
For starters, I very much believe in planning ahead. I think it's a good idea to start cooking dinner before you get hungry. It's a good idea to save up some money before your car breaks down. And yes, we need to build weapon systems before the conflict arises. As my SOCOM friends often point out, "Competent Special Operations Forces cannot be created after emergencies occur."
I also believe the future is going to be surprising. We don't know what demands will arise, what seemingly eternal threats will go away and what new ones will emerge. We can't anticipate Black Swans. The only thing we can do is maximize our flexibility and our ability to respond to the unexpected. Read Taleb's book for more on that.
I'm also quite convinced we cannot build an effective fighter jet in 20 years, but we can do it in 3-5 years (the same holds true for all sorts of other technology genres). If we spend 20 years building something, we're going to end up with something that's technologically obsolete, operationally irrelevant or both. The basic principle here is it's important to minimize the time between stating the need and addressing the need. Our 1980's era predictions about the 21st century didn't quite pan out. And our current predictions about what we'll need 10 years from now aren't going to be correct either. There are many reasons I don't think we'll have an air war with China... and one of the reasons is that people keep predicting it as a likely future.
I think we need to take a closer look at the stuff Chuck Spinney wrote, about how less expensive systems tend to outperform more expensive systems, and simpler systems tend to out perform complex systems. I believe thrift and speed are not merely fiscal or political values. They are desirable technical attributes for a system. You want to build a really fantastic capability? Do it quickly & inexpensively (and keep it simple). And please keep in mind that the cost, delay and complexity associated with systems like the Raptor are not inevitable. We could rapidly deliver inexpensive air superiority jets if we wanted to, but only if we try. Speed, thrift and simplicity were never objectives on the Raptor.
So let me be really clear: if we want to ensure air superiority (or any other technical advantage), spending billions and decades is the wrong way to go about it.
Finally, I believe our development efforts should be guided by a prioritized set of requirements (as our Agile development friends do). Deliver the most important capabilities first. Deal with less important capabilities later. So, for example, if you're in the middle of two or three wars where air superiority jets aren't relevant, maybe bump that particular capability to a lower position on the stack.
I'm just sayin'...