Los métodos ágiles reconocen que los requisitos de los clientes pueden cambiar durante el desarrollo de software, por lo que favorecen la iteración y entrega frecuente de versiones funcionales para obtener comentarios y satisfacer mejor las necesidades del cliente. Los equipos ágiles trabajan de forma colaborativa, con comunicación directa entre desarrolladores y clientes, y dividiendo el trabajo en tareas pequeñas para equipos reducidos.