Problem Statement
Explain the Agile development model: its main principles, how it differs from traditional SDLC models, and when it is preferred.
Explanation
Agile is a lightweight, adaptive approach to software development that emphasises collaboration, customer feedback, rapid delivery of small working increments, and responding to change over following a rigid plan. Unlike traditional models like Waterfall, Agile allows frequent changes in requirements, close interaction with customers and team members, and shorter development cycles (sprints). It is preferred in projects where requirements are uncertain or evolving, and where speed-to-market and flexibility are important.