Beh, la risposta diretta alla tua domanda sarebbe Mu, temo: non ci sono abbastanza dettagli per indovinare se dovresti o meno smettere di provarci.
L'unica cosa di cui sono abbastanza positivo è che il livello di agilità dovrebbe essere guidato dalle esigenze del cliente / mercato (di cui non hai fornito informazioni).
- Ad esempio, come utente di IDE sono perfettamente felice di aggiornare alla nuova versione una o forse due volte l'anno e non ho mai fretta di farlo. Vale a dire se il loro ciclo di rilascio è di 3 mesi ( 12 settimane ), ne sono perfettamente soddisfatto.
D'altra parte, posso facilmente immaginare, per esempio, che la società di trading finanziaria fallisca se il loro software si adatta a più di un mese per adattarsi ai cambiamenti del mercato - il ciclo di test di 12 settimane in questo caso sarebbe una strada per l'inferno. Ora, quali sono le esigenze del tuo prodotto in questo senso?
Un'altra cosa da considerare è il livello di qualità richiesto per soddisfare le esigenze dei clienti / del mercato?
- Caso in questione: in una società in cui ho lavorato una volta abbiamo scoperto che abbiamo bisogno di alcune nuove funzionalità in un prodotto concesso in licenza da un fornitore di software. Senza questa funzionalità abbiamo sofferto piuttosto fortemente, quindi sì, volevamo davvero che fossero agili e fornissero l'aggiornamento entro un mese.
E sì, sembravano agili e sì hanno rilasciato quell'aggiornamento in un mese (se il loro ciclo di QA è di 12 settimane, probabilmente lo hanno semplicemente ignorato). E la nostra funzione ha funzionato perfettamente - immagino che avremmo dovuto essere perfettamente felici? no! abbiamo scoperto un bug di regressione di showstopper in alcune funzionalità che prima funzionavano bene - quindi abbiamo dovuto attenerci con la versione precedente.
Passò un altro mese: pubblicarono un'altra nuova versione: la nostra funzionec'era ma c'era anche lo stesso bug di regressione: di nuovo, non abbiamo effettuato l'aggiornamento. E un altro mese e un altro.
Alla fine siamo riusciti a eseguire l'aggiornamento solo dopo sei mesi, per la loro agilità.
Ora, guardiamo un po 'più da vicino in queste 12 settimane che menzioni.
Quali opzioni hai preso in considerazione per abbreviare il ciclo del QA? come puoi vedere dall'esempio sopra, semplicemente saltarlo potrebbe non darti quello che ti aspetti, quindi è meglio essere, bene, agili e considerare diversi modi per affrontarlo.
Ad esempio, hai considerato i modi per migliorare la testabilità del tuo prodotto?
Oppure, hai preso in considerazione la soluzione della forza bruta per assumere solo più QA? Per quanto possa sembrare semplice, in alcuni casi questa è davvero la strada da percorrere. Ho visto la gestione inesperta che cercava di risolvere i problemi di qualità del prodotto assumendo ciecamente sempre più sviluppatori senior dove sarebbe bastato solo un paio di tester professionisti medi . Abbastanza patetico.
L'ultimo ma non meno importante: penso che uno dovrebbe essere agile sull'applicazione stessa dei principi agili. Voglio dire, se i requisiti del progetto non sono agili (stabili o cambiano lentamente), allora perché preoccuparsi? Una volta ho osservato il top management forzare Scrum in progetti che stavano andando benissimo senza. Che spreco è stato. Non solo non ci sono stati miglioramenti nella loro consegna, ma peggio ancora, sviluppatori e tester sono diventati infelici.
aggiornamento basato sui chiarimenti forniti nei commenti
Per me, una delle parti più importanti di Agile sta avendo un rilascio spedibile alla fine di ogni sprint. Ciò implica diverse cose. In primo luogo, è necessario eseguire un livello di test per garantire che non si verifichino bug in grado di mostrare se si ritiene di poter rilasciare la build a un cliente ...
Rilascio disponibile . Hm. Hmmm. Considera di aggiungere una o due dosi di Lean al tuo cocktail Agile. Voglio dire, se questo non è un bisogno del cliente / mercato, ciò significherebbe solo uno spreco di risorse (test).
Per quanto mi riguarda, non vedo nulla di criminale nel trattare Sprint-end-release come un semplice checkpoint che soddisfa la squadra.
- dev: sì, uno sembra abbastanza buono da passare ai tester; QA: sì, uno sembra abbastanza buono per il caso se sono necessari ulteriori test shippable - cose del genere. Il team (dev + QA) è soddisfatto, tutto qui.
... Il punto più importante che hai fatto è stato alla fine della tua risposta in termini di non applicazione agile se i requisiti non sono agili. Penso che questo sia perfetto. Quando abbiamo iniziato a fare agili, abbiamo fatto il dial-in e le circostanze avevano un senso. Ma da allora le cose sono cambiate radicalmente e ci stiamo aggrappando al processo in cui potrebbe non avere più senso.
Hai capito esattamente. Anche da quello che descrivi sembra che tu sia arrivato allo stato (maturità team / management e relazione con il cliente) permettendoti di utilizzare lo sviluppo del modello iterativo regolare invece di Scrum. Se è così, allora potresti anche essere interessato a sapere che, per la mia esperienza, in casi come quello iterativo regolare sembrava più produttivo di Scrum. Molto più produttivo - non era semplicemente così tanto meno overhead, era semplicemente molto più facile concentrarsi sullo sviluppo (per QA rispettivamente a concentrarsi sui test).
- Di solito ci penso in termini di Ferrari (come iterativo regolare) vs Landrover (come Scrum).
Quando guidi su un'autostrada (e il tuo progetto sembra averlo raggiunto quell'autostrada ), la Ferrari batte l'inferno di Landrover.
È il fuoristrada in cui uno ha bisogno di una jeep non di un'auto sportiva - intendo se i tuoi requisiti sono irregolari e / o se l'esperienza di lavoro di squadra e di gestione non è così buona, dovrai scegliere Scrum - semplicemente perché provare ad andare regolarmente ti farà bloccato - come se la Ferrari si bloccasse in fuoristrada.
Il nostro prodotto completo è composto da molte parti più piccole che possono essere aggiornate indipendentemente. Penso che i nostri clienti siano molto disponibili ad aggiornare quei componenti più piccoli molto più frequentemente. Mi sembra che dovremmo forse concentrarci sul rilascio e sul QA di quei componenti più piccoli alla fine degli sprint ...
Sopra sembra un buon piano. Ho lavorato in un tale progetto una volta. Abbiamo spedito versioni mensili con aggiornamenti localizzati all'interno di piccoli componenti a basso rischio e l'approvazione del QA per questi è stata semplicissima.
- Una cosa da tenere a mente per questa strategia è quella di avere una verifica verificabile che il cambiamento sia localizzato dove previsto. Anche se questo arriva fino al confronto di file bit per bit per componenti che non sono cambiati, provalo o non lo spedirai. Il fatto è che è responsabile della qualità il rilascio della qualità, non noi sviluppatori.
È mal di testa del collaudatore assicurarsi che non si siano verificati cambiamenti imprevisti, perché francamente come sviluppatore ho abbastanza altre cose di cui preoccuparmi che è più importante per me. E per questo (i tester) hanno davvero bisogno di prove concrete che le cose siano sotto controllo con il rilascio che test-to-ship.