The greatest cause of software projects being abandoned is that stakeholders having some fundamental misunderstanding about the nature of software development.
Many people love to imply differently, but software is the result of an engineering process called the Software Development Life Cycle (SDLC). If one doesn't make a design choice, one still has made a choice.
By taking the time to understand the SDLC, one is mitigating the biggest risk of software project failure. Ignorance of the SDLC is at the heart of all the risks. This ignorance is behind the notion that all one has to do is hire a coder.
Rushing into coding creates a big risk. Being in a hurry generally creates a risk, because that is usually when thinking, planning and designing are skipped.
The nature of software engineering results in projects costing more than many people expect. Many times, people initiate a project and later come to understand the costs involved, and then cancel it.
So, what do typical software projects cost? Click here to find out.