Jazz è una piattaforma di collaborazione tra team, scalabile ed ampliabile, per l'integrazione continua di attivitò nell'intero ciclo di vita del software.

Perché la piattaforma Jazz è necessaria?

Lo sviluppo del software in un team è un po' come suonare uno strumento in una band. ogni musicista suona la propria parte restando sempre in sincronia con gli altri. Le persone devono decidere come comunicare e devono fare attenzione ai segnali che ognuno manda all'altro, altrimenti la prestazione non riesce. Sono pertanto richiesti una forte collaborazione e la singola bravura. Allo stesso modo, gli sviluppatori di software devono concentrarsi sulla generazione di un codice di qualità e devono coordinare le proprie attività in modo che tutte le parti funzionino insieme.

Gli ambienti di sviluppo integrati, detti anche IDE (integrated development environment), come ad esempioEclipse, hanno apportato un notevole miglioramento nelle singole produttività. Tuttavia, gli sviluppatori sono impegnati attivamente nel lavoro con i propri team man mano che scrivono il codice. Questo è il punto in cui interviene la piattaforma Jazz, spostando l'interesse dalla produttività del singolo alla produttività del team.

Il caso di un cambio

Si consideri il lavoro necessario a un team per tenere traccia e correggere un ipotetico bug. Il lavoro di correzione è fatto da tutto il team: da Mike che ha rilevato e riportato il problema, a Rick che revisiona i report sui bug e che ha assegnato il lavoro a Susan, a Susan che ha corretto il bug e alla fine di nuovo a Mike per la verifica. La correzione al bug stessa passa per tutto il team, da Susan che corregge il problema nello stream di codice a Mike che verifica la correzione nella build.

Flusso di bug

Questi flussi possono essere particolarmente delicati. I flussi all'interno del team vengono interrotti se una correzione viene implementata senza aggiornare il report dei bug o se non vi è alcun link per collegare la correzione a un determinato stream di codice e build. Questi punti di interruzione possono portare notevole confusione all'interno del team e impedire l'avanzamento. Inoltre, non è detto che un punto di interruzione venga immediatamente visualizzato da un membro del team. Esiste inoltre un'interlacciatura del lavoro nel dominio (ad esempio, scrivendo il codice per il prodotto software) con il lavoro correlato principalmente alle operazioni di coordinamento del team (ad esempio, contrassegnando i bug come risolti).

Nonostante l'IDE integrati diversi strumenti, lo sviluppatore deve comunque eseguire manualmente parecchie operazioni ripetitive, operazioni che risultano critiche perché il team lavori insieme in maniera effettiva ma che possono essere dimenticate facilmente o eseguite non correttamente. Sarebbe meglio se Susan comunicasse semplicemente l'IDE su cui stava lavorando durante la correzione di un determinato bug. Quindi, una volta completati correzione e testcase, dovrebbe indicare che ha terminato. Senza ulteriori azioni da parte di Susan, il sistema può eseguire il commit dei file modificati e associarli al report del bug, aggiornare le note della build e contrassegnare il report del bug come chiuso. Se gli strumenti automatizzano il registro in questo modo, il lavoro del team risulterebbe più efficace in quanto i collegamenti importanti tra i report dei bug e i check-in del codice sono garantiti. Allo stesso tempo, i singoli membri sono più produttivi in quanto vengono eliminate operazioni di contabilità e manutenzione noiose e che potrebbero portare ad errori.

Jazz Platform unisce il divario

Jazz è una piattaforma di collaborazione di team per il ciclo di vita completo del software, progettata per l'integrazione continua delle attività in tutte le fasi del ciclo (lo scenario di esempio precedente include delle attività nel mezzo del ciclo). Jazz Platform è progettato per essere estensibile sia sul client che sul server e per potersi adattare sia a team di piccole dimensioni che a installazioni aziendali. Esso integra la nozione di guida dei processi supportati da strumenti, in cui gli strumenti comprendono il processo di sviluppo del team e consentono ai membri del team di seguire il processo senza problemi.

Jazz Platform non serve solo a integrare punti di estensione esistenti, ma fornisce anche una piattaforma in cui poter generare molte più funzioni di strumenti del ciclo integrate. Quando gli strumenti di sviluppo vengono integrati nel ciclo di vita in questo modo, diventa possibile eseguire operazioni con un insieme di soluzioni inimmaginabili. Gli strumenti end-to-end integrati come questo consentono ai team di generare il software in maniera più efficace e di rendere più piacevole le attività di sviluppo software.

Jazz è una piattaforma basata su processi

Jazz Platform è progettato per consentire il supporto completo per l'intero ciclo di vita di sviluppo software. Un thread che viene eseguito in tutte le fasi di un progetto è il processo che i membri del team hanno deciso di seguire. La comunicazione aJazz Platform delle informazioni sul processo facilita notevolmente il team. Questo supporto per il processo può avere una vasta gamma di forme, dal controllo delle regole in corso alla guida in linea del processo (ad esempio, con il tasto F1), all'automazione della registrazione delle operazioni. Jazz Platform supporta il processo nei seguenti modi:

Jazz Platform è progettata e generata per:

Il ruolo principale di Jazz Platform è fornire ai creatori di strumenti i meccanismi da utilizzare e le regole da seguire per l'integrazione continua degli strumenti del ciclo di vita. Tali meccanismi sono utilizzati mediante le API definite. Jazz Platform fornisce inoltre building block e framework che facilitano lo sviluppo di nuovi strumenti.