Che cos'è la programmazione estrema?
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 in grado di soddisfare le esigenze aziendali, a intervalli di poche settimane.
Nel modo tradizionale di sviluppare software, un progetto dura molti mesi o anni. Un team di analisti cerca di ottenere tutti i requisiti dagli utenti. Quindi, una serie di designer crea l'ampia struttura del sistema. Successivamente, i programmatori codificano il sistema all'interno di quella struttura. I tester quindi assicurano 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 loro requisiti e che spesso cambiano durante il 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 riescono a capire il processo di pensiero delle persone nelle fasi precedenti. Ciò si traduce in software di bassa qualità e basso valore aziendale.
Solitamente, la programmazione estrema prevede consegne di software frequenti entro poche settimane. La motivazione è quella di fornire software pienamente funzionante che affronti alcune esigenze aziendali critiche. Un cambiamento nei requisiti è previsto 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 più volte al giorno. L'intero software viene assemblato e testato una o anche più volte al giorno. Questo viene fatto al fine di garantire che nessuna singola parte del software abbassi il sistema.
Uno degli aspetti ben noti della programmazione estrema è la programmazione in coppia, in cui due programmatori lavorano insieme su un computer. Grazie a questo approccio, il processo di pensiero, la progettazione e la codifica che vanno alla creazione del software vengono controllati immediatamente. La responsabilità di sviluppare qualsiasi software viene condivisa.
Con questo metodo di sviluppo, il software inizia con 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 gruppo per creare sistemi completi, quindi ogni membro del team svolge ogni giorno il ruolo di analista, designer, programmatore e tester. Vi è una comunicazione intensa all'interno del team di programmazione, nonché tra i programmatori e gli utenti a cui viene consegnato il software.
In questo metodo di programmazione, il concetto di refactoring è fortemente enfatizzato. Il refactoring è un perfezionamento del codice interno per conferire al codice una buona struttura e facilitarne la comprensione senza influire sull'output. Tutto il lavoro coinvolto nella programmazione estrema dovrebbe essere svolto a un ritmo sostenibile senza notti e fine settimana. Ciò aumenta il morale e riduce la probabilità di errori.
La programmazione estrema prende il nome dall'idea che gli aspetti positivi di come funzionano i bravi programmatori sono portati all'estremo per capitalizzare i benefici. Questo metodo di sviluppo è stato abbastanza efficace in numerosi sistemi software. Poiché questa è ancora una nuova metodologia, le sue pratiche sono in continua evoluzione.