In software development, there are two broad schools of thought: the traditional sequential or the "Waterfall method" and the iterative or the "Agile method". This paper aims to discuss about the pitfalls of traditional methods in developing a product and the application of agile methods to improve the process. Agile aims to deliver a customer-driven product in time and budget. The paper is supported by the views of developers who had moved to agile from waterfall models.