Sincronizzazione da Jira a Jira

Silvia Mantovani atlassian, jira, plugin atlassian

In questo post, vedremo come integrare più istanze e progetti Jira mediante la sincronizzazione.

Jira è senza dubbio uno dei migliori strumenti di gestione del progetto e di comunicazione per i team di sviluppo.
Ma quando lavori con team esterni, siano essi fornitori di servizi, clienti o team in outsourcing, il tuo processo collaborativo di Jira può diventare un po’ farraginoso.

Ogni squadra ha i propri workflow e pipeline all'interno di Jira. Se hai mai provato a far parte di un team esterno nel tuo progetto Jira - o viceversa - sai quanto può essere difficile gestire flussi di lavoro separati.

Tuttavia, avere due istanze o progetti Jira completamente separati è altrettanto una seccatura. Le informazioni si perdono. Le issue vengono confuse per altre issue.
E la sincronizzazione manuale delle issue da un progetto all'altro non è una soluzione scalabile

E se lavori con un gran numero di team all'interno di Jira?
Per consentire ai team di lavorare insieme in modo più strutturato, dovremo integrare più istanze o progetti Jira.

Nota: per realizzare questo utilizzeremo lo strumento di sincronizzazione Jira Exalate.

Exalate consente ai team di coordinare in modo efficiente il loro lavoro anche quando vengono monitorati in più progetti o in più istanze Jira. Questa sincronizzazione bidirezionale aggiorna automaticamente i problemi su entrambe le parti quando viene apportata una modifica.

Caso d’uso con Jira Issue Sync


Ok, quindi la sincronizzazione tra Jira e Jira sembra conveniente, ma come può esattamente aiutare il tuo progetto?
Qui mi immergerò in alcuni dei numerosi casi d'uso in cui la sincronizzazione delle issue di Jira può tornare utile.


Outsourcing Quality Assurance per sviluppatori divisi su più istanze Jira


Molti sviluppatori di software e giochi esternalizzano la Quality Assurance a team di parti terze.

Questi team di controllo della qualità esternalizzati hanno i propri flussi di lavoro all'interno di Jira. Soprattutto perché spesso devono destreggiarsi tra clienti diversi con più stili di flusso di lavoro.

Un team QA deve condividere costantemente issue e segnalazioni di bug con il team di sviluppo. Ma il team addetto al controllo qualità non richiede l'accesso a tutti i problemi relativi alle attività del team di sviluppo e ad altre note di sviluppo.

La soluzione tradizionale sarebbe quella di consentire al team di sviluppo di accedere a entrambe le istanze o ai progetti di Jira: il proprio e il progetto del team QA. Quest'ultimo dedicato solo alle segnalazioni di bug.
Tuttavia, il costante bisogno di tenere il passo con due progetti (o istanze) Jira per lo stesso progetto di sviluppo è una perdita di tempo che impantana gli sviluppatori.

Uno strumento di sincronizzazione consente a entrambi i team di rimanere all'interno dei propri progetti Jira e sincronizzare solo istanze Jira rilevanti per l'altro team. Il workflow potrebbe essere definito nel seguente modo:

  • Il tester QA trova un bug
  • Il tester QA crea una issue nel progetto QA di Jira
  • Il responsabile del team del tester vaglia la issue e si sincronizza con il progetto Jira del team di sviluppo
  • Un'istanza del bug viene ora creata nel progetto Jira del team di sviluppo
  • Il team di sviluppo aggiorna il team di controllo qualità sullo stato del bug tramite la loro issue gemella - tutte le informazioni vengono sincronizzate nella parte del team QA

Con questo flusso di lavoro, solo i problemi rilevanti vengono comunicati tra i due team per un approccio più snello al controllo qualità.


Impostare una sincronizzazione da Jira a Jira separando dati riservati dagli accessi non autorizzati


Cosa succede se si desidera sincronizzare i problemi di Jira con un team esterno senza perdere informazioni riservate?

Con il metodo tradizionale, due issue separate verrebbero create in due istanze (o progetti) Jira separati.
La issue disponibile per il team esterno conterrebbe solo informazioni non riservate. Tuttavia, questo metodo richiede un doppio lavoro ogni volta che si aggiorna la issue.
D'altra parte, Exalate consente agli amministratori del progetto di sincronizzare solo campi specifici tra due progetti Jira.

