%%% $Id: tracking.tex,v 1.3 2008-04-10 08:25:13 pmrsa Exp $
%%% $Author: pmrsa $

\section{Tracking}
\label{sec:tracking}

As funções de \emph{tracking} são o contributo principal da
ferramenta. Através da informação produzida pela ferramenta a equipa
consegue perceber e medir o atraso (ou avanço) em relação ao plano.

O \emph{tracking} é feito a dois níveis: release, e iteração;
resumidamente, o \emph{tracking} consiste em confrontar um trabalho
restante esperado, estimado com base na velocidade da equipa, com um
trabalho restante real, calculado pela diferença entre a velocidade e
as horas já gastas. Em detalhe o trabalho restante esperado é
calculado da seguinte forma: número de dias úteis até ao fim da
iteração vezes a velocidade a dividir pelo numero de dias úteis da
iteração. Quanto ao trabalho restante real, calcula-se pela diferença
entre o somatório dos máximos entre a estimativa da história e das
tarefas que a compõem, e o somatório do trabalho reportado em cada
tarefa.

Tomemos como exemplo uma iteração de 10 dias úteis, com uma equipa
capaz de uma velocidade de 40 horas. Nesta iteração foram planeadas 4
histórias de 10 horas cada. Vamos supor que ao fim de 5 dias de
trabalho tinham sido cumpridas por toda a equipa 16 horas (não
interessa em que histórias ou tarefas). O \emph{tracking} mostrado
pela ferramenta encontra-se na figura \ref{fig:iteration-tracking}.

\begin{figure}[!h]
  \centering
  %TODO
  \caption{Exemplo de \Emph{Tracking} de uma Iteração}
  \label{fig:iteration-tracking}
\end{figure}

Estes números foram obtidos da seguinte forma: o trabalho restante
esperado é calculado por $\frac{3 \times 100}{5} = 60$; o trabalho
restante real é calculado por: $100 - 30 = 70$. Com esta informação
percebemos que a equipa já deveria ter reportado mais 10 horas do que
de facto reportou. Antes de se considerarem as medidas a tomar é
importante perceber alguns pressupostos que devem ser tidos em conta
ao interpretar os resultados. Em primeiro lugar a velocidade é uma
estimativa, pode não ser exactamente igual ao numero de horas que a
equipa irá gastar nesta iteração em particular; mais ainda, nas
primeiras iterações de uma equipa recém formada este valor pode estar
consideravelmente longe da realidade, visto que foi estimada sem dados
concretos do passado. Estes valores assumem também que a equipa como
um todo trabalha o mesmo número de horas por dia, isto pode não ser
verdade quando a equipa não trabalha em full-time no
projecto. Finalmente, quanto ao cálculo do trabalho restante real, o
facto de ser calculado pela diferença de uma estimativa e um valor
real, assume que a estimativa está sempre actualizada com as nossas
expectativas, ou seja, se numa tarefa de 10 horas já gastei 8 mas
penso ainda precisar de mais 5 (em vez de 2) devo actualizar a
estimativa dessa tarefa para as 13 horas.\footnote{A estimativa da
  história que contém a tarefa em causa deve ser mantida, isto não
  afecta o \emph{tracking} porque é usado o máximo entre a estimativa
  da história e da soma das tarefas, mas ao mesmo tempo permite
  comparar a estimativa inicial com a actual.}

O desvio pode ter várias causas, cada causa será apresentada com um
cenário e as medidas a tomar para resolver o desvio.

\paragraph{Estimativa Errada.}  A causa mais frequente será muito
provavelmente uma estimativa inicial irreal. Assumindo que a equipa
mantém a estimativa das tarefas de acordo com a estimativa de trabalho
restante, apesar de as horas gastas continuarem a incrementar em
conformidade com a velocidade da equipa, o trabalho restante real não
diminui em igual proporção. Por exemplo, num cenário em que a
velocidade por dia útil é de 20 horas, uma equipa cumpre as 20 horas
de trabalho, no entanto aumenta a estimativa das tarefas em que
trabalhou num total de 6 horas, logo, o trabalho restante desce apenas
14 horas em vez das potenciais 20. Em resposta a este desvio a equipa
deve assumir que não cumprirá com o plano inicial e delegar trabalho
para a iteração seguinte (a secção TODO explica como re-planear).

\paragraph{Má distribuição diária do tempo.} Num determinado dia da
iteração, a equipa pode trabalhar mais (ou menos) horas do que a
velocidade diária, isto ocorre porque a equipa tem outras tarefas além
deste projecto ou porque um dos elementos não trabalhou nesse dia, ou
outros motivos, qualquer que ele seja o \emph{tracking} indicará
sempre um desvio. Cabe à equipa perceber se esse desvio será corrigido
em breve, ou se deverão ser tomadas medidas mais drásticas para o
corrigir, re-planeando a iteração. Por exemplo no caso de uma equipa
de alunos que tem uma avaliação na terça-feira pode assumir um
compromisso de trabalhar menos horas na segunda e compensar após a
avaliação. É no entanto importante notar que se assume uma
distribuição homogénea do tempo pelos dias por um motivo, deixar tudo
para o final pode comprometer o cumprimento da iteração.

\subsection{Politicas de replaneamento}
\label{sec:replanning}

Re-planear implica tirar ou acrescentar horas de trabalho a uma
iteração. Existem três acções possíveis, acrescentar histórias,
retirar histórias, ou partir uma história e retirar uma das partes. Em
qualquer dos casos uma regra deve ser sempre mantida, só se pode
replanear elementos que ainda não tenham sido iniciados, ou seja, no
estado \emph{Implementation} ou posterior. Se possível, o
replaneamento deve ser feito com recurso a mover uma ou mais histórias
inteiras, caso não haja nenhuma ainda não iniciada, então o
replaneamento deve ser conseguido apagando uma ou mais tarefas de uma
história, e criando outra história na iteração seguinte com uma cópia
dessas tarefas.

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "manual"
%%% End: 
