Which software development methodology emphasizes iterative cycles, team collaboration, and flexibility to adapt to changing requirements over following a rigid sequential plan?