Many IT projects fails. With some of twenty years of experience in industry I can define that many poroblems occurs already at begining. I believe that not single approach like waterfall or agile is enough. With 90% rate of success projects I can say that you need to mix both methodologies. Initial system design needs to be done correctly and you can call it Waterfall. First you encouter problem, less it will revange in future. Correct data schema desing will pay off. Gathering as many system requirements as possible from the start will make it possible to manage possible problem. On the other side you need to agile prototype application with choosen technolgies. Prototype should be proof of concept from user experience perspective, but also contain technical solutions, that proves, that technology stack had been selected correctly.