La programmazione estrema è uno dei metodi più recenti di sviluppo del software. Mira a migliorare i metodi tradizionali di sviluppo del software enfatizzando il valore e la qualità del business. Questo metodo di programmazione cerca di fornire software completi e privi di errori che soddisfino le esigenze aziendali, entro intervalli di poche settimane.
Nel modo tradizionale di sviluppo del software, un progetto dura molti mesi o anni. Un team di analisti cerca di ottenere tutti i requisiti dagli utenti. Quindi, un gruppo di progettisti crea l’ampia struttura del sistema. Successivamente, i programmatori codificano il sistema all’interno di tale struttura. I tester assicurano quindi che il codice sia privo di errori e soddisfi i requisiti.
Il problema principale riscontrato con lo sviluppo tradizionale è che gli utenti stessi non sono sempre chiari sui propri requisiti e i requisiti spesso cambiano durante il lungo tempo necessario per creare il software. Persone diverse sono coinvolte in fasi diverse e la documentazione non è quasi mai completa, quindi le persone nelle fasi successive non possono capire il processo di pensiero delle persone nelle fasi precedenti. Ciò si traduce in un software di bassa qualità e in un basso valore aziendale.
Di solito, la programmazione estrema comporta frequenti consegne di software nell’arco di poche settimane. La motivazione è quella di fornire un software completamente funzionante che soddisfi alcune esigenze aziendali critiche. Una modifica dei requisiti è prevista nella consegna successiva.
La programmazione estrema, o XP in breve, enfatizza la qualità scrivendo dei test prima di eseguire la programmazione. Mentre il software viene scritto, il codice viene rivisto e testato molte volte al giorno. L’intero software viene messo insieme e testato una o più volte al giorno. Questo viene fatto per garantire che nessuna singola parte del software interrompa il sistema.
Uno degli aspetti ben noti della programmazione estrema è la programmazione a coppie, in cui due programmatori lavorano insieme su un computer. Grazie a questo approccio, il processo di pensiero, progettazione e codifica che porta alla creazione del software viene controllato immediatamente. La responsabilità di sviluppare qualsiasi software viene condivisa.
Con questo metodo di sviluppo, il software parte da un design semplice e si evolve per soddisfare ulteriori esigenze aziendali. La creazione di funzionalità viene evitata fino a quando non diventano effettivamente prioritarie. L’enfasi è sul lavoro di squadra per creare sistemi completi, quindi ogni membro del team svolge il ruolo di analista, progettista, programmatore e tester ogni giorno. C’è un’intensa comunicazione all’interno del team di programmazione, così come tra i programmatori e gli utenti a cui viene consegnato il software.
In questo metodo di programmazione, il concetto di refactoring è molto enfatizzato. Il refactoring è il perfezionamento del codice interno per dare al codice una buona struttura e renderlo più facile da capire senza influenzare l’output. Tutto il lavoro coinvolto nella programmazione estrema dovrebbe essere svolto a un ritmo sostenibile senza tarda notte e nei fine settimana. Questo aumenta il morale e riduce la probabilità di errori.
La programmazione estrema prende il nome dall’idea che gli aspetti positivi di come lavorano i bravi programmatori sono portati all’estremo per capitalizzare i benefici. Questo metodo di sviluppo è stato abbastanza efficace in un certo numero di sistemi software. Poiché si tratta ancora di una nuova metodologia, le sue pratiche sono in continua evoluzione.