In che modo un team Scrum tiene conto delle attività relative all'infrastruttura nella riunione di pianificazione?


33

In che modo un team Scrum tiene conto delle attività di sviluppo / infrastruttura nella riunione di pianificazione?

A prima vista, non sembrano storie di utenti poiché non forniscono valore all'utente finale.

Tuttavia, allegarli come attività a una particolare storia utente a volte non ha nemmeno senso. Ad esempio, supponiamo che l'attività sia: "Setup Bamboo". Tale attività non è richiesta per completare la user story poiché il team potrebbe creare e distribuire manualmente. Pertanto, allegarlo a una user story non ha senso poiché questa attività non è richiesta per completare la user story.

Quindi, questo suggerisce che queste attività diventano storie utente. Ma poi, se la storia del team li indica, allora questo cambia la velocità che è strana dal momento che il Product Owner vuole conoscere la velocità contro il suo backlog, non contro il suo backlog con un mucchio di storie di utenti tecnici ad esso collegate.

Risposte:


25

In realtà non sono storie utente. Sono storie di stakeholder. A meno che il software non sia effettivamente pagato direttamente dagli utenti, è raro che una storia venga creata interamente a loro vantaggio.

Ti do un paio di esempi:

  • articoli con parole chiave, che consentono agli inserzionisti di avere annunci più efficaci
  • CAPTCHA, che sono lì per impedire ai moderatori di gestire manualmente lo spam.

La maggior parte delle storie tecniche in realtà offre un vantaggio commerciale, ma raramente è per gli utenti. La loro frase in un modo diverso può aiutare. Normalmente utilizzo il modello di Iniezione funzioni di Chris Matts:

In order to <achieve my goal>
As <the stakeholder who wants the goal>
I want (<some users to do>) <some stuff>.

Questo riconosce esplicitamente tutti i tipi di stakeholder, incluso il team di sviluppo. Ora puoi anche esprimere le tue storie tecniche, richiamando il vantaggio aziendale:

In order to minimize the risk of deploying something broken
As the team deploying the code
We want to spend a few days on an automated deployment system.

Ho scritto un paio di post di blog su questo: non sono User Story , e Feature Injection e gestiscono storie tecniche . Spero che aiutino.


3
Semantica ... IMHO questo va contro la filosofia Agile; aggiungendo la separazione necessaria laddove non fornisce alcun valore reale se non i caldi sentimenti confusi.
Aaron McIver,

5
Stai parlando per esperienza o teorizzando? Lo chiedo perché ho usato questo modello con un numero di team ora e ho scoperto che mettere l'obiettivo al primo posto aiuta davvero a stabilire ciò che è necessario per raggiungere la visione del progetto. Mike Cohn usa "così" facoltativamente. Non ci credo.
Lunivore,

1
Vedo che questo modello è utile per aiutare a comunicare il valore dell'attività tecnica da eseguire all'OP non tecnico. C'è una differenza tra "come analista di QA voglio un server di integrazione continua in modo che l'applicazione venga testata ogni giorno automaticamente" e "Al fine di ridurre la quantità di test manuali necessari alla fine del progetto e la probabilità di un errore durante la produzione, come team di controllo qualità vogliamo testare un server di integrazione continua ". Mostrare l'attività nascosta fornisce all'OP informazioni sufficienti per decidere se includerla o meno.
Soronthar,

1
@Soronthar Dove finisce allora? "Al fine di ridurre i livelli di frustrazione, come team di sviluppo vogliamo creare le nostre regole" È di natura circolare. Questo è uno dei motivi per cui sei rimasto concentrato sull'utente e basta. Le attività dovrebbero essere nascoste all'OP; poiché l'OP non dovrebbe occuparsi di tali dettagli.
Aaron McIver,

9
Oh, e nel caso in cui non fosse chiaro - mi interessa di più fare un lavoro utile che non di Scrum. O magra. O BDD. Credo anche che il lavoro più utile nel software riguardi l'apprendimento e la gestione dei rischi. Quando la metodologia ostacola il lavoro utile, tendo verso il lavoro utile.
Lunivore,

12

