Waterfall is a linear approach to software development. In this methodology, each phase of the software development lifecycle is visited only once. Agile is an iterative, team-based approach to development. This approach emphasizes the rapid delivery of an application incomplete functional components. Compare and contrast these two methodologies and explain which methodology you feel is best for developing software in today's environment.
Must be at least 300 words and no plagiarism.