I have been mulling over the reasons for project success based on my experience participating in projects and reading about the industry. Of course there are many reasons for success and failure, but I think the most important one is the willpower of the stakeholders and key project participants.
Nearly all IT projects are challenging, and could easily be considered failures or the project team doesn't adapt to changes in requirements, technology, and other factors.
The assumption that requirements are finite and stable is unrealistic. Rigid requirements can lead to project failure, or a product that technically meets the requirements but doesn't actually work. It's easy to point blame to all the participants in the project, from flawed management vision to weak requirements to sloppy coding and testing.
What stands out to me in successful projects is the sheer willpower along with optimism to ship a working solution, and the willingness to face up to all the problems that are encountered along the way. This courage is not common, and some projects and organizations prevent individuals from taking personal stakes in the outcome and putting their willpower to work.