This document compares and contrasts the waterfall and agile software development models. It provides an overview of the key phases and characteristics of the waterfall model, including documentation, design, implementation, testing, deployment, and maintenance phases. It then discusses advantages of the waterfall model like structured organization and clear milestones, and disadvantages like inability to adapt to changes. It also provides an overview of the agile model's iterative approach and emphasis on collaboration. Finally, it lists some advantages and disadvantages of the agile model.