Orientações de Trabalho: Revisões
Tópicos
- Conduza revisões em um formato de reunião, embora os participantes das reuniões possam preparar algumas revisões isoladamente.
- Monitore constantemente a qualidade durante as atividades do processo para evitar que um grande número de defeitos permaneça oculto até que as revisões sejam feitas. Em cada atividade do Rational Unified Process (RUP), os pontos de verificação relacionados a seguir são mencionados para reforçar isso; use-os nas reuniões de revisão informais ou no trabalho diário.
Em um glossário padrão de 1990, o IEEE define três tipos de revisões:
- Revisão
- Uma reunião formal em que um artefato, ou um conjunto de artefatos, é apresentado ao usuário, ao cliente ou a outras partes interessadas para obter comentários e ser aprovado.
- Inspeção
- Uma técnica de avaliação formal em que os artefatos são examinados detalhadamente por um grupo ou uma pessoa que não seja o autor a fim de detectar erros, violações de padrões de desenvolvimento e outros problemas.
- Inspeção Técnica
- Um processo de revisão em que um desenvolvedor conduz um ou mais membros da equipe de desenvolvimento durante a análise de um segmento de um artefato que ele escreveu, enquanto os outros membros fazem perguntas e comentários sobre técnica, estilo, possíveis erros, violação de padrões de desenvolvimento e outros problemas.
Quando implementadas pelas equipes, as revisões também se constituem em oportunidades para que as pessoas descubram designs e códigos de outros grupos, aumentando assim as possibilidades de detectar código-fonte comum, as oportunidades de reutilização e as de generalização. As revisões também são uma maneira de coordenar o estilo de arquitetura entre os vários grupos.
No RUP, as revisões desempenham um papel importante, embora secundário, na garantia da qualidade. Os fatores que mais contribuem para a qualidade no RUP estão descritos detalhadamente em [ROY98] na seção sobre Inspeções em Parceria. No entanto, esse livro realmente identifica um efeito adicional importante que as revisões exercem no desenvolvimento profissional: equipes de iniciantes têm a oportunidade de ver o trabalho de especialistas e têm o seu próprio trabalho revisado por mentores seniores.
Planejamos as revisões para determinar o seu foco e o seu escopo e para assegurar que todos os participantes compreendam o seu papel e as metas da revisão.
Antes da revisão, definir seu escopo determinando a pergunta que será feita; definir o que será avaliado e por que? Examine os pontos de verificação referentes aos artefatos a serem revisados a fim de determinar os tipos de perguntas que poderão ser feitos. Que perguntas exatamente serão feitas dependerá da fase do projeto: as revisões iniciais estarão preocupadas com questões arquiteturais mais amplas, as revisões mais tardias serão mais específicas.
Após o escopo da revisão ter sido determinado, defina os participantes da revisão, sua agenda e as informações que serão necessárias para executar a revisão. Ao selecionar os participantes, estabeleça um equilíbrio entre os conhecimentos da arquitetura do software e os conhecimentos do domínio. De maneira clara e sem ambigüidades designe um líder de avaliação para coordenar a revisão. Se necessário, conte com outras equipes ou outras partes da organização para fornecer conhecimentos técnicos ou do domínio.
O número de revisores deverá ser aproximadamente sete ou menos. Se escolhidos de forma apropriada, eles serão mais do que capazes de identificar problemas na arquitetura. Um número maior de revisores, na verdade, reduz a qualidade da revisão tornando as reuniões mais longas, dificultando a participação e injetando discussões e problemas secundários na revisão. Um número inferior a quatro revisores poderá aumentar os riscos de uma revisão que não aborde muitos aspectos, já que a diversidade das preocupações será reduzida.
Os revisores deverão ser profissionais experientes na área a ser revisada; em relação aos casos de uso, eles deverão ter uma compreensão do domínio do problema; em relação à arquitetura do software, também será necessário um conhecimento das técnicas de design de software. Os revisores inexperientes poderão aprender algo sobre a arquitetura participando da revisão, mas contribuirão pouco para ela e sua presença poderá distrair os demais. Mantenha o grupo pequeno; não mais do que sete pessoas e não menos do que três. Um número menor de revisores representa um risco para a qualidade da revisão e um número maior de revisores evita discussões interativas que são essenciais para obter resultados de qualidade.
Selecione revisores apropriados para o material:
- os que tenham a formação que lhes capacite a compreender o material apresentado
- os que tenham uma participação ativa na qualidade do produto ou do artefato que está sendo revisado
Antes da revisão, os artefatos a serem revisados e qualquer material de suporte deverão ser reunidos e distribuídos aos participantes. Isso deverá ser feito com antecedência suficiente em relação à reunião de revisão para que os revisores possam estudar o material e reunir problemas. Distribuir materiais de estudo com antecedência suficiente e permitir que os revisores tenham tempo de se prepararem para a revisão melhora significativamente a qualidade dos resultados da revisão. A preparação referente às revisões também melhora muito a eficiência e eficácia da revisão.
Os revisores deverão estudar a documentação, elaborando perguntas e identificando problemas a serem discutidos, antes da revisão. Devido à carga de trabalho normal dos revisores, o tempo mínimo necessário para se preparar para a revisão geralmente é de alguns dias de trabalho.
Há vários fatores-chave para conduzir revisões bem-sucedidas:
Cada um desses fatores é discutido detalhadamente a seguir.
Em geral, o processo de revisão segue um ciclo repetitivo:
- Um problema é levantado por um revisor
- O problema é discutido e possivelmente confirmado
- Um defeito é identificado (identifica-se algo que precisa ser abordado)
- Continue até que não sejam mais identificados problemas
Para que isso funcione de forma eficiente, é necessário que todos compreendam que a meta de uma revisão é melhorar a qualidade do artefato revisado. Os artefatos deverão ser revisados com um olhar crítico a fim de detectar problemas. Esta poderá ser uma tarefa difícil, sendo assim todos os revisores terão que se lembrar constantemente de que deverão concentrar-se na identificação de problemas (somos todos seres com uma tendência natural a resolver os problemas, mas os revisores deverão deixar essa tendência de lado).
Somos todos muito possessivos em relação ao nosso trabalho o que, freqüentemente, torna muito difícil aceitar as críticas, mesmo quando são construtivas. Conseqüentemente, deveremos trabalhar ainda mais para nos concentrarmos nas metas da revisão: tornar o trabalho melhor.
Para conduzir uma revisão eficiente, cada um tem um papel a ser desempenhado. Mais especificamente, há determinados papéis que deverão ser desempenhados, e os revisores não poderão alternar papéis com facilidade. Os papéis básicos de uma revisão são:
- o moderador
- o registrador
- o apresentador
- os revisores
O moderador assegura que a revisão siga a agenda e permaneça concentrada no tópico em discussão. O moderador assegura que a revisão não seja desviada de seu foco por discussões secundárias e que os revisores participem igualmente.
O registrador é um papel freqüentemente subestimado, mas essencial na equipe de revisão. Manter um registro do que está sendo discutido e documentar ações a serem executadas é uma tarefa em tempo integral. Atribuir essa tarefa a um dos revisores, na verdade, os deixará fora da discussão. Pior ainda, não documentar o que foi decidido provavelmente fará com que o problema surja novamente em um momento posterior. Certifique-se de ter um registrador e de que este seja o único papel a ser desempenhado por essa pessoa.
O apresentador é o autor do artefato que está sendo revisado. Ele explica o artefato e quaisquer informações subjacentes necessárias para compreendê-lo (no entanto, se o artefato não for auto-explicativo, será necessário um certo trabalho). É importante que as revisões não se tornem "julgamentos" - o foco deverá estar no artefato e não no apresentador. É função do moderador assegurar que os participantes (incluindo o apresentador) não se esqueçam disso. O apresentador está lá para iniciar a discussão, responder a perguntas e oferecer esclarecimentos.
Os revisores levantam problemas. É importante permanecer concentrado nisso e não se envolver em discussões secundárias sobre como abordar os problemas. Concentre-se nos resultados e não nos meios.
Conforme discutido acima, o moderador desempenha um papel crucial para assegurar que a revisão não perca o seu foco. É importante que o moderador se concentre em manter a revisão sob controle; ele não deve ter as responsabilidades dos revisores. A função do moderador é estimular a discussão, assegurar a participação equilibrada dos participantes e neutralizar os desentendimentos. É uma tarefa em tempo integral. Se o papel do moderador não for desempenhado de forma eficiente, as revisões se arrastarão além da conclusão pretendida e não alcançarão suas metas.
Os revisores são mais eficientes quando são breves e procuram concentrar-se em objetivos bem definidos. Como é difícil manter o foco por longos períodos e porque os revisores também têm outros trabalhos a serem feitos, limite as revisões a períodos de, no máximo, duas horas. Se for esperado que uma revisão leve mais tempo, divida-a em várias revisões menores e mais concentradas. Os resultados serão melhores se os revisores puderem manter o foco.
A chave para fazer isso é ter uma agenda bem definida e metas claramente articuladas. Eles devem ser comunicados quando os materiais de estudo forem distribuídos e o moderador deverá reforçá-los no início da reunião de revisão. O moderador deverá então reforçar de maneira consistente (e, algumas vezes, de maneira contumaz) essas metas durante a reunião.
Uma das principais razões que levam as revisões a não alcançarem os resultados pretendidos é que elas têm uma tendência a se transformarem em discussões sobre como os problemas devem ser resolvidos. A solução de problemas geralmente exige investigação e reflexão; o formato da revisão não é um meio eficaz para esse tipo de discussão. Depois de identificar o problema, determine se ele é um defeito que deve ser resolvido e então designe uma pessoa para investigá-lo e resolvê-lo. A reunião de revisão deverá concentrar-se apenas na identificação.
Se o problema exigir mais discussões em grupo, crie uma reunião separada para concentrar-se nesse tópico. Normalmente, essa reunião exigirá um certo grau de investigação e preparação, e as pessoas com as habilidades certas precisarão ser incluídas nela. A revisão deve permanecer concentrada em identificar outros problemas. Freqüentemente, o moderador terá que intervir consideravelmente para manter a reunião de revisão concentrada nisso.
A revisão não terá muita importância se nada for feito depois dela. Ao término da revisão:
- Priorize a lista de problemas.
- Crie defeitos para rastrear os problemas e suas soluções.
- Se for necessária uma investigação adicional, designe uma pequena equipe para pesquisar o problema (mas não resolvê-lo).
- Para os problemas que possam ser resolvidos na iteração atual, atribua uma pessoa ou equipe para corrigi-los.
- Inclua a lista de problemas não resolvidos nos futuros esforços de planejamento de iteração.
Consulte também [MCO97].
Copyright
(c) 1987 - 2001 Rational Software Corporation
|