[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Questionário de adesão a XP



Olá,

Gostaríamos que vocês respondessem a um questionário de adesão a XP. O questionário é anônimo - agruparemos o resultado por projeto, sem considerar as respostas individuais.

Essas perguntas não vão influenciar na sua nota, por isso por favor gaste um tempinho para respondê-las com honestidade! =)

Enviem as respostas até 4/julho para: marivb*gmail:com

O questionário começa aí embaixo.

Abs,
Mari


============================================================
               Questionário de adesão – Programação Extrema (XP)
============================================================

Equipe/Projeto: _______________________________________    Data: __/__/__

============================================================

A) Tempo de educação formal em Informática ou Ciência da Computação (anos)
  (Para responder esta pergunta, considere a duração normal do curso e não o
  tempo que você demorou para concluí-lo, por exemplo, se você fez graduação
  em Computação e já concluiu o primeiro ano do mestrado, responda 5 anos - 4
  anos da graduação mais 1 de mestrado - mesmo que você tenha demorado 6 anos
  para concluir a graduação)

( ) 0  ( ) 1  ( ) 2  ( ) 3  ( ) 4  ( ) 5  ( ) 6 ou mais

B) Tempo de experiência profissional em Informática (anos)

( ) 0  ( ) 1  ( ) 2  ( ) 3  ( ) 4  ( ) 5  ( ) 6  ( ) 7  ( ) 8  ( ) 9  ( ) 10 ou mais

C) Número de cursos específicos em Programação Orientada a Objetos
  (por exemplo: MAC 110 em Java, POO, Tópicos de POO, SOD, etc.)

( ) 0  ( ) 1  ( ) 2  ( ) 3  ( ) 4 ou mais

D) Responda às perguntas abaixo dando uma nota de 0 a 10 para cada uma das
  práticas de Programação Extrema (XP), considerando o nível atual da equipe
  (Atual) e o nível que considera desejável (Ideal):

============================================================
Programação Pareada
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Duas pessoas trabalham juntas no mesmo computador. Elas trocam de papel
constantemente atuando como digitador ou revisor, pensando no trabalho que
estão realizando.

10  Nós não gostaríamos de escrever qualquer código crítico sem parear. Nós
   fazemos o rodízio constante de pares.
8   Nós geralmente trabalhamos em pares.
6   Nós geralmente fazemos discussões no quadro branco, conversamos no chat ou
   em visitas ao laboratório. Algumas pessoas programam em pares no teclado,
   mas alguns preferem não tentar
4   Nós tentamos parear mas não conseguimos devido a desencontro de horários e
   reuniões. Algumas pessoas são muito rápidas ou devagares para que eu tenha
   paciência de sentar junto. De qualquer forma, nossos móveis tornam o
   pareamento difícil.
2   Eu me distraio muito quando alguém me interrompe. Meu companheiro de
   trabalho me pede para não ter tantos visitantes.
0   Eu uso fones de ouvido para que as pessoas não me interrompam. Na verdade,
   eu prefiro trabalhar em casa com o telefone fora do gancho e com o programa
   de chat configurado no modo "Ocupado".

============================================================
Releases Pequenas
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Nós entregamos iterações pequenas e mais freqüentes ao nosso cliente.

10  A cada 1 ou 2 semanas nosso cliente pode ter uma nova versão funcionando do
   nosso sistema.
8   Nós temos iterações mensais. O cliente pode escolher novas funcionalidades
   para a próxima versão.
6   Dentro de alguns meses nós disponibilizamos uma nova iteração para nosso
   cliente.
4   Nós entregamos versões beta e patches de correção umas 4 vezes ao ano, com
   entregas maiores em ciclos de 8 a 12 meses.
0   Temos visão a longo prazo. A versão 1.0 do ano que vem te deixará entretido
   até que as verdadeiras funcionalidades sejam implementadas na versão 2.0
   dentro de 18+ meses.

============================================================
Integração Contínua
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Quando trabalhando em uma funcionalidade, sincronizo e disponibilizo código:

10  Diversas vezes por dia
8   Uma vez por dia
6   Diversas vezes por semana
4   Uma vez por semana
2   Algumas semanas podem se passar. Só disponibilizamos código quando está a
   tarefa está pronta
0   Geralmente tenho problemas porque muitas mudanças acontecem entre o momento
   em que eu faço checkout e quando tento sincronizar. Tenho que tomar cuidado
   na sincronização pois geralmente posso esquecer algumas coisas. O build
   parece quebrar freqüentemente.

============================================================
Desenvolvimento Dirigido por Testes
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Temos testes automatizados para cada classe de produção?

10  Os testes automatizados são o design. Se apagar qualquer linha do código,
   algum teste ficará vermelho. O cliente roda testes de aceitação.
8   Após pensar no design e escrever um pouco de código, nós escrevemos o teste
   automatizado.