La velocità è una misura della capacità della squadra di fare un lavoro utile (al contrario di Drag). Le attività relative alle infrastrutture continuano a fornire valore all'utente finale, anche se indirettamente, rendendo il team più efficiente a lungo termine. Non ho problemi a rintracciare queste cose come storie utente (in questo caso l'utente è il team di sviluppo) e assegnarle le priorità in modo appropriato. Un Product Owner in buona comunicazione con il / i cliente / i dovrebbe essere in grado di capire dove possono svolgersi tali compiti senza interrompere i risultati finali.


3
Penso che sia pericoloso per i team offuscare la distinzione tra cose che sono direttamente preziose per l'utente e cose che si spera offrano un valore indiretto. In particolare, un approccio "tutto ciò che ci piace è prezioso" incoraggia la doratura degli sviluppatori e le infrastrutture per il bene delle infrastrutture. Incoraggio fortemente le persone a contare solo storie con un valore commerciale diretto verso la velocità, perché questa è l'unica cosa per cui i clienti pagheranno denaro contante.
William Pietri,

3
Valzer con gli orsi. Tutto ciò che fai che è veramente prezioso è per lo più prezioso perché nessuno lo ha mai fatto prima (altrimenti ci sono altri, più economici, modi per farlo). La maggior parte di ciò che facciamo che è prezioso è imparare a fare le cose nuove. Le attività relative all'infrastruttura ci aiutano a ottenere feedback sulle novità e ad apprendere più rapidamente. Sono con @Kristo se ci aiuta a imparare più rapidamente.
Lunivore,

@Lunivore - La differenza è che nessuno ti paga per l'apprendimento. Ti pagano per quello che fai con l'apprendimento. I team dovrebbero sempre impiegare del tempo per migliorare i loro strumenti e le loro conoscenze. Ma contarlo come velocità lo confonde con il tipo di lavoro che la squadra è lì per fare.
William Pietri,

Non si tratta solo di strumenti e conoscenze. Esperimento di pensiero di Ashley Johnson: pensa all'ultimo progetto che hai fatto. Pensa a quanto tempo ci vorrebbe per farlo di nuovo con le stesse persone, gli stessi requisiti, la stessa tecnologia, ma dopo aver appreso tutto ciò che hai imparato. Le citazioni dei PM vanno dal 25% al ​​33% circa, il resto è quanto apprendiamo nei progetti software. Leggi il post di Dan North su Deliberate Discovery: dannorth.net/2010/08/30/introducing-deliberate-discovery
Lunivore

11

Fateli gradualmente.

Se nessun stakeholder lo desidera, non trasformarlo in una storia. Prenditi cura di esso, un po 'alla volta. Ad esempio, la prima volta che si distribuisce manualmente. La seconda volta, ne automatizzi un po '. La terza volta, automatizzi un po 'di più. Alla fine, la tua build non è il problema più grande, quindi ti concentri su qualcos'altro.

Avrai più di queste attività incentrate sullo sviluppatore all'inizio, e va bene; la tua velocità (misurata dalle storie) sarà solo inferiore. Questa è una rappresentazione corretta della situazione. Ma ne avrai sempre alcuni, quindi è importante che il team abbia l'abitudine di fare ciò che è necessario per migliorare il processo.


+1: Spike soluzione la prima volta, quindi refactoring per essere migliore e più affidabile la seconda volta.
S.Lott

Quindi, come puoi assicurarti che le attività incentrate sullo sviluppatore non subiscano lo sprint, soprattutto quando non hai ancora stabilito una buona metrica della velocità? Non vorrei perdere un risultato finale perché abbiamo speso troppo tempo in cose che ci aiuteranno a lungo termine.
Kristo

E dovresti trovare il tempo per una riflessione regolare e apportare comunque miglioramenti di processo come questo.
Michael,

@Kristo, non credo che il tuo cliente / product manager ti lascerebbe andare via con questo. Anche senza una velocità stabilita, farai una buona ipotesi e negozierai il valore da consegnare per quei primi sprint. Inoltre, se fai un picco come @ S.Lott ti suggerisce di non consegnare comunque.
Michael,

