Dopo oltre due anni di lavoro in una struttura del dipartimento di sviluppo "lupo solitario" altamente silente, stiamo adottando Agile SCRUM. Grande. Mi piace Agile; come sviluppatore ti mantiene concentrato, impegnato e produttivo senza avere una miriade di parti interessate che spingono il progetto dopo il progetto in gola con l'aspettativa che siano state fatte ieri.
Vi è, tuttavia, un aspetto del passaggio a SCRUM rispetto al nostro attuale "modello", che penso che le persone al di fuori dello sviluppo non apprezzeranno minimamente. Questa è la loro attuale capacità di farci fare piccoli cambiamenti "mentre aspetti". Gran parte del nostro sviluppo è destinata esclusivamente al consumo interno e siamo quasi tutti nello stesso edificio. Quindi, è pratica comune da anni che un responsabile di reparto o un manager altrove venga dal "proprietario della base di codice" di una particolare applicazione e chieda piccole cose (a volte non così piccole, ma siamo abbastanza bravi a non accettare tre- progetti settimanali basati su questi "drive-by"). Perfino il nostro capo a volte inoltra cose che gli sono state fatte in questo modo. Molto spesso, se stiamo lavorando nella base di codice in questione al momento, possiamo semplicemente far apparire il file sorgente,
Con una metodologia SCRUM Agile di base, queste modifiche verrebbero registrate come difetti (non abbiamo soddisfatto un requisito specificato in una storia precedentemente consumata) o nuove piccole storie (abbiamo soddisfatto tutti i requisiti dichiarati, ma tali requisiti erano incompleti, vaghi o errati o sono cambiati dopo la consegna dopo che gli utenti hanno visto le nuove funzionalità). In entrambi i casi, la stragrande maggioranza sarebbe uno puntatori a maggior parte se non zeri, e relativamente bassa priorità (il sistema è utilizzabile nel suo stato attuale, ma sarebbe così molto più fresco se ...), rendendoli difficilmente essere portato in uno sprint quando si lavora il backlog dall'alto verso il basso.
Questa possibilità è stata sollevata in una riunione degli sviluppatori come fonte di opposizione attiva al nostro processo Agile da parte di altri dipartimenti, che lo vedrebbero meno "agile" della nostra attuale capacità di apportare piccole modifiche su richiesta. È una preoccupazione valida dell'IMO; gli stakeholder dietro l'OP non sono sempre d'accordo su quali siano le cose più importanti, perché non hanno tutti lo stesso punto di vista, tuttavia in genere sono solo i manager che prendono la decisione finale, e quindi il loro pregiudizio è quello che viene visualizzato nel backlog del prodotto.
Fu quindi proposta una soluzione, che fu provvisoriamente chiamata "barattolo di caramelle" (un altro termine buttato fuori era la "salsiera"). Piccole modifiche richieste dai "ragazzini" nei vari reparti, che non sono difetti in una storia esistente, che sono stimati per consenso o acclamazione all'interno del team a richiedere meno della metà di una giornata di sviluppo e che avrebbero un impatto immediato, significativo, positivo sull'esperienza dell'utente secondo l'opinione dell'utente finale, viene inserito in un elenco parallelamente al backlog primario. Sarebbero identificati come "storie", ma sarebbero tenuti separati dal principale arretrato di "grandi" storie soggette a priorità. Se, in qualsiasi momento durante il normale progresso di uno sprint, stiamo lavorando in un'area del sistema in cui è possibile effettuare una di queste modifiche, rendendo il tweak banale, possiamo portare il tweak nello sprint e codificarlo insieme alla storia più grande. Facendo questonon deve mettere a repentaglio il completamento della trama più grande o di qualsiasi altra opera impegnata. L'OP avrebbe anche accesso a questo elenco e se stessero lavorando su una storia utente in arrivo toccando la funzionalità di base che coinvolge la modifica, potrebbero inserirla nella storia come requisito e quindi soddisferemmo il requisito come faremmo altro. Questo, si pensava, avrebbe reso più probabile la modifica delle modifiche prima o poi.
Ciò ha innescato la reazione tra quelli di noi con l'addestramento ScrumMaster di "uh-uh". C'è un arretrato. Due arretrati introducono la domanda su quale oggetto numero 1 sia davvero il più importante, quali elementi dell'elenco determinino la velocità reale e in quale dei due arretrati una storia appartenga effettivamente (qualsiasi demarcazione di dimensioni / complessità avrà alcuni casi che ricadono relativamente arbitrariamente da una parte o dall'altra). "Lascia che il processo funzioni", abbiamo detto; se il cambiamento è davvero significativo per gli utenti finali, faranno abbastanza rumore da convincere i responsabili del reparto a prendere decisioni in termini di tempo / denaro, e si imbatteranno nella coscienza del team di sviluppo verso la parte superiore dell'arretrato.
Ho pensato di porre la domanda a terra: secondo te, un elenco parallelo di storie di "dimensioni ridotte" avrebbe valore nell'ottenere più rapidamente piccoli cambiamenti utili, ma a bassa priorità, o nel complesso è una decisione migliore piegarli nel backlog principale e lasciare che il processo di base gestisca la loro inclusione in uno sprint?