Ad esempio, supponiamo che un team di sviluppo non abbia voluto condividere determinati screenshot con il team di controllo qualità.
E se volessero aggiungere questi screenshot alla issue per meglio tenere traccia del bug nella loro sezione?

In questo caso, l'amministratore potrebbe configurarlo in modo tale che tutti gli allegati sul lato sviluppo NON vengano sincronizzati con il lato QA.
Ciò non impedirebbe al team addetto al controllo qualità di caricare allegati per il team di sviluppo, consentendo loro di condividere informazioni pertinenti per la riproduzione dei bug.


Sincronizzazione di Jira Service Desk con più progetti di sviluppo


Supponiamo che tu abbia un team di supporto IT che segnala problemi con un service desk Jira SD quando gli utenti arrabbiati segnalano dei problemi.

In questo caso d'uso, hai due progetti Jira (o istanze Jira separate):

  • il progetto di supporto front-end
  • il progetto di sviluppo back-end

Il solito metodo per segnalare i bug è che gli agenti del supporto IT inoltrino queste issue di Jira via email.

Ora, anche se mettiamo da parte il fatto che ciò porta gli sviluppatori ad essere inondati di messaggi quando sono già molto occupati, email non è un modo efficace per condividere le issue di Jira. È una perdita di tempo e le informazioni si perderanno inevitabilmente in entrambi i modi.

Invece, possiamo impostare un'integrazione da Jira a Jira.
In questo modo, gli agenti del supporto IT possono creare issue e sincronizzarle in modo che il team di sviluppo ottenga un accesso immediato a queste. Ciò senza dover prima esaminare la loro email.

Ciò significa anche che l'agente del supporto IT ha visibilità sullo stato della issue appena gli sviluppatori lo aggiornano, rendendo molto più semplice e veloce la comunicazione con gli utenti arrabbiati.

Come sincronizzare più istanze Jira


Ora che abbiamo esaminato insieme alcuni casi d'uso, ti mostrerò quanto sia facile impostare un'integrazione da Jira a Jira.
Usiamo il nostro strumento Exalate per stabilire una sincronizzazione delle issue Jira semplicemente perché offre la massima flessibilità. Ed è anche relativamente facile da configurare.

Qui, ti guiderò attraverso questo processo passo dopo passo


Step 1_ Definire il flusso di lavoro con entrambi i team


Il primo passo che dovrai compiere, prima ancora di installare Exalate nei tuoi progetti Jira, è stabilire il workflow che vorrai utilizzare tra i due team.

È possibile che due team sincronizzino i progetti Jira senza avere lo stesso flusso di lavoro. Ad esempio, potresti avere un progetto con un workflow come quello di destra e un altro team con un flusso come schematizzato a sinistra:


Image
Image

Indipendentemente dal tipo di workflow che decidi per le due parti del progetto Jira, è importante per te concordare quali informazioni debbano essere scambiate. E come i cambiamenti da una parte debbano essere applicati alle issue gemelle dall'altra parte.

Ciò eviterà errori di comunicazione tra i team e garantirà la massima efficienza dei workflow.


Step 2_ Scegli un template appropriato per il tuo progetto di sincronizzazione Jira


Una delle fantastiche funzioni che derivano dallo strumento di sincronizzazione Jira Exalate è la possibilità di scegliere tra modelli di sincronizzazione preesistenti quando si configura una connessione tra due progetti.

I template di sincronizzazione stabiliscono quali informazioni sui problemi vengono sincronizzate e quali no, così come ciò che si traduce dall'altra parte.
Ad esempio, puoi sincronizzare il riepilogo, la descrizione, il commento e l'allegato tra issue Jira gemelle, immediatamente.
Quindi, prima di impostare una connessione, crea un elenco di tutte le informazioni rilevanti che desideri sincronizzare da Jira a Jira.

Andremo più in profondità su come modificarlo in seguito.


Step 3_ Creare una nuova connessione tra le istanze o i progetti Jira


Prima di poter eseguire questo passaggio, è necessario che Exalate sia già installato in entrambi i progetti Jira che si desidera sincronizzare.

Fatto ciò, sei pronto per creare una nuova connessione. Un team attiva la connessione mentre l'altra accetta l'invito. In questo esempio, avremo un progetto Jira BLU che avvia la connessione con il progetto Jira ROSSO.

