In extreme programming lo sviluppo incrementale è supportato attraverso piccole e frequenti release del sistema. I requisiti si basano su semplici scenari, che sono utilizzati come base per decidere quale funzionalità deve essere inclusa in un incremento del sistema. Il coinvolgimento dell'utente è supportato attraverso l'impegno costante del cliente nel team di sviluppo. Le persone sono supportate dalla programmazione in coppia, dal processo collettivo del codice del sistema e da un processo di sviluppo sostenibile che non richiede periodi di lavoro eccessivamente lunghi.