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.
