Skip to content

Commit

Permalink
feat: start monitoring
Browse files Browse the repository at this point in the history
  • Loading branch information
giacomocavalieri committed Jan 7, 2023
1 parent 1e2594f commit eb1a691
Show file tree
Hide file tree
Showing 5 changed files with 123 additions and 3 deletions.
18 changes: 15 additions & 3 deletions report/bibliography.bib
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ @online{cit:event-storming
url = {https://www.eventstorming.com/},
journal = {EventStorming},
author = {Brandolini, Alberto},
urldate = {2022-12-15},
urldate = {2023-01-07},
}
@book{cit:event-storming-book,
Expand All @@ -18,5 +18,17 @@ @online{cit:nielsen
title = {10 Usability Heuristics for User Interface Design},
author = {Nielsen, Jakob},
year = {1994},
urldate = {2022-12-27},
}
urldate = {2023-01-07},
}

@online{cit:github-projects,
url = {https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects},
title = {GitHub Projects},
urldate = {2023-01-07},
}

@online{cit:github-issues,
url = {https://docs.github.com/en/issues/tracking-your-work-with-issues/about-issues},
title = {GitHub Issues},
urldate = {2023-01-07},
}
106 changes: 106 additions & 0 deletions report/chapters/monitoring-and-control.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
\chapter{Monitoraggio e controllo}
\label{ch:monitoraggio-e-controllo}

Il progetto è stato gestito col supporto di \emph{GitHub Projects}~\cite{cit:github-projects}. Questo strumento si integra con il DVCS Git utilizzato dal team e permette di gestire le attività di sviluppo in modo agile.
Inoltre, è stata prestata grande attenzione ad automatizzare il più possibile queste attività per ridurre al minimo il tempo necessario per la loro esecuzione e permettere agli sviluppatori di concentrarsi sui problemi di business.

\section{Reporting automatico}
\label{sec:reporting-automatico}

Ogni task dello sprint viene convertito in una GitHub issue~\cite{cit:github-issues} che ne riporta le dipendenze e le informazioni di base; un esempio di tale issue è riportato in \Cref{fig:issue-example}. Come mostrato in figura, il vantaggio di tale approccio sta nella possibilità di automatizzare il reporting delle attività svolte durante lo sprint. Infatti, un bot può analizzare le dipendenze fra task -- ricostruendo così lo sprint network diagram --, calcolare il percorso critico e notificare gli sviluppatori di eventuali ritardi.

Grazie alla stretta integrazione fra il sistema di reporting e il DVCS, il programmatore non dovrà occuparsi di gestire alcun overhead dato che gli sarà sufficiente chiudere una issue per segnalare che il task corrispondente è stato completato.

\begin{figure}[htp]
\centering
\includegraphics[width=\textwidth]{images/task-example.png}
\caption{Esempio di issue}
\label{fig:issue-example}
\end{figure}

\subsection{Sprint burndown chart}
Inoltre, ad ogni sprint viene generato automaticamente uno \emph{sprint burndown chart} a partire dalle issue chiuse. Questo grafico viene aggiornato al completamento dei task e permette di monitorare lo stato di avanzamento dello sprint in tempo reale.
È uno strumento fondamentale che permette di individuare rapidamente dei ritardi sulla tabella di marcia permettendo al team di analizzarne le cause tempestivamente.

Come mostrato in \Cref{fig:sprint-burndown-chart}, il grafico riporta sull'asse delle ascisse il giorno dello sprint e sull'asse delle ordinate l'effort rimanente. Inflessioni del grafico indicano ritardi o avanzamenti rispetto alla tabella di marcia ideale.

\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
xlabel={Giorno},
ylabel={Effort rimanente},
xmin=0, xmax=14,
x=0.7cm,
ymin=0, ymax=100,
xtick={1,...,14},
ytick={0,20,...,100}]
\addplot[smooth,mark=*,blue] plot coordinates {
(0,100)
(2,90)
(3,85)
(5,80)
(6,75)
(8,50)
(9,35)
(10,20)
(11,10)
(12,5)
(14,0)
};
\addlegendentry{Andamento effettivo}

\addplot[dashed,color=gray,mark=none]
plot coordinates {
(0,100)
(14,0)
};
\addlegendentry{Andamento ideale}
\end{axis}
\end{tikzpicture}
\caption{Esempio di sprint burndown chart}
\label{fig:sprint-burndown-chart}
\end{figure}

\subsection{Project Burndown Chart}
È stato anche realizzato un \emph{project burndown chart} che mostra lo stato di avanzamento del progetto.
Anche in questo caso il grafico viene generato automaticamente a partire dalle issue chiuse e permette di monitorare l'intero progetto.
Come mostrato in \Cref{fig:project-burndown-chart}, il grafico riporta gli sprint sull'asse delle ascisse e il numero di story point rimanenti sull'asse delle ordinate.

Questo strumento è fondamentale per poter stimare la velocità di sviluppo del team nel consumare story points. Infatti, per stimare il numero di story points da realizzare in uno sprint devono essere tenute in considerazione le storie concluse in precedenza ed eventuali difficoltà del team nel portarle a compimento.
Così facendo è possibile mantenere una velocità di sviluppo all'incirca costante per poter stimare con maggior precisione le tempistiche di consegna del progetto.

\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
xlabel={Sprint},
ylabel={Story point rimanenti},
xmin=0, xmax=6,
x=2cm,
ymin=0, ymax=220,
xtick={1,...,6},
ytick={0,20,...,220}]
\addplot[smooth,mark=*,red] plot coordinates {
(0,220)
(1,200)
(2,160)
(3,100)
(4,70)
(5,20)
(6,0)
};
\addlegendentry{Andamento effettivo}

\addplot[dashed,color=gray,mark=none]
plot coordinates {
(0,220)
(6,0)
};
\addlegendentry{Andamento ideale}
\end{axis}
\end{tikzpicture}
\caption{Esempio di project burndown chart}
\label{fig:project-burndown-chart}
\end{figure}

Binary file added report/images/task-example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions report/relazione.sty
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{microtype}
\usepackage{pgfplots}
\usepackage{csquotes}
\usepackage{tabularx}
\usepackage{ltablex}
Expand Down
1 change: 1 addition & 0 deletions report/relazione.tex
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
\input{chapters/scoping}
\input{chapters/planning}
\input{chapters/launching}
\input{chapters/monitoring-and-control}

\todo[inline]{Mettere il network diagram all'inizio di ogni sprint}
\todo[inline]{FARE LO SPRINT BURNDOWN CHART}
Expand Down

0 comments on commit eb1a691

Please sign in to comment.