My personal experience is that the last 10% are hard when:
- I didn't stick to the specs
- Added specs while coding
- Didn't test while coding
- Didn't fix shitty while coding
Because I think specs are very important I don't believe in too much of agile. I think the waterfall model is very useful but you have to keep the waterfalls very small.
Maybe you can call this the agile waterfall model: waterfall -> release -> waterfall -> release