Jira
Alberto PirasPresentazione 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:
- Issue su Jira
- Creazione di un branch da Jira
- Modifica del codice sul branch creato
- Commit e push
- Creazione di una pull request e assegnazione di tale ad un altro sviluppatore
- Approvazione pull request o ritorno al punto 3
- Merge
Domande:
- Come integrare con Jenkins? Come impostarlo come intermediario per accettare gli sviluppi?