Dal progetto blu, accedi all'amministrazione Jira nell'angolo in alto a destra e vai a Componenti aggiuntivi:


Image

Se hai già impostato Exalate, il menu dei componenti aggiuntivi dovrebbe offrirti diverse opzioni a sinistra. Apri il menu Collegamenti.

Vedrai tutte le connessioni esistenti in questo menu, se ne hai. Se questa è la tua prima connessione invece l’area sarà vuota.


Image

Fare clic sul pulsante verde "Avvia connessione". Da lì, avrai la scelta tra tre tipi di connessioni:


Image
  • Altra istanza accessibile: poiché al momento abbiamo accesso a entrambe le istanze del progetto Jira per questo esempio, questa è l'opzione che utilizzeremo.
  • Altra istanza non accessibile: scegli questa opzione se non hai accesso diretto al secondo progetto Jira. Questa è un'ottima opzione per i team di sviluppo e per i team di controllo qualità.
  • Connessione locale: utilizza questa opzione se desideri sincronizzare due progetti all'interno di una singola istanza di Jira.

Dopo aver selezionato la connessione appropriata per il tuo team, fai clic su "Avanti".

Ora inserirai l'URL della destinazione del progetto con cui ti stai sincronizzando. Exalate ti farà sapere se hai fatto un errore nell'URL o se non è stato possibile trovare la destinazione:


Una connessione riuscita avrà questo aspetto:


Image
Image

Ti verrà data la scelta tra le regole di sincronizzazione di Progetto Singolo o di Avanzate.


Per ora sceglieremo Progetto Singolo. Ciò stabilirà una sincronizzazione del problema Jira per i seguenti dati:

  • Sommario
  • Descrizione
  • Tipo
  • Assegnatario
  • Reporter
  • Commenti
  • Allegati
  • Etichette

Sappi che puoi modificare queste impostazioni in qualsiasi momento accedendo al menu Connessioni.

Image

Dal menu a discesa, selezionare il progetto che si desidera connettere alla propria estremità. Sceglieremo BLU:


Image

E ora per il passaggio finale, dai un nome alla tua connessione e aggiungi una descrizione.

Puoi anche scegliere di attivare o disattivare la connessione. Quando la connessione è disattivata, questo metterà in pausa la sincronizzazione. Ma le modifiche vengono comunque messe in coda per gli aggiornamenti successivi. Ciò significa che sospendere la connessione non ti farà perdere alcun dato.

Image

Step 4_ Invita un altro team a condividere il proprio progetto Jira


Una volta finito di attivare la connessione, Exalate ti fornisce un codice di invito e un messaggio.

Assicurati di inviare questo codice all'altro team in modo che possano accettare il tuo invito a connettersi.

Avrai la possibilità di copiare l'intero messaggio di invito negli Appunti o di copiare solo il link, facendo clic su una delle opzioni sotto la casella del link di invito:


Image

Per quanto riguarda il secondo team, dovrai passare attraverso lo stesso menu. Ma, questa volta, fai clic su "Accetta invito" nel menu Connessioni.


Image

È qui che tu o il tuo partner, chiunque accetti l'invito, incollerete il codice di invito generato nel passaggio precedente.


Image
Dopo aver fatto clic su "Avanti", otterrai la stessa scelta per i template delle regole di sincronizzazione.

Tieni presente che mentre un team può utilizzare un determinato modello, l'altra squadra può impostare le cose in modo diverso per la propria parte.
Tuttavia, terremo le cose semplici per ora e sceglieremo la stessa opzione.

Ora scegli il progetto Jira che desideri sincronizzare a questo scopo (sceglieremo ROSSO):


Image

Ora conferma la connessione e il gioco è fatto! BLU e ROSSO sono collegati.
Ottimo, ora puoi prenderti una pausa!

Image

Step 5_ Sincronizzare una issue di Jira


Bene, ora vediamo come sincronizzare una issue Jira.

Diciamo che abbiamo creato una nuova issue sul progetto RED e vogliamo sincronizzarlo con la parte BLU.

Se vai in "ALTRO" sulla tua issue, troverai l'opzione Exalate:


Image

Dopo aver fatto clic su questo, ti verrà chiesto di scegliere quale connessione desideri utilizzare da un menu a discesa. Assicurati di scegliere quello appropriato e invia.

Saprai che un problema è "Exalate-d” quando troverai un Sync Status (stato di sincronizzazione) nella parte inferiore destra della issue.


