Funzioni agili e di consegna

1

Nella mia azienda, abbiamo adottato metodologie complete Agile e strumenti correlati.

Pianifichiamo i nostri sprint in base a una serie di caratteristiche richieste dai clienti entro la fine dello sprint. Di solito, non consegniamo le funzionalità richieste dal cliente entro la fine dello sprint e portiamo avanti gli sprint futuri.

Questo mi preoccupa a causa dell'onda di prua che stiamo creando con un backlog in cui il backlog cresce di problemi e le funzionalità continuano ad essere aggiunte. Il cliente desidera che entrambi i problemi siano risolti e le funzionalità sviluppate senza alcuno sforzo.

So che Agile significa consegnare il software di lavoro più velocemente.

In che modo Agile affronta questo caso in cui abbiamo scadenze difficili per consegnare alla fine funzionalità che possono essere spinte all'infinito?

Ciò ha a che fare con il debito tecnico; tuttavia non se programmare come caratteristica o bug. Ha più a che fare con quanto tempo è troppo lungo per spingere le funzionalità a destra.

Ho provato a tenere gli sprint aperti e la mia squadra ha disdegnato questo approccio perché dicono che influenza le loro metriche per la velocità.

    
posta Brian 01.11.2017 - 12:36
fonte

3 risposte

7

Gli sprint nel main dovrebbero essere della stessa dimensione - ci sono eccezioni occasionali ma estendere uno sprint per completare il lavoro è risolvere il problema sbagliato.

Se non stai completando gli sprint, devi capire perché. Ti stai impegnando a lavorare troppo? Le storie sono sufficientemente curate? I bloccanti vengono lasciati a marcire? Hai un collo di bottiglia di certe abilità? Gli sviluppatori sono pienamente impegnati o hanno altre distrazioni (altri progetti, supporto, amministrazione, ecc.)? Tutto ciò dovrebbe essere affrontato nella retrospettiva.

Quindi, devi affrontare come porti gli oggetti. Sono semplicemente urtati come sono o possono essere divisi la storia.

L'elefante nella stanza sembra che tu ti stia impegnando a continuare a lavorare su storie incomplete mentre accetti un lavoro extra. Vorrei stroncare questo sul nascere in questo momento. Hai bisogno di una qualche forma di valutazione in cui il cliente accetti quali sono le priorità altrimenti i tuoi sprint diventeranno sempre più irraggiungibili.

    
risposta data 01.11.2017 - 12:44
fonte
4

Reclami che la tua squadra è "agile" ma continui a mettere le cose in sprint che non verranno eseguite in base alla tua cronologia. Puoi essere agile, ma non sarai molto bravo se il tuo cliente non lo è. Il tuo caso è un perfetto esempio di come questo non funzioni davvero.

Nel Agile Manifesto , "... marketing, o gestione, o clienti esterni, clienti interni e, sì, anche gli sviluppatori non vogliono prendere decisioni difficili da negoziare, quindi impongono richieste irrazionali attraverso l'imposizione di strutture di potere aziendali.Questo non è semplicemente un problema di sviluppo del software, viene eseguito in Dilbertesque organizzazioni. "

Pianificare uno sprint dovrebbe tenere conto di quanto lavoro hai potuto fare in passato e non di quanto qualcuno "voglia" di fare. Questa è la decisione di trade-off. Ad un certo punto devi dire al cliente quanto lavoro puoi fare e nient'altro. Se continui a fare meno, devi prometterti di meno. Assumi più o migliori programmi.

Fai un favore al tuo cliente e impara a dire no in anticipo anziché dopo lo sprint quando non sei riuscito a consegnare. Le richieste dei tuoi clienti sono irrazionali perché la tua azienda non li aiuta a gestire le loro aspettative.

    
risposta data 01.11.2017 - 13:38
fonte
3

Avere una grande quantità di riporto tra gli sprint è un segno che le storie non sono state appropriatamente corrette, e ciò richiede molto lavoro con il proprietario del prodotto per chiarire i requisiti e creare una definizione precisa di fatto. Alcuni di questi possono essere il modo in cui pianifichi i tuoi sprint, dovrebbero essere grandi quanto la quantità di punti che hai effettivamente consegnato in passato, non solo tutto ciò che un cliente vuole ora. Se hai un proprietario di un prodotto che desidera di più in uno sprint di quanto tu possa realizzare, devi tornare indietro e ottenere la serie di storie correttamente assegnate alle priorità che si adattano alle dimensioni dello sprint e non prendere più di quello. In una metodologia mischia / agile è responsabilità del team di sviluppo assicurarsi che gestiscano le dimensioni di uno sprint solo per quanto possono.

Sembra che tu abbia anche la convinzione che Agile significhi essere più veloce o che i tuoi clienti abbiano questa convinzione. Questo non è vero nel senso che molte persone credono che sia. Quando le persone agili dichiarano di fornire software di lavoro più veloce, stanno costringendo il software di lavoro a essere solo ciò che era nello sprint o in precedenti sprint. Puoi consegnare un sito che ha un sistema di pagamento funzionante più veloce, ma non avrà ricerca, recensioni, gallerie fotografiche, liste dei desideri, ecc. Agile garantisce il funzionamento del software più velocemente, non necessariamente il software completo più veloce (anche se ciò può accadere con un squadra matura).

Il processo agile non è eccezionale per spiegare come vengono gestite scadenze difficili, in genere è più implicito. È gestito prendendo i punti stimati della storia della funzione e usando Velocity per lavorare all'indietro per ottenere l'ultimo sprint in cui questi elementi potrebbero andare in tempo. Se le funzionalità non sono sufficientemente elevate per il backlog per arrivare agli sprint prima che possano essere completate in tempo, devono essere portate all'attenzione del proprietario del prodotto in modo che possano stabilire le priorità di conseguenza. Garantire che il backlog possa visualizzare in modo visibile le scadenze per gli articoli o avere un tracker separato per le scadenze che vengono riviste periodicamente durante il grooming sono buoni modi per tenere testa a queste cose. Il proprietario del tuo prodotto lavorerà con te per dare priorità al lavoro per rispettare le scadenze che sono veramente importanti, a volte potresti aver bisogno di perdere una scadenza che hai detto che avresti capito che puoi adattarti così tanto a uno sprint (non lo sono sostenendo di farlo apposta, ma a volte le persone hanno bisogno di una sveglia o le squadre sono eccessivamente drammatiche riguardo le scadenze).

Per quanto riguarda la gestione del debito tecnico, l'unico vero modo che funzionerà è quello di far rispettare la regola del boy scout di migliorare il codice mentre si procede e di fare un calcolo approssimativo. È possibile creare storie di debito puramente tecnologiche, ma è estremamente raro che abbiano mai raggiunto una priorità sufficientemente alta su cui lavorare. Altre opzioni come gli sprint occasionali di manutenzione o l'impostazione di X ore a settimana come ripulitura / tempo libero / allenamento tendono a non funzionare altrettanto bene, poiché ci sarà la pressione per usare quel tempo per lavorare su priorità più alte.

    
risposta data 01.11.2017 - 13:21
fonte

Leggi altre domande sui tag