Jira

Jira

Alberto Piras

Presentazione suite Atlassian

Dedicata al CSV per soli sviluppatori. Accessibile solo dall'interno.

Jira Core:

  • Codifico le issue. Issue: un'attività/elemento numerato (ex Work-item).
  • Organizzazione dei team.
  • Backlog: insieme di attività da fare e non pianificate in nessun sprint.
  • Dashboard: stato delle attività ed eventuali altri widget.
  • Report: report sullo sprint attuale.
  • Ricerche.
  • Time-tracking: monitora il tempo di sviluppo.

Collegato a Confluence e Bitbucket.

Bitbucket:

  • Repository sorgenti e temi relativi.
  • Sviluppo isolato: sviluppo personale che viene inserito nel branch principale solo quando è tutto funzionante.
  • Permette di tracciare ogni attività da chi è stata fatta, in quanto tempo e perché.
  • Git.

Confluence:

  • Documentazione: analisi, manuali, meeting e verbali, review.
  • Ogni issue di Jira Core può essere collegata ad una pagina e vice-versa. Collegando con un link un'issue viene visualizzato automaticamente lo stato.

Portfolio:

  • Plug-in di Jira Core.
  • Permette di realizzare un guntt delle attività.
  • Gestire il team comprese le assenze.
  • Dichiarare il carico delle attività per persona.
  • Utilità principale per la parte di roadmap


Jira Core

Tipi di Issue:

  • Analysis: analisi
  • Task: attività non relative allo sviluppo ma necessarie per il team. Altri impegni che occupano tempi.
  • Story: sviluppi/implementazioni da associare alle Epic. 3-5 giorni al massimo
  • Bug: errori da correggere
  • QA-QC: test sulla funzionalità o di integrazione o documentazione
  • Master-epic: raggruppamento per tenere traccia delle Epic per permettere al PO di ragionare su temi più ampi.
  • Epic: suddivisione massima che può realizzare un PO (punti della roadmap). Raggruppamento delle issue. Tendenzialmente le analisi vengono associate alle Epic.


Issue:

  • Tipo
  • Priorità
  • Affects versions, Issue versions
  • Labels: tag per dettagliare l'issue
  • Area
  • Story Point: l'impegno che ha l'issue in uno sprint in termini di complessità
  • Sprint
  • Epic Link: link alla epica
  • Descrizione e attachments
  • Stato
  • Resolution: data di risoluzione
  • Issue Link: collegare altre issue e pagine di confluence
  • Activity: commenti, work log (tempo necessario), activity (storia dell'issue), CI
  • Assignee: chi ha l'attività
  • Reporter: chi ha realizzato issue
  • Dev team: team di sviluppo
  • Votes: serve a segnalare che ha una importanza
  • Watchers: si ricevono le notifiche sulle attività svolte
  • Time Tracking: tracciare i tempi di sviluppo
  • Development: elementi di bitbucket (commit, pull requests)
  • Create branch. generare un branch sullo sviluppo


Il Workflow contiene le informazioni sugli stati che un Issue può avere.


Dashboard:

  • Sprint Health Gadget: per vedere durante lo sprint lo stato delle issue in TO-DO, IN PROGRESS, DONE
  • Watched issue
  • Issue statistics: capire lo stato di avanzamento del lavoro di ogni persona
  • Road map: capire il completamento delle attività sulla versione
  • Burndown graph

Posso avere più dashboard.

Dashboards -> Manage -> Create new dashboard


Boards:

Elemento che lega tutti i componenti.

Permette di visualizzare tutte le issue.

Nella parte bassa è possibile vedere il backlog. Nella parte alta è possibile vedere gli sprint attivi e quelli futuri.

Le issue possono essere trascinate tra Sprint.

Active Sprints mi permette di vedere i post-it.


Confluence

Add Jira Issue/Filter: permette l'aggiunta di una view per visualizzare issue secondo un filtro.

Creazione di un Issue: in visualizzazione della pagina posso selezionare del testo e appare un pulsante per la creazione dell'Issue. Al termine della creazione viene aggiunto il collegamento a fianco al test.

Commenti: come per la creazione degli Issue appare una icona per aggiungere dei commenti. Al termine il testo viene evidenziato. È possibile poi modificare i commenti.

Collegamento Issue: in modifica posso selezionare del testo e con il pulsante Add Jira Issue/Filter posso cercare un singolo issue e associarlo.


Tipologie di pagine:

  • Product requirements: per le analisi


Bitbucket

Sistema di controllo di versione:

  • Reversibilità: tornare indietro
  • Concorrenza: collaborare sullo stesso pezzo di codice
  • Annotazione: condividere informazioni documentali


Sistema distribuito:

  • Ogni repository locale è una copia del remoto
  • Può non esserci un server centrale
  • Il server è un appoggio per la condivisione
  • Non è necessaria la connessione


Repository:

È una cartella gestita come database, cioè è consapevole dello stato dei file al suo interno

Ci sono delle aree logiche:

  • area di lavoro
  • staging: punti pronti per essere inviati nel repository
  • repository

È possibile eseguire dei Commit che tiene un'istantanea del repository ed è rappresentato da un hash.

Stati del file:

  • Untracked: git non lo considera
  • Unmodified: file non modificato
  • Modified: file modificato
  • Staged: pronto per il push


Branch:

Un ramo separato che vive di vita propria. Permette di lavorare in maniera isolata.


Operazioni:

  • Branching: creazione di un branch. Non esegue il commit ed è un'operazione locale.
  • Commit: creano una istantanea del repository. È rappresentato da un hash univoco. Non è permesso eseguirlo sul master. È un'operazione locale. È possibile associare un titolo e una descrizione.
  • Checkout: permette di spostare il repository locale in un altro branch. Se ci sono modifiche non committate viene chiesto di gestirle. È una operazione locale.
  • Clone: copia in locale (repository locale) un repository remoto, comprensiva di commit e branch. È una copia isolata dal remoto, permette la modifica offline.
  • Fetch: verifica lo stato del repository remoto. Non esegue modifiche sull'area di lavoro.
  • Pull: recupera le modifiche presenti sul repository remoto nel repository locale. Permette inoltre di importare le modifiche dal master al branch.
  • Push: inoltra i commit nel repository locale nel mio repository remoto.
  • Merge: unisce un branch dentro ad un altro e viene generato un commit di merge. Può essere necessario risolvere conflitti. È un'operazione locale.
  • Squash: accorpa commit alterandone la descrizione. È un'operazione locale. Non è possibile alterare ciò che è già stato pushato, è necessario fare un force push.
  • Rebase: cambia il commit padre del mio branch e lo imposta all'ultimo presente del master. Genera conflitti e distrugge la storia. INTERNET SEGNALA CHE È SCONSIGLIATO.


Bitbucket:

Software per la gestione dei repository.

Fornisce la gestione dei branch e la funzionalità di pull request.


Sviluppo/Git Flow:

  1. Issue su Jira
  2. Creazione di un branch da Jira
  3. Modifica del codice sul branch creato
  4. Commit e push
  5. Creazione di una pull request e assegnazione di tale ad un altro sviluppatore
  6. Approvazione pull request o ritorno al punto 3
  7. Merge



Domande:

  • Come integrare con Jenkins? Come impostarlo come intermediario per accettare gli sviluppi?

Report Page