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

\section{Conceitos}
\label{sec:conceitos}

Nesta secção apresenta-se uma breve descrição dos conceitos utilizados
na ferramenta Agile.

\paragraph{Projecto.} Um projecto é composto por releases. Cada uma
dessas releases está associada a um equipa responsável pela sua
execução. Os projectos têm data de início definida, mas não têm um fim
definido.

\paragraph{Equipa.} Uma equipa é constituída por um conjunto de
membros. Esses membros implementam tarefas no contexto de um plano de
execução composto por releases e iterações.

\paragraph{Release.} Uma release corresponde a um \emph{deliverable},
ou seja, um produto entregue ao cliente. As releases são executadas
num período de tempo fixo, e não deve haver sobreposição temporal
entre releases da mesma equipa. Numa release implementam-se histórias,
que representam os requisitos a incluir no \emph{deliverable}.

Num projecto com mais de uma equipa existirá uma sequência de releases
por cada equipa. Por norma, estas sequências são temporalmente
paralelas, ou seja, cada uma das releases da sequência deve começar e
terminar ao mesmo tempo que nas outras equipas.

\paragraph{Iteração.} Uma iteração corresponde a um ciclo de
desenvolvimento mais curto, com visibilidade apenas para os membros da
equipa, não correspondendo a nenhum objectivo de negócio. Numa release
executam-se várias iterações. Estas são também definidas por um
período de tempo, sem sobreposição no contexto da mesma release.

\paragraph{Velocidade} A velocidade corresponde ao número de horas de
histórias que uma equipa consegue implementar numa release ou iteração
de duração fixa.

\paragraph{História} Uma história corresponde a um requisito a
cumprir. A cada história está associada uma estimativa em horas para a
cumprimento desse requisito. As histórias podem ser de três tipos:
\begin{itemize}
\item Feature - Um requisito novo;
\item Bug - Resolução de um bug;
\item Enhancement - Melhoramento ou extensão de um requisito já
  implementado.
\end{itemize}
Além do tipo, as histórias podem também ser categorizadas em função
sua prioridade, valor e risco.  Finalmente, as histórias podem ou não
estar associadas a um \emph{theme}.

Durante a implementação de um projecto a história passa por um conjunto
de estados, a saber:
\begin{itemize}
\item Proposed - Criada mas ainda não planeada numa iteração;
\item Planned - Planeada numa iteração;
\item Implementation - Pelo menos uma das tarefas que compõem a
  história já foi iniciada;
\item Completed - Todas as tarefas que compõem a história estão
  terminadas.
\end{itemize}

\paragraph{Theme} Os themes são tipos de histórias mas no contexto do
projecto. Geralmente o theme é usado para categorizar as histórias nos
módulos do projecto no qual se inserem, por exemplo, 'Venda de
Bilhetes', 'Gestão de Stocks', etc.

\paragraph{Tarefa} Uma tarefa corresponde a um passo na implementação
de uma história. Uma história é geralmente composta por várias
tarefas. Cada tarefa tem também uma estimativa em horas. As tarefas
são apenas categorizadas em função da sua prioridade e do tipo,
havendo no entanto um maior numero de tipos de tarefas, a saber:
\begin{itemize}
\item Code - Tarefa de codificação simples;
\item Refactor - Tarefa de refactorização de código;
\item Documentation - Tarefa de documentação ou de modelação, que pode
  incluir definir requisitos, descrever casos de uso ou outros modelos
  UML, ou ainda documentação técnica e de utilização da funcionalidade
  a implementar.
\item Research - O cumprimento de uma tarefa pode implicar a pesquisa
  de informação, tarefas deste tipo podem ser usadas para submeter
  trabalho neste tipo de actividade.
\item Test - Testes de integração ou outros, excepto testes unitários,
  cujo esforço já deve ser incluído nas tarefas de codificação ou
  refactoring.
\end{itemize}

As tarefas, tal como as histórias passam também por um conjunto de
estados:
\begin{itemize}
\item Proposed - Criada mas não atribuída;
\item Assigned - Atribuída a um membro da equipa, mas não iniciada;
\item Implementation - Tarefa com trabalho reportado;
\item Completed - Tarefa marcada como terminada.
\end{itemize}

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