In definitiva, Extreme Programming riguarda una serie di pratiche e metodologie che portano a un miglioramento del valore aziendale. La migliore illustrazione di ciò che ho trovato è da http://c2.com/cgi/wiki?ExtremeProgrammingEnablingChart
Tutto in blu fa parte del nucleo di XP.
Ci sono parti di esso che si trovano all'esterno che aiutano a abilitare le cose all'interno dell'area blu e fanno parte di XP nel suo insieme, ma non sono fondamentali. Nota che personalmente non sono un professionista di XP e ho letto un bel po 'di critiche alle persone "quasi" a seguito di XP che varie persone hanno detto che non sono XP. Lasciamo per un po 'quell'aspetto del dogma di XP e guardiamo cosa abbiamo.
Renditi conto che una delle prime e per la maggior parte delle cose è quella di avere un impegno nel processo da parte del cliente. Un componente chiave di XP è il coinvolgimento del cliente. Ciò si presenta in una serie di punti come la pianificazione delle versioni, le versioni piccole, la valutazione dei clienti fuori sede. Queste sono le cose a cui i tuoi clienti dovranno abbonarsi se hai successo con XP come sviluppatore solista. Se invece chiedono un design e quindi un periodo di sviluppo e quindi test e simili, non avrai l'impegno da parte loro di andare oltre.
XP non significa nessuna pianificazione. Ci sono diversi punti in questo in cui la pianificazione ne fa parte: definizione delle priorità, stima della user story, pianificazione dell'iterazione e definizione delle attività. Anche se sei uno sviluppatore su questo, queste sono le cose che dovrai lavorare con i tuoi clienti per la consegna.
Punti come la proprietà collettiva del codice e la programmazione di coppie sono elementi che coinvolgono più di uno. Decidere cose come gli standard di codifica è molto più semplice, ma ciò non significa che non devi seguirli. La proprietà del codice collettivo si applica ancora - è solo che la proprietà è anche il prossimo sviluppatore - non scrivere codice che è solo per te. Si noti che questo è in un certo grado di conflitto con il "codice rivela tutte le intenzioni" che è abilitato dalla programmazione in coppia - non si ha quella persona per verificare che si sta scrivendo un codice gestibile, quindi anche la documentazione del codice è fondamentale.
Oltre a questi avvertimenti, molti dei principi di progettazione di XP si applicano ancora. Cose come test di progettazione iniziale, integrazione continua, incontri con il cliente, refactoring, YAGNI, soluzioni di picco: quelle chiamate possono essere fatte da sole.
Renditi conto che XP solo prende molta o più disciplina di XP normale. XP è spesso considerata una metodologia di alta disciplina in quanto richiede alle persone di mantenere una rigorosa aderenza alle migliori pratiche che cerca di incarnare. Quando non hai un allenatore o altre persone per supportare quella disciplina necessaria, può cadere in un miscuglio di pratiche che assomigliano a XP.
Lettura correlata:
Vorrei estrarre una citazione dal primo dei collegamenti c2:
Notato luminare del linguaggio Perl e scienziato pazzo, Damian Conway crede che Extreme Programming sia in realtà un termine improprio. Dal momento che incarna molte delle buone pratiche di programmazione insegnate ai programmatori ma che quasi sicuramente ignorano, ritiene che avrebbe dovuto essere chiamato Programmazione ultra conservativa