In the many years I've been doing development and managed many an engineer, I've been through both development processes.
I've never been very happy with either and always used a blend of both. Some companies have coined
the term "Nimble" or "Wet Agile".
This, in my opinion, is probably the best way to get a project completed close to on-time and on budget with getting your team as efficient as possible. It also bridges the gap of a Waterfall process with the ability of Agile to get a product that your customer wants.
There is a fantastic white paper on the subject available from:
It's exactly what I like to do in terms of development process and managing that process.
What's nice about it, is that it fits well withing the Mobile/Web development process. Most of the time I see development that is a combination of web front ends, server backends used in conjunction with Mobile client applications.
Using the "Nimble" approach solves the issues to allow good processes and architecture to be in place across the entire software system.