6   Nós tomamos o cuidado de escrever testes de unidade para o nosso código
   antes de entregá-lo para o time de teste
4   Nós ouvimos falar de ferramentas como o JUnit, mas nunca utilizamos.
2   Nossa fase de teste formal ao final de cada ciclo demora muito mais que o
   planejado porque sempre aparecem diversos bugs e correções devem ser
   realizadas.
0   Nós não temos nenhum teste formal. Os clientes geralmente nos avisam se
   encontrarem algum problema.

============================================================
Jogo do Planejamento
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Nós movemos histórias para dentro e fora do plano baseado nas necessidades
atuais do cliente, mantendo os prazos fixos.

10  Antes de cada iteração curta o cliente escolhe as funcionalidades mais
   valiosas baseado nas estimativas dos desenvolvedores. A cada manhã nós
   revisamos as principais histórias numa reunião em pé de 5 minutos e os
   desenvolvedores se voluntariam para parear e desenvolvê-las. Como sabemos
   que mudanças acontecem, temos vantagem competitiva porque otimizamos nosso
   processo para aceitar e nos adapatar a elas.
8   Às vezes nós movemos funcionalidades para dentro e para fora do plano logo
   após o cliente mudar de prioridade, sempre que o time de desenvolvimento
   termina antes da hora ou se atrasa em alguns itens. Afinal, o produto é do
   cliente. Eles devem ter o que quiserem. Mudanças acontecem.
6   Planos não devem mudar. Nós cumprimos nossas datas, mesmo quando planejadas
   com 1 ano de antecedência. Nós criamos diversos artefatos como, por
   exemplo, documentos de especificação. Nós tentamos deixá-los atualizados.
4   Nós tomamos o cuidado de seguir o processo "cascata". Nós não começamos a
   escrever código antes de termos completado e revisado os documentos de
   design e especificação. Não começamos a testar antes do código ser
   entregue. Algumas vezes nós mudamos ou perdemos a data de entrega porque o
   cliente mudou algum requisito.
0   Nós perdemos clientes porque dizemos que eles devem esperar pelo próximo
   release. Afinal, nós estamos ocupados tentando terminar o que pediram no
   ano passado.

============================================================
Presença do Cliente
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Nós temos acesso ao nosso cliente e obtemos feedback frequente.

10  Nós não consideramos uma história completa até que o cliente execute seu
   teste de aceitação.
8   Nós freqüentemente interagimos com nossos clientes para mostrar protótipos
   e ver como eles querem mudá-los.
6   Nós obtemos requisitos dos clientes.
4   Os requisitos vem de algum lugar, mas não acho que venham dos clientes.
2   Nós entregamos funcionalidades, mas nunca temos certeza se fizemos o que
   eles queriam. Eles provavelmente já devem ter mudado de idéia agora.
0   Nós sabemos o que é certo. Eles usarão nosso sistema gostando ou não.
   Será bom para eles.

============================================================
Refatoração
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Nós re-escrevemos ou re-projetamos código com "mau cheiro" para facilitar o
desenvolvimento de novas funcionalidades.

10  Nós geralmente usamos a refatoração como ferramenta para tornar nosso
   design mais fexível e facilitar a implementação de mudanças.
5   Nós realizamos alguma limpeza no código de tempos em tempos.
0   Nós temos muito código antigo que já passou por diversas mudanças ruins.
   Nós temos medo de alterá-lo. Nós recusamos requisitos novos pois o código
   funciona como especificado e não pode ser alterado.

============================================================
Design Simples
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Nós mantemos o design simples agora para que possamos alterá-lo diante das
mudanças.

10  Nós executamos refatorações freqüentes. Nós não tentamos prever quais
   funcionalidades podem ser utilizadas no futuro. Generalizações precoces não
   são consideradas.
8   O design é limpo. Ele faz somente o necessário de uma forma simples.
6   Nosso design é intuitivo, com poucos pontos de melhoria.
4   Nós projetamos uma funcionalidade inteira com orgulho. Um produto que faz
   tudo que as pessoas precisam.
2   Nós temos grandes peças de código não-terminado que eventualmente são
   jogados fora.
0   Eu pensei em escrever esse framework caso alguém precise no futuro. Nunca
   se sabe.

============================================================
Padronização do Código
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Você segue uma padronização no código que permite alterações em qualquer parte
do sistema?

10  Nós temos um padrão, o seguimos e treinamos novas pessoas a seguirem.
   Aliás, são padrões da indústria também.
8   Nós temos boa parte do padrão documentada, e as pessoas geralmente o seguem
6   Nós fazemos a mesma coisa em alguns casos, porém outros são tratados
   diferentemente. Nossas chaves são colocadas no mesmo lugar, mas em trechos
   de tratamento de erros estão diferentes.
4   Nós temos diversos padrões e cada um segue o seu.
2   Nós não temos padrão.
0   Como você ousa me dizer o que fazer?

