-
Conduza revisões em um formato de reunião, embora os participantes das reuniões possam preparar algumas revisões
eles mesmos.
-
Monitora continuamente a qualidade durante as tarefas do processo para impedir que vários defeitos permaneçam
ocultos até as revisões. Em cada tarefa no RUP (Rational Unified Process), a lista de verificação listada abaixo é
mencionada para reforçar isso; utilize-a em reuniões informais de revisão ou durante o trabalho diário.
Em um glossário de padrões de 1990, IEEE define três tipos de revisão:
-
Revisão
-
Uma reunião formal na qual um produto de trabalho, ou um conjunto de produtos de trabalho, é apresentado ao
usuário, ao cliente ou a outras partes interessadas para comentários e aprovação.
-
Inspeção
-
Uma técnica de avaliação formal na qual os produtos de trabalho são examinados em detalhes por uma pessoa ou um
grupo diferente do autor para detectar erros, violações dos padrões de desenvolvimento e outros problemas.
-
Navegação
-
Um processo de revisão na qual um desenvolvedor orienta um ou mais membros da equipe de desenvolvimento por
meio do segmento de um produto de trabalho que ele/ela escreveu, enquanto outros membros fazem perguntas e
comentários sobre técnicas, estilos, possíveis erros, violações dos padrões de desenvolvimento e outros
problemas.
Quando implementado em equipes, as revisões também fornecem oportunidades para que as pessoas descubram o design e o
código de outros grupos e aumentam as chances de detectar códigos-fonte comuns, reutilizar oportunidades e
oportunidades para generalização. As revisões também fornecem uma forma de coordenar o estilo da arquitetura entre
vários grupos.
No RUP, as revisões são uma parte secundária importante para garantir a qualidade. Os principais contribuidores de
qualidade no RUP são bem descritos em [ROY98] na seção
em Inspeções de Período. Entretanto, esse manual identifica um efeito adicional valioso de revisões no desenvolvimento
profissional: a equipe júnior tem a oportunidade para ver o trabalho de especialistas e têm seus próprios trabalhos
revisados pelos mentores seniores.
Planejamos revisões para determinar o foco e o escopo da revisão e para garantir que todos os participantes entendam
suas funções e as metas da revisão.
Antes da revisão, defina o escopo da revisão, determinando a pergunta que será feita; definir o que será avaliado e por
quê? Consulte a Lista de Verificação para os produtos de trabalho a serem revisado para os tipos de perguntas que
poderiam ser feitas. As perguntas exatas dependerão da fase do projeto: revisões anteriores se concentrarão em
problemas amplos de arquitetura; as revisões posteriores serão mais específicas.
Depois que o escopo da revisão foi determinado, defina os participantes da revisão, a agenda, as informações que serão
exigidas para executar a revisão. Ao selecionar os participantes, estabeleça um equilíbrio entre a especialização de
arquitetura de software e a especialização de domínio. Designe de forma clara e não dúbia um líder da avaliação que
coordenará a revisão. Se necessário, obtenha informações de outras equipes ou de outras partes da organização para
fornecer experiência de domínio ou técnica.
O número de revisores deve ser aproximadamente sete ou menos. Se escolhidos de forma apropriada, eles serão mais do
capazes de identificar problemas na arquitetura. Mais revisores reduzem, na verdade, a qualidade da revisão, tornando a
reunião mais longa, a participação mais difícil e injetando problemas e discussões à reunião. Menos de 4 revisores
aumenta o risco de "miopia" na revisão, à medida que a diversidade de preocupações é reduzida.
Os revisores devem ser experientes na área a ser revisada; para casos de uso, os revisores devem compreender o domínio
do problema; para a arquitetura de software é necessário ter conhecimento das técnicas de design de software. Revisores
inexperientes podem aprender algo sobre a arquitetura participando, mas contribuirão pouco com a revisão e a presença
deles pode ser distraída. Mantenha pequeno o grupo; não mais de sete pessoas e não menos de três. Poucos revisores
prejudicam a qualidade da revisão, e mais revisores impedem a discussão interativa essencial para alcançar os
resultados de qualidade.
Selecione os revisores apropriados para o material:
-
aqueles que têm conhecimento para entender o material apresentado
-
aqueles que têm um papel ativo na qualidade do produto ou do produto de trabalho sendo revisado
Antes da revisão, os produtos de trabalho serão revisados e qualquer material adicional deve ser reunido e distribuído
aos participantes da revisão. Isso deve ser feito antes da reunião de revisão para que os revisores revisem o material
e os problemas obtidos. Distribuir os materiais de revisão com antecedência, e permitir que os revisores tenham tempo
de preparar-se para a revisão melhora significativamente a qualidade dos resultados da revisão. A preparação para as
revisões também aumenta bastante a eficiência e a eficácia da revisão.
Os revisores devem estudar a documentação, formular perguntas e identificar problemas a serem discutidos, antes da
revisão. Dada a carga de trabalho normal dos revisores, poucos dias de trabalho é o tempo mínimo necessário para
preparar-se para a revisão.
Há várias formas de se conduzir uma revisão bem-sucedida:
Cada um deles será discutido em detalhes abaixo.
Em geral, o processo de revisão segue um ciclo repetitivo:
-
Um problema é levantado por um revisor
-
O problema é discutido e potencialmente confirmado
-
Um defeito é identificado (algo é identificado e precisa ser solucionado)
-
Continue até que nenhum outro problema seja identificado
Para que isso funcione efetivamente, todos devem entender que a meta de uma revisão é aprimorar a qualidade do produto
de trabalho revisado. Os produtos de trabalho devem ser revisado com um olho crítico para descobrir problemas. Fazer
isso pode ser difícil, então, todos os revisores devem se lembrar constantemente de concentrar-se na identificação de
problemas (somos todos naturalmente solucionadores de problemas, mas como revisores devemos deixar isso de lado).
Nós todos temos muito domínio no nosso trabalho; é difícil aceitar críticas, mesmo quando são construtivas.
Conseqüentemente, devemos trabalhar cada vez mais para nos concentrar nas metas de revisão: para tornar nosso trabalho
melhor.
Para conduzir uma revisão efetiva, todos têm uma função a desempenhar. Mais especificamente, há certas funções que
devem ser desempenhadas, e os revisores não podem alternar as funções com facilidade. As funções básicas em uma revisão
são:
-
o moderador
-
o gravador
-
o apresentador
-
os revisores
O moderador deve garantir que a revisão siga a agenda e mantenha-se focada nos tópicos apresentados. O moderador
garante que as discussões paralelas não atrapalhem a revisão e que todos os revisores participem igualmente.
O gravador é um observador freqüente, mas parte essencial da equipe de revisão. Controlar o que foi discutido e
documentar a ações a serem executadas é uma tarefa em tempo integral. Designar essa tarefa a um dos revisores,
essencialmente, o mantém fora da discussão. Pior ainda, uma falha ao documentar o que foi decidido pode fazer com o
problema surja novamente no futuro. Certifique-se de ter um gravador e de que essa seja a única função desempenhada por
uma pessoa.
O apresentador é o autor do produto de trabalho sob revisão. O apresentador explica o produto de trabalho e as
informações adicionais necessárias para compreendê-lo (se o produto de trabalho não for auto-explicativo, ele
provavelmente dará trabalho). É importante que as revisões não se tornem "trials" - o foco deve estar no produto de
trabalho, não no apresentador. É função do moderador garantir que os participantes (incluindo o apresentador) tenham
isso em mente. O apresentador está lá para iniciar a discussão, responder às perguntas e oferecer esclarecimentos.
Os revisores levantam os problemas. É importante manter-se focado nisso, e não se deter em discussões paralelas sobre
como solucionar o problema. O foco deve estar no resultado e não nos meios.
Como discutido acima, o moderador exerce uma função crucial em manter a revisão sem perder o foco. É importante que o
moderador esteja focado em manter a revisão sob controle; o moderador não deve ter as responsabilidades de revisor. A
função do moderador é iniciar a discussão, garantir uma participação igualitária e difundir a alegação. Essa é uma
tarefa em tempo integral. Se houver falha na moderação, as revisões podem estar além da conclusão pretendida, e as
metas podem não ser alcançadas.
As revisões são mais eficientes quando são breves e focadas em objetivos bem-identificados. Como é difícil manter a
concentração por períodos longos, e como os revisores têm outros trabalhos a serem feitos, limite as revisões a no
máximo duas horas. Se uma revisão está prevista para ser longa, divida-a em várias revisões mais focadas e pequenas. Os
resultados serão melhores se os revisores puderem se manter concentrados.
Para fazer isso, é preciso ter uma agenda bem-definida e metas claramente articuladas. Elas devem ser comunicadas
quando os materiais de revisão são distribuídos, e o moderador deve reforçá-las no início da reunião de revisão. O
moderador deve reforçar de forma consistente (e às vezes de forma impiedosa) essas metas durante a reunião.
Uma das principais razões para a falta de êxito das reuniões de revisão em alcançar os resultados pretendidos é que os
revisores têm a tendência de prender-se em discussões de como um problema deve ser corrigido. A correção de problemas
normalmente requer investigação e reflexão; o formato da revisão não é uma mídia efetiva para esse tipo de discussão.
Depois que o problema é identificado, determine se ele é um defeito que deve ser resolvido e, em seguida, designe a
alguém para investigá-lo e resolvê-lo. A reunião de revisão deve concentrar-se na identificação apenas.
Se o problema exigir uma discussão adicional entre um grupo de pessoas, planeje uma reunião separada para tratar do
assunto. Normalmente, essa reunião exigirá alguma investigação e preparação, e as pessoas com as habilidades certas
deverão ser envolvidas. A revisão deve permanecer concentrada na identificação de outros problemas. O moderador
precisar impor-se de forma considerável para manter a reunião de revisão concentrada nisso.
A revisão não terá muito valor se nada surgir dela. Na conclusão da revisão:
-
Priorize a lista de problemas.
-
Crie defeitos para controlar problemas e suas resoluções.
-
Se for necessária uma investigação adicional, designe uma pequena equipe para pesquisar o problema (mas não para
solucioná-lo).
-
Para os problemas que podem ser resolvidos na iteração atual, designe uma pessoa ou uma equipe para corrigir o
problema.
-
Alimente a lista de problemas não resolvidos em futuros esforços de planejamento de iteração.
Consulte também [MCO97].
|