Agile project management remains common in software development. It is a cyclical, collaborative, and iterative process under which incremental changes take place, get tested, and confirmed. Agile is often used for software development because it is an inherently flexible methodology; as changes occur, they can also get adjusted. Comparatively, Waterfall project management is a more structured approach that works through set phases one at a time, from initial conception to development. Agile provides for continuous analysis, design, construction, and testing; Waterfall project management will only "flow-through" each product stage once. Waterfall project management lends itself better to smaller, one-off projects. In contrast, Agile development lends itself to more complex products requiring continuous development and support.