Dopo oltre due anni di lavoro in una struttura del dipartimento di sviluppo "a lupo solitario", adottiamo Agum SCRUM. Grande. Mi piace Agile; come dev ti tiene concentrato, impegnato e produttivo senza che una miriade di parti interessate spinga il progetto dopo il progetto in gola con l'aspettativa che siano tutti fatti ieri.
Tuttavia, c'è un aspetto del passaggio a SCRUM rispetto al nostro attuale "modello", secondo il quale le persone esterne allo sviluppo non gradiranno 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, è prassi consolidata da anni che un capo dipartimento o un dirigente provengano dal "proprietario del codebase" di una particolare applicazione e chiedano piccole cose (a volte non così piccole, ma siamo piuttosto bravi a non assumerne tre progetti settimanali basati su questi "drive-by"). Anche il nostro capo a volte trasmette le cose che gli vengono portate in questo modo. Molto spesso, se stiamo lavorando nella base di codice in questione al momento, possiamo semplicemente aprire il file sorgente, apportare la modifica ed eseguirlo con loro guardando oltre le spalle per verificare che il cambiamento sia quello che vogliono, prima di controllare in Subversion per l'inclusione nella build successiva.
Con una metodologia Agile SCRUM di base, questi tweaks sarebbero registrati come difetti (non abbiamo soddisfatto un requisito specificato in una storia consumata in precedenza) o nuove piccole storie (abbiamo soddisfatto tutti i requisiti dichiarati, ma quei requisiti erano incompleti, vaga o errata, oppure sono cambiati dopo la consegna una volta che gli utenti hanno visto le nuove funzionalità). In entrambi i casi, la stragrande maggioranza sarebbe di un solo punto al massimo se non zero, e di priorità relativamente bassa (il sistema è utilizzabile nel suo stato attuale, ma sarebbe così molto più interessante se ... ), rendendo improbabile che vengano portati in uno sprint quando si lavora su backlog dall'alto.
Questa possibilità è stata sollevata durante una riunione di sviluppo come fonte di opposizione attiva al nostro processo Agile da parte di altri dipartimenti, che la vedrebbero meno "agile" della nostra attuale capacità di apportare piccole modifiche su richiesta. È una preoccupazione valida IMO; gli stakeholder dietro l'OP non sono sempre d'accordo su quali sono le cose più importanti, perché non hanno tutti lo stesso punto di vista, ma in genere sono solo i manager a prendere la decisione finale, e quindi il loro pregiudizio è quello che mostra 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 dipartimenti, che non sono difetti di una storia esistente, stimati dal consenso o acclamazione all'interno del team per impiegare meno della metà di un giorno di sviluppo, e che avrebbe un impatto immediato, significativo e positivo sull'esperienza dell'utente secondo l'opinione dell'utente finale, vengono inseriti in un elenco parallelo 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 avanzamento di uno sprint, lavoriamo in un'area del sistema in cui uno di questi tweaks può essere fatto, rendendo banale il tweak, possiamo portare il tweak nello sprint e codificarlo insieme alla storia più grande. Questo non deve compromettere il completamento della storia più ampia o di qualsiasi altro lavoro impegnato. L'OP avrebbe anche accesso a questo elenco e, se stavano lavorando su una prossima user story che toccasse la funzionalità di base del tweak, avrebbero potuto piegarlo nella storia come un requisito e quindi avremmo soddisfatto i requisiti come faremmo noi altro. Questo, si pensava, avrebbe fatto in modo che i tweaks avrebbero avuto più probabilità di essere risolti prima.
Questo ha scatenato la reazione tra noi di noi con l'allenamento ScrumMaster di "uh-uh". C'è un backlog uno . Due backlog introducono la domanda su quale elemento # 1 sia veramente il più importante, quali elementi della lista determinano velocità reale e quale dei due backlog in cui una storia appartiene effettivamente (qualsiasi la delimitazione delle dimensioni / complessità avrà alcuni casi che cadono relativamente arbitrariamente da una parte o dall'altra). "Lascia che il processo funzioni", abbiamo detto; se il cambiamento è significativo per gli utenti finali, faranno abbastanza rumore per far sì che i responsabili del dipartimento prendano decisioni in termini di tempo / denaro, e si innalzeranno nella coscienza del team di sviluppo verso la parte superiore del backlog.
Ho pensato che avrei posto la domanda sul pavimento: Secondo te, un elenco parallelo di storie di "piccole dimensioni" ha valore nell'ottenere modifiche piccole, utili ma in ultima analisi a bassa priorità rese più veloci, oppure è nel complesso una decisione migliore per inserirli nel backlog principale e lasciare che il processo di base disciplini la loro inclusione in uno sprint?