The core assumptions upon which the solution/requirements are built must be challenged. But first they must be unearthed and made known because they are often disguised as facts. Challenging fundamental assumptions early on has saved many a project on which I have worked, both large and small. In multi-disciplinary projects, and those that span a longish period, as well as those that are dependant on performance criteria that are supplied or to be developed, these assumptions need to be reviewed and re-challenged.
So I include regular review sessions that have this purpose in mind. In order to focus the minds of my project managers, I ask them to keep a list of key assumptions relevant to their projects, so that they can be reviewed at the appropriate times. When is a review appropriate? I have found no formula that can be readily applied, whether in IT or any other project. For IT projects, certainly assumptions should be reviewed at QA time. And again at unit testing time and at the delivery of third party components, whether hardware, software, or OEM.