I think that the common definition of success with regard to software projects -- did it meet its original schedule? did it meet its original budget? did it meet its original goals? -- is fatally flawed.
A better definition of success comes from asking "Does the project provide real business value to the organization? Is that value greater than the investment of time and resources required to build the project? How soon did the project begin to produce that value?"
The dangerous part of that definition of success, besides that it's totally at odds with the time/budget/scope question, is that it depends on what's valuable to the organization.
You may be able to guess what's probably valuable in broad terms eighteen months in advance, but I've never seen the specifics stay static for more than a few months at a time, and certainly not in the detail necessary to write software that takes eighteen months to complete.