@Kristo: ti assicuri facendolo gradualmente e riflettendo regolarmente. Quando inizi, tutto ciò che sai è che farai sicuramente la cifra sbagliata. Ogni settimana, parla se dovresti fare più o meno infrastrutture e se ti stai concentrando sulle cose di maggior valore. È sempre un atto di bilanciamento.
William Pietri,

6

IMHO l'approccio ideale sta ponendo lo sforzo infrastrutturale come attività nella storia dell'utente in cui ha valore per la prima volta; come hai già detto.

Prendendo il tuo esempio; la costruzione e la distribuzione manuale implica che si tratta di uno sforzo continuo e non ha alcuna forma di completamento. Esiste indefinitamente.

Lo stesso si può dire per il codice che automatizza qualsiasi porzione di sforzo in un'applicazione tipica che è stata precedentemente eseguita manualmente. Definire questo sforzo come un'attività in una user story definisce completo; che per sua stessa natura ha valore per l'utente finale.

Potresti certamente costruire e distribuire l'applicazione ogni singolo sprint, ma questo diventa parte delle attività quotidiane che non vengono tracciate formalmente tramite il backlog e quindi tutto diventa discutibile.


Grazie per questa risposta Finalmente chiarisce come ciò debba essere fatto: "l'approccio ideale consiste nel porre lo sforzo infrastrutturale come attività nella storia dell'utente in cui ha valore per la prima volta".
Igor Popov,

In realtà questo lavoro di infrastruttura dovrebbe far parte della definizione di fatto.
Igor Popov,

4

Le storie utente definiscono un valore commerciale dal punto di vista dell'utente. A causa di ciò, le attività infrastrutturali sono generalmente considerate "rifiuti". Ciò non significa che non siano necessari. Significa che svolgere più attività infrastrutturali offrirà un valore commerciale inferiore. A causa di ciò, le attività di infrastruttura non devono essere considerate storie utente e non devono essere associate a storie utente.

In una riunione di pianificazione, il team deve considerare quali attività di infrasturcture saranno assolutamente necessarie durante il prossimo sprint. L'impegno sarà fatto tenendo presenti questi compiti infrastrutturali. Interesserà la velocità del team, che è il risultato corretto perché la velocità misura la quantità di valore aziendale che il team può offrire.


2

Non ho mai equiparato le storie degli utenti a dover fornire valore all'utente finale. Può essere comune, ma non è il modo in cui gestiamo le storie degli utenti. A volte, questi tipi di attività sono considerati picchi, ma abbiamo anche avuto storie utente regolari, punto stimato come qualsiasi altra storia utente.


Alcuni team lavorano in questo modo, ma ciò rende più difficile misurare il valore fornito. Personalmente, suggerisco ai team di creare solo storie con valore commerciale. (I picchi hanno un valore commerciale perché le persone del prodotto acquistano informazioni sulle opzioni future e sui loro costi.)
William Pietri,

Ma qual è il valore aziendale? È un termine ampio e tutto ciò che consente a un'azienda di rilasciare software prima / meglio / ecc ha un valore per tale attività.
Andy Wiesendanger,

La distinzione che sto facendo è tra le cose di valore diretto principalmente per il team e le cose di valore diretto principalmente per le persone che in realtà siete lì per servire. Penso che dovresti considerare quest'ultimo solo per la velocità perché è l'unico valore che alla fine conta. Le cose fatte per aiutare a migliorare la creazione di valore sono contabilizzate in velocità attraverso una migliore velocità a lungo termine. Contarlo subito distorce gli incentivi e conta due volte il guadagno.
William Pietri,

2

Da quello che ho visto gran parte dell'infrastruttura è considerata un dato di fatto. Questo include cose come:

  • Sistema di controllo di revisione;
  • Sistema di compilazione automatizzato;
  • IDE e altri strumenti di sviluppo;
  • Server di sviluppo;
  • Processo di distribuzione; e
  • Processo e standard del progetto.

Molte metodologie con cui ho lavorato non prestano molta attenzione a loro. Questi formano ciò che chiamo Release 0. Queste cose dovrebbero essere a posto prima di iniziare lo sviluppo. Una volta che inizi a lavorare sulle storie, eventuali cambiamenti in queste cose potrebbero essere monitorati come miglioramenti del processo.

