Traditional and Agile are two different software development approaches, where recently the Agile have attracted the attention of the software development industry due to its capability to overcome the limitations of the traditional software development approaches and to cope with increasing complexity in system development. This paper presents a literature review that is focusing on requirements engineering in both traditional and Agile development processes with a discussion of their existing challenges. In addition, it illustrates how Agile approaches can help to overcome the challenges of managing requirements in traditional methods. The paper also shows the importance of activity planning of requirements engineering in improving the product quality, cost, and scheduling. Finally, the paper points out some drawbacks of Agile practices and available solutions.