Se propone una forma de planificar los proyectos mediante el diálogo de todas las partes involucradas. se recopilan "historias de usuario" que describen las características del software. Los programadores evalúan rápidamente el tiempo de desarrollo de cada historia y, si hay riesgos, realizan pequeñas pruebas para reducirlos. Luego, se organiza una reunión de planificación en la que todos acuerdan un cronograma de entregas. A medida que avanzan las iteraciones, se desarrollan, prueban e instalan algunas historias de usuario. Además, se realizan reuniones diarias para mantener una buena comunicación en el equipo.