Concetto: Concentrare continuamente l'attenzione sulla qualità
Questo principio introduce la qualità e descrive come occuparsene durante tutto il processo.
Descrizione principale

Introduzione

Questo principio enfatizza che, per ottenere la qualità, questa deve essere perseguita lungo tutto il ciclo di vita del progetto. Un processo iterativo è particolarmente adatto all'ottenimento della qualità poiché offre molte opportunità di misurazione e di correzione.

            
Vantaggi
  • Qualità superiore 
  • Consapevolezza anticipata dell'avanzamento e della qualità
Pattern
  1. Verificare che il team disponga della qualità per il prodotto.
  2. Testare presto e continuamente al passo con l'integrazione delle capacità dimostrabili.
  3. Creare in maniera incrementale l'automazione del test.
Anti-pattern
  • Effettuare una revisione di tutti gli artefatti e completare tutte le verifiche di unità prima della verifica di integrazione.
  • Condurre una revisione, effettuata da persone con pari competenze, in profondità di tutti gli artefatti intermedi, che è controproducente perché ritarda la verifica dell'applicazione e quindi l'identificazione di problematiche principali.
  • Completare tutte le verifiche di unità prima di effettuare la verifica di integrazione, ritardando ancora l'identificazione delle problematiche principali

Discussione 

Migliorare la qualità non significa semplicemente "soddisfare i requisiti" o creare un prodotto che soddisfa le esigenze degli utenti e le aspettative. Piuttosto, la qualità include anche l'identificazione delle misure e dei criteri che ne dimostrano il raggiungimento e l'implementazione di un processo che verifica che il prodotto abbia raggiunto il grado di qualità desiderato e che ciò può essere ripetuto e gestito.

Garantire un'alta qualità richiede più della partecipazione del team di verifica; richiede che l'intero team disponga della qualità. Coinvolge tutti i membri del team e tutte le parti che compongono il ciclo di vita:

  • Gli analisti sono responsabili della testabilità dei requisiti e devono essere specificati dei chiari requisiti per l'esecuzione dei test.
  • Gli sviluppatori devono progettare le applicazioni con in mente la fase di test e sono responsabili della verifica del proprio codice.
  • I manager devono verificare che siano in atto i giusti piani di test e che siano a disposizione le giuste risorse per la creazione di metodi di test (testware) e per l'esecuzione dei test richiesti.
  • I tester sono degli esperti della qualità. Guidano il resto del team alla comprensione delle problematiche relative alla qualità del software e sono responsabili di tutte le verifiche del prodotto (incluse quella funzionale, di sistema e delle prestazioni).

Quando si verifica una problematica inerente alla qualità, ogni membro del team deve essere pronto a contribuire alla risoluzione del problema.

Uno dei principali vantaggi dello sviluppo iterativo è che consente un approccio di test precoce e continuativo, come illustrato di seguito. Quando si giunge al termine del progetto, e poiché le capacità più importanti sono state implementate all'inizio, il software più essenziale sarà stato già attivo e in esecuzione da mesi, ed è quindi probabile che sia stato testato per mesi. Non sorprende che la maggior parte dei progetti che adottano lo sviluppo iterativo asserisca che un aumento nella qualità sia un risultato primario tangibile del processo migliorato.

Il software sviluppato in ciascuna iterazione viene testato non appena creato. La verifica di regresso assicura che non vengano introdotti dei nuovi difetti nel processo.

La verifica inizia presto e viene estesa in ogni iterazione
Lo sviluppo iterativo consente una verifica precoce. Il software sviluppato in ogni iterazione viene testato non appena creato. La verifica di regresso assicura che non vengano introdotti dei nuovi difetti quando le iterazioni aggiungono delle funzionalità. Riferimento: Materiale di supporto: Gestione della qualità.

Man mano che viene costruita l'applicazione in modo incrementale, è necessario creare in modo incrementale l'automazione del test per rilevare presto i difetti, minimizzando gli investimenti anticipati. Quando viene progettato un sistema, viene considerato come deve essere testato. Effettuare le scelte giuste di progettazione migliora sensibilmente la possibilità di automatizzare le verifica. E' anche possibile generare il codice di test direttamente dai modelli di progettazione. In questo modo si risparmia tempo, si forniscono degli incentivi per una verifica precoce ed aumenta la qualità della verifica riducendo al minimo il numero di bug contenuti nel software del test. La verifica automatizzata è stata un'area chiave di attenzione, fra gli altri, per la comunità agile (agile community), il cui lo scopo è di automatizzare la verifica di tutto il codice, e dove i test vengono scritti prima del codice (progettazione test-first).