Extreme Programming (XP) -

Collocati alla fine del 1900, lo sviluppo del software e i concetti di programmazione stavano vedendo un notevole cambiamento nel modo e nell'approccio dell'intero schema. Abbiamo adottato approcci più snelli e a dimensione di pacchetto e sono stati applicati chiari modelli unitari per apportare cambiamenti nel modo in cui è stato sviluppato il software per computer. Gli sprechi dovevano essere ridotti con l'aumento della domanda di sistemi efficienti e, quindi, arrivò l'era delle metodologie per uno sviluppo software efficiente. La programmazione procedurale è stata presto sostituita dalla programmazione orientata agli oggetti e il modello a cascata ha consentito ad Agile di assumere il comando. I quadri di controllo di qualità giapponesi stavano presto guadagnando slancio e poi emerse il concetto di qualcosa che era precedentemente usato in frammenti, ma che ora era una metodologia a pieno titolo per risolvere i problemi di programmazione e sviluppo del software, Extreme Programming!

Che cos'è Extreme Programming (XP)?

Con un numero considerevole di modifiche che hanno visto la luce dei clienti, Extreme Programming (XP) è arrivata come sollievo per l'organizzazione di progetti intrapresi da specialisti di software.

L'implementazione della programmazione estrema ha migliorato la qualità del software e ha risposto in modo più efficiente ai mutevoli requisiti dell'azienda, causati dal ridimensionamento delle aziende o da fattori esterni.

XP è una metodologia, sotto l'egida di Agile, che incoraggia rilasci di versioni frequenti in brevi cicli di sviluppo. Ciò aumenterebbe inevitabilmente la produttività in larga misura e i rilasci frequenti spianerebbero la strada all'inserimento di nuovi requisiti.

Extreme Programming (XP) ha la "soddisfazione del cliente" al centro della sua struttura e il "lavoro di squadra" come potenza muscolare. La collaborazione è un must per la programmazione estrema (XP) per avere successo in quanto prende misure iterative per la produzione di software per clienti / clienti. Non si concentra sulla consegna dell'intera cintura, ma controlla se le esigenze del cliente sono soddisfatte in ogni fase del percorso.

Parte di Agile Software Development

Lo sviluppo di software Agile è il modo in cui viene intrapreso lo sviluppo, ma soprattutto, ciò che la maggior parte delle persone dimentica di riconoscere è che i team, cioè le persone, devono essere Agili per avere successo. L'implementazione dei metodi e dei processi garantisce solo che esista un framework fisso in cui i team possano essere flessibili, scalabili e in modo più creativo.

Con i concetti di iterazione e sprint, come nel caso di Scrum, Agile offre un'ottima piattaforma per implementare le modifiche e il feedback in ogni ciclo di sviluppo che passa.

Quando si tratta di Extreme Programming (XP), tiene conto di tutte le opportunità che possono portare a miglioramenti apportati al prodotto alla fine.

Sviluppo tradizionale contro Extreme Programming (XP)

  • Mentre lo sviluppo tradizionale mantiene l'attenzione sul processo e lo tiene in considerazione quando si tratta di completare il ciclo, la programmazione estrema si concentra sui requisiti.
  • Extreme Programming (XP) porta le migliori pratiche installate nello sviluppo tradizionale e le porta ai limiti estremi. Lo stretching eseguito con estrema programmazione (XP) è ottimo per progetti flessibili ed elastici.
  • Lo sviluppo tradizionale ha la segmentazione come fattore precedente nei cicli di sviluppo software, mentre la programmazione estrema (XP) sostiene la collaborazione tra i team e anche le parti interessate per il loro costante feedback e opinioni durante le iterazioni e le fasi di pianificazione.

5 valori per un progetto di successo

