Successful projects are designed well, with users' needs firt, and are implemented using a set of rigorous practices.
Some organizations succumb to a shotgun approach, throwing the proverbial mud upon the wall in the hopes of getting it right given sufficient iterations. Others release code multiple times a day, essentially testing code in production. And still others produce a product and "toss it over the wall" to the users, hoping it will satisfy their requirements.
Of course none of these really makes sense or produce consistent, predictable results.
Forty years of software engineering has taught us a thing or two about projects. why not put our experience to work for you?