All'inizio, dovrebbe apparire così:


Image

Ciò significa che il tuo problema con Jira è attualmente in fase di sincronizzazione.

Dovrebbero essere necessari solo pochi secondi affinché la sincronizzazione abbia esito positivo.


Image

Se torniamo al progetto BLUE e cerchiamo tra le issue, troveremo questo “clone”.

Quindi cosa succede se scrivo un commento sul lato BLU?

Dopo un refresh del progetto ROSSO, troveremo questo:


Image

Step 6_ Definire le informazioni che è necessario o meno siano sincronizzate tra le istanze Jira


Torniamo ad alcuni casi d'uso.

Se vogliamo sincronizzare gli allegati con il lato ROSSO senza dare accesso a queste informazioni con il lato BLU?
Possiamo configurarlo usando semplici script.

La cosa fantastica è che dobbiamo farlo solo su un lato. Quindi, se vogliamo impedire agli allegati di sincronizzarsi con il lato BLU, possiamo impostarlo nelle regole di "Sincronizzazione in uscita" del team RED.

Quindi, per questo passaggio, determina quali informazioni desideri inviare tramite le tue sincronizzazioni in uscita e quali informazioni in arrivo desideri dall'altro team.

Nel nostro caso, lo configureremo in modo da poter ricevere gli allegati in arrivo dal team BLUE. Ma il team BLUE non può accedere agli allegati RED.


Step 7_ Personalizzare le regole di sincronizzazione tramite gli script


Vai al menu Connessioni all'interno del progetto RED e seleziona la connessione che desideri modificare.

All'interno, seleziona la scheda Sync Rules (regole di sincronizzazione).
Qui puoi accedere alla modalità di sincronizzazione dei campi relativi alle issue.

Nel filtro dati Outgoing Sync (sincronizzazione in uscita), rimuovi la riga degli allegati della issue. (Consulta la documentazione Exalate per una panoramica completa di questi campi)

Image

In alternativa, puoi mantenere intatto lo snippet di codice e aggiungere "//" davanti alla riga per trasformarlo in un commento, in questo modo:


Image

Non dimenticare di accettare e aggiornare.

Ora aggiungeremo uno screenshot sull'istanza di Jira dal lato BLU e viceversa.

Aspettiamo che questa issue Jira si sincronizzi...


Image
E guarda cosa otteniamo. Grandioso!

Image
Le regole di sincronizzazione hanno bloccato la sincronizzazione dello screenshot di RED con l'istanza BLU, ma il team RED ha ancora accesso a tutti gli screenshot di BLU.

Step 8_ Gestire gli errori di sincronizzazione


Quindi cosa succede se si verifica un errore durante la sincronizzazione di una issue Jira?

Poiché Exalate funziona con un sistema basato su transazioni, qualsiasi errore di connessione non interromperà la sincronizzazione e causerà conflitti tra la issue e il suo clone.

Questo in pratica significa che non è necessario eseguire le pulizie in Exalate per risolvere i conflitti se sorgono errori di connessione. Perché non ci saranno affatto conflitti.

Se si verifica un errore, è possibile richiedere assistenza al team Exalate. Una volta risolto il problema, la sincronizzazione riprenderà nell'ordine in cui sono state apportate le modifiche.

Riepilogo


Ecco qui. Abbiamo visto 8 passaggi per ottenere una semplice sincronizzazione da Jira a Jira.

Ecco un breve riepilogo delle basi:

  • Stabilisci una connessione da una parte
  • Accetta l'invito all'altro lato
  • Usa Exalate con le tue issue nuove o preesistenti per stabilirne la sincronizzazione
  • Modifica eventuali regole di sincronizzazione, se necessario

Per impostare tutto questo, abbiamo usato il tool Exalate.

Sincronizzando le issue di Jira in questo modo, eviterai di perdere tempo e informazioni. E renderai il tuo flusso di lavoro molto più semplice.

Inoltre, se sono necessarie connessioni separate con regole di sincronizzazione diverse, è possibile creare più connessioni tra due progetti con più regole di sincronizzazione.

Spero che questo ti abbia aiutato a farti un'idea di alcune buone pratiche su come impostare un'integrazione da Jira a Jira.

Se sei interessato a configurare una sincronizzazione utilizzando Exalate, puoi provarlo completamente gratuitamente.