La programmazione estrema (XP) prevede i 5 modi o valori essenziali per dirigersi verso un progetto software di successo:

  1. Comunicazione : questa metodologia di sviluppo del software richiede essenzialmente una comunicazione affiatata tra manager, clienti / clienti e sviluppatori. Questa comunicazione efficace è necessaria per il buon funzionamento del progetto software e anche altri strumenti di gestione del progetto sono implementati all'interno della comunicazione in modo che possano facilitare ulteriormente la comunicazione durante il ciclo di vita del progetto.
  2. Coraggio : con drastici cambiamenti nelle esigenze dei clienti, spetta agli sviluppatori intraprendere coraggiosamente le sfide che emergono all'ultimo minuto o che contraddicono le modifiche applicate al progetto in qualsiasi momento.
  3. Feedback - Il feedback viene implementato attraverso test unitari costanti e i risultati vengono valutati e di conseguenza implementati all'interno dei cicli di sviluppo del progetto. I clienti vengono tenuti a distanza ravvicinata e viene presentata una demo non appena viene completato un ciclo di sviluppo in modo da poter integrare il feedback.
  4. Rispetto : ogni ciclo di sviluppo porta con sé il successo ad una nuova pietra miliare e esemplifica solo i contributi messi nei cicli intrapresi.
  5. Semplicità : la programmazione estrema (XP) è più efficiente quando la progettazione è semplice e l'implementazione è pianificata in modo chiaro ed efficace. Molte programmazioni estreme si basano sulle sue semplici regole che ha in atto.

Cicli di pianificazione e feedback

La collaborazione nel team e la connessione quotidiana al business per lo sviluppo del prodotto ottimizzato costituiscono la spina dorsale della programmazione estrema (XP), mentre le storie degli utenti costituiscono la base della pianificazione di XP. Queste storie utente sono annotate sulle carte. La manipolazione di queste carte può dare vita allo scopo e al piano del progetto.

Questa pianificazione XP viene creata con tre livelli o livelli.

  • Mesi futuri
  • Prossima iterazione
  • Iterazione corrente

I piani sono sempre temporanei e la ricreazione dei piani deve essere effettuata prima della fine dell'ultimo piano. Cambiano come e quando c'è anche un leggero cambiamento nel progetto o nel suo programma. L'iterazione inizia nel momento in cui si verifica un cambiamento. Ricevi feedback dal cliente, rivisiti il ​​tuo piano. Stai in anticipo o in ritardo sul programma, rivisiti e cambi il tuo piano.

Attraverso la pianificazione entrano in vigore i progetti più appropriati per il prodotto da consegnare. Per quanto riguarda la programmazione estrema (XP), lo sviluppo guidato dai test (TDD) e il refactoring sono utilizzati per una progettazione efficace ed efficiente.

Avendo già l'essenza di Agile, il refactoring si presenta come uno strumento di progettazione importante e cruciale coinvolto nel processo di pianificazione. Il refactoring implica la realizzazione di alternanze progettuali e adeguamenti in accordo con le esigenze che sono state modificate. Con il refactoring nasce il concetto di test in modo unitario e accettabile.

I seguenti passaggi sono al centro dell'attenzione quando viene eseguito un ciclo di pianificazione o feedback. Ogni azione qui è iterativa e può essere eseguita in successione una volta avviata una modifica:

Ogni passaggio nella sequenza eseguita può essere di natura iterativa e può essere ripetuto come e quando viene avviata la sequenza di modifica e viene ricreato un nuovo piano per ogni iniziazione. Ad ogni passaggio è inoltre assegnata una durata particolare e viene pianificato un programma per il resto del feedback per ogni fase del prodotto.

  • Codifica per accoppiare la programmazione - secondi
  • Associare la programmazione al test unitario - minuti
  • Unit test per accoppiare negoziazione - ore
  • Abbina negoziazione a riunione stand-up - un giorno
  • Stand-up Meeting to Test di accettazione - giorni
  • Test di accettazione per la pianificazione iterativa - settimane
  • Pianificazione iterazione per la pianificazione del rilascio - mesi