============================================================
Propriedade Coletiva do Código
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Qualquer um pode alterar qualquer parte do código. Nós não precisamos esperar o
especialista.

10  Nós mudamos código em qualquer área regularmente. Você não consegue
   perceber pois nosso código parece o mesmo.
8   Nós mudamos código em qualquer área regularmente.
6   Nós mudamos código alheio, mas geralmente dividimos as tarefas de acordo
   com a especialidade de cada um.
4   Nós podemos consertar isso se for necessário.
2   Nós teremos que esperar ele voltar das férias.
0   Eu bloqueio os arquivos do meu código e mantenho-os bloqueados.

============================================================
Metáfora ou Sistema de Nomes
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Você tem uma convenção de nomes para seus objetos?

10      Posso dizer o que o código de qualquer programador faz somente lendo os
   nomes, sem olhar os comentários. Geralmente pensamos nos mesmos nomes para
   as coisas. Quando estamos discutindo sobre o design nós usamos uma metáfora
   comum para o sistema.
8   Eu gosto dos nomes no sistema. Eles fazem sentido para mim.
6   Eu posso seguir a nomenclatura, com alguma ajuda dos comentários.
4   Os nomes são confusos. Você realmente precisa entender o que o código faz.
   Não tenho certeza qual nome dar às classes.
2   Você precisa conhecer o histórico, o nome é um fator, mas os métodos fazem
   coisas diferentes pois evoluíram independentemente.
0   Por que eles usaram esse nome? Não posso entender as abreviações.

============================================================
Ritmo Sustentável
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

As pessoas trabalham num ritmo que é produtivo e sustentável no longo prazo?

10  Nós trabalhamos num ritmo constante e confortável. Nós corremos somente
   quando necessário, somente em poucas ocasiões.
8   Algumas vezes estou muito ocupado, outras muito entediado.
6   Sempre que temos uma data de entrega precisamos entrar num modo de
   "correria".
4   Já faz alguns meses que estamos pedindo comida para a janta. Parece que
   sempre será assim.
2   Já precisei cancelar aulas e férias mais de uma vez.
0   Não tenho tempo para preencher esse formulário.

============================================================
Lições Aprendidas
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Você pára periodicamente para avaliar formas de melhoria?

10  As pessoas geralmente aparecem com idéias novas. Essas idéias são
   implementadas. Nós compartilhamos novas técnicas com pessoas de outra
   equipe. Fazemos retrospectivas periodicamente.
8   Nós pensamos no que deu errado, o que deu certo e propomos mudanças para o
   time.
6   Nós temos idéias mas elas parecem desaparecer e nunca são implementadas.
4   Nós repetimos os mesmos erros.
0   Nós nunca paramos. Tenho reclamações que parecem nunca serem levadas em
   conta. Obviamente ninguém se importa.

============================================================
Tracking
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Existem diversos gráficos e informações espalhadas pelas paredes que nos ajudam
a entender o andamento do projeto.

10  Atualizamos as informações diariamente e descartamos os gráficos que não
   trazem informações relevantes. Eles nos ajudam a entender o andamento do
   projeto e identificar pontos de melhoria.
8   Temos alguns gráficos interessantes que são atualizados semanalmente.
6   As informações na parede são atualizadas ao final de cada release.
4   Os gráficos estão desatualizados e ninguém mais se importa com o que está
   na parede. Precisamos terminar o trabalho para entregar o sistema no prazo.
2   Não sei qual a utilidade dos gráficos na parede. Eles parecem não estar
   relacionados ao meu trabalho diário. Eu acho que se fossem retirados
   ninguém iria perceber.
0   Não temos nenhum gráfico na parede. Preferimos guardar informações
   importantes em arquivos e documentos que ficam armazenados em nosso
   repositório central. Quem tiver interesse pode atualizá-los ou consultá-los

============================================================
Nota Geral para XP
Atual: ______    Ideal: ______
-------------------------------------------------------------------------------

Como você avalia sua implementação geral das práticas de XP?

10  Eu sou coach de XP, escrevo livros e faço apresentações em conferências.
8   Somos um bom exemplo de time de XP.
6   Nós geralmente mudamos um pouco as práticas na nossa rotina diária. Nós
   lemos sobre XP, mas como vidas ou muito dinheiro dependem do nosso software
   e como temos um time muito grande, usamos métodos formais com muita
   documentação e reavaliações periódicas.
4   Eu não sei o que é XP, mas as perguntas desse questionário parecem
   intrigantes. Talvez possamos tentar algumas delas em algum momento.
2   Não tenho certeza o que é XP, mas me parece algo ruim.
0   Não acredito que o desenvolvimento de software deva estar amarrado a um
   "processo", ou, nós sempre fizemos negócios da mesma forma. Não vejo
   necessidade de mudar agora.

============================================================
Observações Finais / Sugestões:








============================================================