Sebbene il team di sviluppo possa avere input, la maggior parte di questi elementi deve essere gestita da un team di supporto del progetto. La standardizzazione di questi elementi in più progetti dovrebbe comportare un significativo rimborso per l'organizzazione.


1
+1: Se questo non è a posto, Agile è davvero difficile. Infrastruttura e piattaforma stabili, comprovate, una sorta di prerequisito per l'agilità.
S.Lott

1

Considera quanto segue:

  • Scrum team che aggiunge le funzionalità principali a una suite di prodotti esistente.

  • È necessario aggiornare la tecnologia / strumenti / utilità di sviluppo per rimanere aggiornati sulla base delle migliori pratiche di progettazione.

  • Ha senso caricare anticipatamente una versione con questo lavoro in modo che nel corso della versione i problemi di Sprint possano essere risolti.

  • Poiché l'azienda ottiene un valore indiretto da questi articoli, suggerisco che, nell'interesse della trasparenza, si tratti di articoli di backlog di prodotto (PBI).

  • Il team dimensiona questi elementi e li tratta come se fossero qualsiasi PBI.

Questo problema per me si riduce al fatto che non voglio perdere tempo cercando di capire come nascondere questo lavoro come attività sotto altri PBI più centrati sul business.

Non voglio che il dimensionamento di PBI sia distorto da questo tipo di lavoro infrastrutturale. Voglio vedere cosa viene fatto e capire per cosa sto pagando.

Penso anche che sia utile far comprendere al team l'impegno assunto dall'azienda investendo nell'infrastruttura necessaria per fornire soluzioni di qualità.


0

XP consiglia di avere uno "zero di iterazione" in cui sono impostati tutti gli strumenti e l'infrastruttura. Scrivere storie per questi è facoltativo, ma probabilmente è una buona idea. Essere in grado di testare la tua infrastruttura (build incrementale, test e distribuzione automatizzati, notifiche, ecc.) È utile


2
XP non lo consiglia. Alcune persone lo fanno, ma sicuramente non fa parte della programmazione estrema come definita da Beck, et al. Personalmente, penso che Iteration Zero sia una cattiva idea.
William Pietri,

Un altro problema, non si inizia sempre da 0, è possibile rendersi conto che è necessario qualcosa adesso o nel prossimo sprint.
Andy Wiesendanger,

@William: vedi "Pianificazione della programmazione estrema" di Kent Beck, capitolo 15, pagina 66.
Steven A. Lowe,

Questa non è una raccomandazione. Dicono che è un'idea e dicono "Se non hai mai lavorato con la tua tecnologia prima, considera di passare due settimane a ottenere la tecnologia proprio prima di iniziare a programmare". E non suggeriscono "tutta l'infrastruttura", solo test automatizzati di base, compilazione e distribuzione di script.
William Pietri,

@William: aha, vedo a cosa stai arrivando. Non intendevo tutte le infrastrutture software , ma solo le cose che hai citato
Steven A. Lowe,

0

Nel nostro team facciamo quanto segue:

  1. Assumi un fattore di messa a fuoco più basso .
  2. Cerca di includere tali attività nelle storie degli utenti che devono effettivamente essere implementate.
  3. Se alcune attività sono totalmente necessarie, ma non forniscono alcun valore commerciale diretto (come la migrazione di unit test da un framework all'altro), all'inizio dello sprint creiamo un elenco di "task continui" . Si tratta di attività legate allo sviluppo che non sono storie, ma il team di sviluppo le vuole svolgere. Elenchiamo questi compiti sulla nostra lavagna, mantenendola comunque separata dalle storie. Durante lo sprint, ad ogni incontro quotidiano esaminiamo ciò che è stato fatto per realizzarli.

Il passaggio 2 è il più importante. Come in una pratica agile, in Scrum provi a fare il minor numero possibile per svolgere i tuoi compiti. Prendilo come un modo per non sprecare la tua vita nel fare un lavoro inutile: la mia esperienza mostra che fino al 50% delle cose "sarebbe bello" finiscono per essere abbandonate e non mantenute a lungo termine.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.