Query su Work Item linkati in TFS

Il motore che esegue le query sui Work Item in TFS è decisamente completo e permette di interrogare il sistema per trovare i dati richiesti con notevole flessibilità. Una delle funzionalità purtroppo meno conosciute è la possibilità di effettuare query sui link dei work item.

Prendiamo un caso pratico che mi è stato sottoposto da un amico e a distanza di pochi giorni da un’altra persona (deduco quindi che purtroppo la documentazione o l’interfaccia non siano completamente intuitive affinché questa funzionalità sia “scopribile”).  La domanda è, quando una persona ha un problema che blocca la realizzazione di un Task, crea un Work Item linkato di tipo Impediment, per segnalare quale è il problema che sta bloccando quel task. Come faccio quindi ad interrogare tfs per chiedere: quali sono tutti i task che hanno un link di tipo Affected By da almeno un Impediment ancora aperto e non chiuso?

La risposta è abbastanza semplice, ecco come dovete costruire la vostra query

image

La chiave di tutto è nel punto marcato con il numero 1, ovvero scegliere una query per i work item ed i link diretti. Il punto 2 mostra invece la combo che permette di scegliere se selezionare solamente gli elementi che hanno almeno un figlio, oppure tutti gli elementi. Nel nostro caso è necessario prendere solamente gli elementi che hanno almeno un figlio. Il punto 3 permette invece di scegliere il tipo od i tipi di link da prendere in considerazione.

L’area gialla è la parte di query del Padre, o dei Work Item principali, mentre quella rossa rappresenta i filtri per i Work Item Linkati. In questo caso si sta chiedendo a TFS di visualizzare tutti i task di questo progetto che non sono chiusi, e per i quali cui esista almeno un work item di tipo Impediment in stato open, che sia linkato con un link di tipo Affected By.

Una richiesta leggermente differente è quella di listare tutti i Work Item di tipo Task per cui esiste un link con un impedimento aperto e non assegnato a nessuna risorsa. Questo mi evidenzia i task bloccati e per i quali nessuno si è preso in carico di rimuovere l’impedimento. In questo caso è sufficiente aggiungere una condizione sulla parte di query linkata

image

Come si può vedere si sta semplicemente richiedendo che il campo Assigned To sia vuoto.

Una query ancora più interessante è quella in cui vengono listati tutti i Task per cui io ho un impedimento aperto da piu di X giorni. Questa query mostra infatti gli impedimenti problematici, perché sono purtroppo aperti anche se un determinato lasso di tempo è passato. In questo caso si può utilizzare la costante @today che identifica la giornata corrente.

image

Richiedendo che l’impedimento abbia una data minore di @today – 2 stiamo effettivamente selezionando tutti quei task che hanno un impedimento più vecchio di tre giorni fa. Questo tipo di informazione è fondamentale per capire quali parti del lavoro sono bloccate da troppo tempo per un problema che non si riesce a risolvere.

Gian Maria

Comments are closed.