Con il livello di iterazione richiesto, diventa obbligatorio per gli sviluppatori garantire e assicurare che il codice sia ben ordinato e di ottima qualità. La segnalazione di bug è un no-no rigoroso per gli sviluppatori che seguono l'estrema metodologia di programmazione per lo sviluppo del software.

Che cos'è la programmazione di coppia?

Poiché la risorsa centrale per la metodologia di programmazione estrema sono le persone e non i processi, sono le persone che gestiscono il concetto di programmazione a coppie. Aggiungendo produttività e qualità alla tabella, la programmazione delle coppie va in questo modo:

"Il codice inviato in produzione è creato da due persone che lavorano insieme sul codice da creare, seduti su un singolo computer."

I vantaggi di questo concetto di programmazione di coppia sono i seguenti:

  • Miglioramento della qualità del software : sebbene non vi siano aggiunte di funzionalità con due persone sedute insieme o separate, la concentrazione su un singolo computer sicuramente aumenta la qualità del codice reso
  • Nessun effetto sui tempi di consegna : fornire una situazione vantaggiosa per il progetto e le parti interessate, utilizzando due responsabili funzionali per ottenere un codice di alta qualità senza perdita di tempo, è ottimo per lo sviluppo del software
  • Risparmio sui costi per le fasi successive - con il codice di alta qualità già reso, l'impatto che ha sulle fasi successive è enorme e il costo è sicuramente risparmiato con ogni iterazione che ha luogo

Associare la programmazione in quanto coinvolge due individui distinti che lavorano insieme a tavoli uguali, diventa essenziale per loro coordinarsi a un livello superiore, indipendentemente dal livello di esperienza. È un'abilità sociale che richiede tempo per imparare e ha bisogno di due professionisti dedicati che vogliono fare la differenza nel mondo dello sviluppo del software.

La programmazione delle coppie è sempre seguita da un'ampia e continua integrazione delle nuove funzionalità incorporate e il ciclo continua.

Regole

Mentre sappiamo che le regole messe in atto nel mondo della programmazione estrema (XP) si basano sul principio e sul valore della semplicità, è essenziale avere una buona visione di queste regole che compongono una grande metodologia nelle tecniche di sviluppo del software.

Pianificazione

Nella pianificazione, il project manager e il suo team esaminano attentamente i requisiti e aderiscono alle seguenti regole:

  • Le storie degli utenti devono essere annotate
  • La pianificazione del rilascio dovrebbe comportare una pianificazione del rilascio
  • Il progetto è suddiviso in iterazioni
  • Le pubblicazioni devono essere frequenti ma di piccole dimensioni
  • La pianificazione dell'iterazione dovrebbe iniziare l'iterazione

Gestione

La gestione delle attività assegnate e la durata di ciascuna attività peculiare è il ruolo del project manager. È importante che il project manager sia consapevole dei rischi e dell'aderenza di ogni fase intrapresa dai membri del team e guidi la forza lavoro e le risorse di conseguenza per soddisfare il concetto di programmazione estrema (XP). Ecco alcune delle regole che devono passare attraverso un PM:

  • Il team dovrebbe ricevere uno spazio di lavoro aperto per estendere la propria immaginazione
  • Il programma assegnato dovrebbe essere realistico e accuratamente calibrato
  • Ogni giornata lavorativa dovrebbe iniziare con una riunione stand-up
  • La collaborazione e il lavoro di squadra sono componenti importanti e richiedono il massimo incoraggiamento
  • La velocità del progetto deve essere misurata durante ogni incorporazione di modifica
  • Le persone non dovrebbero mai rimanere stagnanti e dovrebbero essere spostate
  • Lo sterzo della programmazione estrema (XP) è fondamentale e la pianificazione dovrebbe essere avviata ad ogni opportunità di cambiamento

Progettazione

