Nella nostra azienda diversi team lavoreranno contemporaneamente su diversi componenti di più progetti. Ad esempio, un team potrebbe creare tipi specifici di software (o hardware) per alcuni progetti, un altro team un altro tipo specifico di software. Utilizziamo i progetti Jira per ospitare problemi relativi a progetti specifici e schede Jira per gli sprint per diversi team.
Ci troviamo ad affrontare il problema di evitare la duplicazione del codice tra progetti e abbiamo sviluppato una serie di librerie di base che utilizziamo in tali progetti. Mentre si lavora su un progetto, alcuni sviluppatori si renderanno conto che un pezzo di codice che hanno scritto è di maggiore interesse e dovrebbe essere estratto in una libreria di base, o che un codice di base che stanno usando ha un bug, ha bisogno di un po 'più di parametrizzazione o un nuova funzionalità ... lo chiami.
Quindi creano un problema di libreria di base che rientra nel backlog del progetto principale. Tutti questi problemi vengono esaminati, ordinati per priorità e stimati in una riunione della biblioteca principale (una volta alla settimana) e verranno affrontati in base alla loro priorità (insieme a questioni specifiche del progetto) in alcuni sprint futuri.
La definizione delle priorità viene eseguita in base ai problemi di ordinamento e inseriamo sorted
un'etichetta per i problemi ordinati (in modo da poter cercare quelli non ordinati). Quindi inseriamo manualmente un problema per componente principale nella parte superiore del backlog in modo che possano essere affrontati per primi. Quando una squadra mette un tale problema nel proprio sprint, devono invece trascinare manualmente un altro elemento in cima al backlog.
Questo è abbastanza soggetto a errori. Fondamentalmente, ciò che abbiamo sono gli stati dei problemi aggiuntivi "ordinati" e "stimati" tra "aperto" e "in corso". Riflettere questo attraverso l' sorted
etichetta e la loro posizione nel tabellone è piuttosto ingombrante e soggetto a errori. (Ad esempio, se qualcuno sposta un problema in uno sprint su e giù, questo si rifletterà nella scheda madre, rimescolando silenziosamente l'ordine dei problemi che il team avrebbe potuto decidere in una lunga discussione settimane prima.)
Quindi quale sarebbe un modo migliore per implementarlo?