This document compares and contrasts the waterfall and agile software development models. It discusses the key phases and characteristics of the waterfall model, including sequential development, upfront planning, and defined milestones. Some disadvantages are that it is not adaptive to changes and delays testing. The agile model is then introduced as being iterative, incremental, collaborative, and adaptive to change. Key aspects of the agile process like continuous communication and sprints are outlined. Both models are discussed in terms of their advantages like structure and rapid delivery, and disadvantages such as scaling challenges.