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

\section{Planeamento}
\label{sec:planeamento}

O planeamento é feito a dois níveis: release e iteração. Em ambos o
conceito fundamental é o de velocidade. O objectivo é planear
histórias até a soma das suas estimativas estar próxima da velocidade
da equipa na release/iteração em planeamento. Para isso é preciso
criar previamente as histórias, a secção seguinte descreve o processo
de criação das mesmas.

\subsection{Criação de Histórias}
\label{sec:criacao-de-estorias}

No caso mais usual as histórias são criadas no contexto do projecto
(através do menu de contexto New > Story da vista Projects, ou na
toolbar do editor do projecto).

Na criação de uma história deve-se indicar um nome para a história e a
sua descrição. A descrição deve apresentar, sucintamente, o que se
pretende implementar. A história criada fica automaticamente visível na
área inferior da vista 'Projects'. Os restantes detalhes da história
são inseridos no editor da mesma. Neste editor, apresentado na figura
\ref{fig:story-editor} deve-se indicar:
\begin{itemize}
\item A estimativa (em horas) para a implementação da história,
  incluindo testes unitários;
\item O tipo de história;
\item O 'theme' se existir;
\item A prioridade, risco, e valor;
\end{itemize}

O cliente não é importante no contexto da cadeira de ES.

\begin{figure}[!h]
  \centering
  \includegraphics[width=.7\textwidth]{images/story-editor}
  \caption{Editor da História}
  \label{fig:story-editor}
\end{figure}

\subsection{Release Planning}
\label{sec:release-planning}

O processo de planeamento começa com a criação de uma release. A
release é criada para uma equipa, logo, o acesso ao wizard de criação
é feito pelo menu de contexto da equipa, ou pelo editor da mesma. Além
do nome e descrição, a equipa precisa de definir o período de duração
da release.

O release planning é uma actividade bastante simples executada na
\emph{tab} 'Planning' do editor da release. A figura
\ref{fig:release-planning} mostra o editor de uma release de exemplo.

\begin{figure}[!h]
  \centering
  \includegraphics[width=.9\textwidth]{images/release-planning}
  \caption{Release Planning}
  \label{fig:release-planning}
\end{figure}

No topo temos uma barra de progresso que indica o valor actual da soma
das estimativas das histórias contra um máximo que corresponde á
velocidade estimada para esta release. A tabela superior ('Planned
Stories') contém as histórias planeadas para a release, a inferior
('Unplanned Stories') contém as histórias do projecto ainda não
planeadas em nenhuma release. Para planear uma história para a release
corrente, deve-se seleccionar a história na área 'Unplanned Stories' e
arrastar para a área 'Planned Stories'. Automaticamente as horas
estimadas para a release aumentam. O objectivo será planear histórias
na release até que a barra de progresso se aproxime do máximo, ou
seja, a soma das estimativas está próxima da velocidade. Mais uma vez,
como em todos os editores as alterações serão submetidas após a acção
de 'Save'.

É preciso notar no entanto que na primeira release, esta velocidade é
uma valor por omissão, e portanto a barra de progresso é tornada
inútil, devendo o planeamento ser efectuado apenas com base no bom
senso da equipa. As releases seguintes, se as houver já beneficiarão
desta informação dado que a velocidade nesse caso já será baseada em
valores medidos.

\subsection{Iteration Planning}
\label{sec:iteration-planning}

O processo de planeamento da iteração começa com a criação da
iteração. A iteração é criada sob uma release, e deve ser definida com
um período de duração contido na duração da release a que pertence.

O iteration planning consiste num processo equivalente ao do release
planning com um passo extra de criação e atribuição das tarefas de
cada história. Existe uma \emph{tab} 'Planning' do editor da iteração
que deve usado para planear histórias na iteração em edição, nesse
ecrã a tabelas de baixo ('Unplanned Stories') contém apenas as
histórias planeadas para a release de que a iteração faz parte,
excepto as já planeadas noutra iteração da mesmo release.

Tal como no release planning também são válidas as limitações no
planeamento da primeira iteração.

\subsection{Criação de Tarefas}
\label{sec:criacao-de-tarefas}

Para criar as tarefas pode-se usar o menu de contexto na parte
inferior da vista Projects, ou usar a toolbar do editor de uma história
facilmente acessível por um duplo-click no história no ecrã de
planeamento.

Ao contrário dos restantes a criação de tarefas não passa por um
wizard, é imediatamente aberto um editor. Nesse editor além do nome e
de uma descrição da tarefa, que deve incluir uma descrição dos passos
a cumprir, existem algumas propriedades que devem ser preenchidas,
nomeadamente:
\begin{itemize}
\item A prioridade;
\item O tipo;
\item A estimativa.
\end{itemize}

Outros dados da tarefa são apenas locais, e servem apenas para o
gestão pessoal do utilizador em sessão. A propriedade 'Category'
permite ``arrumar'' as tarefas na vista 'Task List' por categorias, a
propriedade 'Scheduled For' permite planear a tarefa para um dia em
particular (entre os vários dias no período da iteração), as questões
de planeamento pessoal serão discutidas mais à frente.

\subsection{Atribuição de Tarefas}

A atribuição da tarefa a um dos membros da equipa é feita no editor da
tarefa na secção 'People'. Pode ser feito logo na criação da tarefa,
ou abrindo o editor posteriormente à criação. Os possíveis
contemplados para a atribuição da tarefa são os membros da equipa que
contém a release, que contém a iteração, que contém a história à qual a
tarefa pertence. A atribuição serve principalmente para limitar a
visibilidade da tarefa na vista 'Task List', sendo que cada utilizador
apenas vê as tarefas que lhe estão atribuidas, além daquelas que
criou.

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