Sommario:
Definizione - Cosa significa Extreme Programming (XP)?
Extreme Programming (XP) è una metodologia di sviluppo software intensa, disciplinata e agile focalizzata sulla codifica all'interno di ogni fase del ciclo di vita di sviluppo software (SDLC). Queste fasi sono: Integrazione continua per scoprire e riparare i problemi nelle prime fasi del processo di sviluppo Coinvolgimento del cliente e feedback rapido Queste discipline metodologiche XP derivano dai seguenti quattro valori chiave di Kent Beck, il creatore di XP: Comunicazione: la comunicazione tra membri del team e clienti deve avvenire su base frequente e si traducono in discussioni di progetto aperte senza timore di rappresaglie. Semplicità: ciò implica l'utilizzo del design, della tecnologia, degli algoritmi e delle tecniche più semplici per soddisfare le esigenze del cliente per l'attuale iterazione del progetto. Feedback: il feedback deve essere ottenuto a più livelli distinti, ad es. Unit test, revisione del codice e integrazione. Coraggio: attuare decisioni difficili ma necessarie.
Techopedia spiega Extreme Programming (XP)
Oltre ai valori chiave, l'implementazione della metodologia XP richiede anche il supporto dei tre principi di cambiamento incrementale, abbracciando il cambiamento e il lavoro di qualità. Devono essere seguite anche dodici pratiche chiave: alcuni professionisti della metodologia tradizionale criticano XP come un processo "irreale" che causa una codifica sconsiderata. Numerosi sviluppatori di software tradizionali ritengono che XP non sia flessibile, con funzionalità ridotte e poco potenziale creativo. Ulteriori critiche sono che XP: non ha struttura. Manca di documentazione essenziale. Non ha risultati chiari, vale a dire che stime realistiche sono difficili perché l'intero ambito dei requisiti del progetto non è completamente definito. (Questa mancanza di requisiti dettagliati rende XP estremamente incline al creep di portata.) Ha bisogno di cambiamenti culturali per essere adottato. (Può funzionare solo per sviluppatori senior) È costoso, vale a dire richiede frequenti comunicazioni / riunioni a spese del cliente, il che può portare a negoziazioni difficili. Possibile inefficienza da frequenti modifiche al codice all'interno di varie iterazioni. Naturalmente, come con qualsiasi metodologia di sviluppo, tutto ciò è molto soggettivo e dipende dalle preferenze personali.