Using an agile approach the key challenge is to overcome the fear of knowing exactly what the final system will do and what it will look like. Since this approach is incremental this reduces the time spent upfront in doing analysis. Whilst the need for documentation is lower the great benefit is that getting actual working code is faster. The choice not to do detailed functional requirement upfront is
that so often it tries to capture future requirements when the details are difficult to predict
More...