O per dirla in un altro modo su come garantire che l'architettura o la qualità non ne risentano, facendo agile.
Alcune delle interpretazioni nella gestione dell'architettura in agile sono riportate di seguito (generalmente valide anche per i test)
* Fai architettura finché i rischi non cadono dal tuo radar * design minimale in anticipo, in modo da non pagare un prezzo orribile per richieste di modifica ragionevoli. * Architettura / infrastruttura "appena sufficiente" per ogni funzione / requisito
(I precedenti sono stati trovati nella ricerca di altre domande relative a StackOverflow)
Un esempio / scenario ipotetico è che esiste un requisito per sviluppare un modulo di elaborazione degli ordini nel sistema esistente. Le linee guida di seguito sono negoziate e concordate.
- L'architettura del modulo dovrebbe essere in grado di gestire l'elaborazione di 10 ordini nell'arco di un minuto.
- Il time to market è di 4 settimane, la pianificazione viene eseguita per gestire 2 sprint di 2 settimane.
- Il Business è soddisfatto delle aspettative di rendimento medio.
Una volta consegnato il modulo, diciamo che sono richiesti i seguenti miglioramenti / modifiche.
- Migliora l'elaborazione a 15 ordini al minuto.
- Migliora il rendimento del 25%.
- Il time to market è di 2 settimane.
Quindi, supponendo che gli ulteriori requisiti da parte del cliente / azienda vengano e che sono i benvenuti, ma in futuro man mano che le iterazioni vanno avanti, l'architettura deve essere revisionata e anche la verifica della qualità del modulo richiede più tempo.
E quanto sopra non è un risultato felice, poiché le stime aumentano e vi è una comprensibile incapacità di soddisfare rapidamente ulteriori aspettative o requisiti. Anche se può essere fatto in un dato intervallo di tempo con una qualità sufficiente, vorrei solo che avremmo potuto fare qualcosa a riguardo prima e non affrontare questa situazione in questo momento.
Col senno di poi, l'architettura per scalare la prima iterazione sarebbe l'ideale, ma non era l'obiettivo e l'obiettivo. L'attenzione è sempre puntata sul time to market e sul raggiungimento degli obiettivi aziendali / clienti in un determinato periodo di tempo. Sfortunatamente, a lungo termine ha un impatto sullo sviluppo.
Cosa si può fare per evitare la menzionata trappola nell'esempio, nel migliorare l'architettura o il processo di test in modo iterativo?