La progettazione è la fase che segue attentamente la pianificazione e determina il modo in cui i requisiti vengono gestiti nella fase iniziale del progetto. Un buon design riflette il processo di pensiero e la creatività e richiede un numero minore di iterazioni, garantendo così alti livelli di qualità all'inizio del progetto. Essendo un riflesso della fase di pianificazione, qui ci sono alcune regole da tenere a mente durante l'implementazione dei progetti nella programmazione estrema (XP):

  • La semplicità è la chiave
  • Nessuna funzionalità dovrebbe essere introdotta in una fase iniziale
  • Il refactoring è essenziale in ogni fase per fornire progetti di prodotti efficienti ed efficaci
  • Le soluzioni Spike possono essere utilizzate per ridurre il numero e l'intensità del rischio sul progetto software

Coding

Una volta che il progetto è in atto, è il momento di mettere tutte le mani sul ponte e dare il via libera per la creazione e la generazione di codice che entrerà in produzione per il collaudo e la consegna. La codifica è la fase che dimostra l'effettivo funzionamento della metodologia del progetto e incoraggia l'iterazione nel modo più efficace. Ecco alcune regole rapide da tenere presenti quando si è in fase di programmazione:

  • Il cliente deve essere sempre aggiornato durante le versioni del prodotto
  • Il codice deve rispettare gli standard e le pratiche di codifica adottati in tutto il mondo
  • Il test unitario dovrebbe essere il codice come inizio
  • Il codice di produzione dovrebbe essere sottoposto a programmazione di coppia per l'alta qualità
  • Integra spesso i codici e dovrebbe essere eseguito da una coppia solo in un determinato momento
  • La responsabilità dovrebbe essere condivisa e dovrebbe essere promosso un intenso lavoro di squadra
  • La programmazione delle coppie dovrebbe avvenire su un computer
  • La disposizione preferenziale della coppia dovrebbe essere affiancata

analisi

Con il codice pronto e funzionante, i test arrivano come sigillo del buon funzionamento delle linee di codice. Test dei moduli come timbro del sigillo per garantire che il software sia pronto per il consumo. Di seguito sono riportate le regole messe in atto per i test all'interno di Extreme Programming (XP):

  • Un codice dovrebbe contenere unit test
  • Una versione richiederebbe dei codici per superare questi test unitari
  • I test dovrebbero essere creati al rilevamento di bug
  • I test di accettazione dovrebbero avere un'alta frequenza e i risultati dovrebbero essere pubblicati
  • Gli utenti non dovrebbero rilevare alcun bug all'interno di un codice

Quando utilizzare la programmazione estrema (XP)?

Extreme Programming è nata a causa della necessità di aggirare un progetto che ha portato con sé molti cambiamenti in molte giunture nel tempo. È diventato necessario che la metodologia adottata fosse iterativa e semplice al suo interno. Le seguenti sono le situazioni che possono richiedere l'uso della programmazione estrema (XP):

  • I clienti non hanno una buona idea della funzionalità del sistema
  • I cambiamenti sono dinamici e dovrebbero cambiare dopo brevi intervalli di tempo
  • Gli affari sono in forte aumento
  • Le risorse allocate sono minime; nessuno staff enorme
  • È necessario un notevole aumento della produttività
  • Il rischio richiede alti livelli di mitigazione
  • Elevate disposizioni per i test

Quindi, ecco la programmazione estrema (XP) per te in breve e in parole semplici. Questa metodologia ha riportato successi in tutte le imprese di sviluppo software e ha avuto un grande successo in tutta la sua storia di implementazione. Nata da requisiti normali e semplicistici, la programmazione estrema (XP) sta lentamente guadagnando il riconoscimento come metodologia con cui fare i conti.

Se ti piace il concetto di Extreme Programming (XP), dai un occhiata a questo articolo. Se ti è piaciuto, assicurati di condividere e commentare le tue opinioni.