Software projects fail for one of two general reasons: the project team lacks the knowledge to conduct a software project successfully, or the project team lacks the resolve to conduct a project effectively.
Steve McConnell (1997). “Software Project Survival Guide”, p.7, Microsoft Press