Beruflich Dokumente
Kultur Dokumente
conhecimento
sobre processos
ágeis
O Pink e o Cérebro
Crônica sobre a difícil arte da simplicidade em projetos de
software através da análise desses dois perfis.
Contrato de Escopo
Negociável
Veja nesse artigo, o que é , como funciona, e como
Planejando seu projeto com aplicar esse modelo em sua empresa.
Extreme Programming – Parte I
Aprenda como funciona a estrutura base das práticas de
Extreme Programming, e veja como iniciar um planejamento Mostra-me tua equipe,
de projetos seguindo suas idéias.
e eu te direi quem és!
Artigo que lhe levará a uma auto-avaliação sobre suas
atitudes como líder ou participante de um projetos.
News
Veja as novidades do mundo ágil
Página 4
O Pink e o Cérebro
Manoel Pimentel Medeiros
Crônica sobre a difícil arte da simplicidade em
projetos de software
Página 5
Página 12
Página 16
Heptagon fecha parceiria com IVIS Enquetes sobre adoção dos processos
A Empresa Heptagon, que têm ágeis:
desenvolvido um trabalho pioneiro Atenção membros do GUFDD (Grupo de
em FDD(Feature Driven Usuários de FDD) e do XPNorte(Grupo de
Development), fechou um acordo Usuário XP do Região Norte do Brasil),
comercial com a empresa Americana participem das enquetes postadas em cada
IVIS, produtora do XProcess, grupo, pois são temas importantes que podem
ferramenta que atende a criação de mostrar o cenário do desenvolvimento ágil no
templates para cobrir quaquer Brasil.
processo. O site do XPNorte é:
Maiores informações em: http://br.groups.yahoo.com/group/xpnorte
www.heptagon.com.br O site do GUFDD é:
http://br.groups.yahoo.com/group/gufdd/
mecanismo, com tubos movidos a pressão com sua visão extremamente simplista dos
hidráulica, iniciada por um coletor de energia solar, problemas, quando sozinhos, conseguem chegar a
canudo para tomar suco de limão. Não que soluções inteligentes e simples. Esses dois perfis,
isso seja algo totalmente ruim, na verdade, o são o exemplo claro de comportamentos muito
Cérebro só é capaz de criar esse tipo de coisa, comuns em um projeto de software, pois por
Informações em:
Manoel Pimentel Medeiros
(manoelpimentel.blogspot.com) É Engenheiro de Software,
atua em projetos ágeis pela Heptagon(SP), entre outras
www.visaoagil.com
atividades, é diretor editorial da Revista Visão Ágil, líder
do projeto BoxSQL , se dedica a coordenação do grupo
de usuários de extreme programming da região Norte
(XPNorte) e do NUG-BR (NetBeans Users Group - Brasil),
além de ser colunista do portal e revista Java Magazine,
possui também as certificações: Scrum Master, Project
Management, Java e Delphi da Brainbench.
Talvez você já tenha lido vários textos sobre XP dessa forma, esse artigo terá como foco, a aplicação de
(eXtreme Programming), talvez também você até diga “legal, alguns “artefatos” que servem como ferramentas
mas como eu uso isso?”, portanto, esse artigo, almeja fundamentais para o uso de XP.
explicar de maneira simples e objetiva como você pode iniciar
Por isso, iremos inicialmente estudar nesse artigo as
seu projeto usando as premissas fundamentais do
idéias básicas de uma estória e como são estruturados as
desenvolvimento ágil.
iterações e os releases, mas nos próximos, iremos estudar o
Só para relembrar, XP, é um processo de que é um dia perfeito de trabalho? Como funciona o sistema
desenvolvimento de software que é baseado em premissas baseado em pontos? Como compor do cartão de estória? E
ágeis como: por fim, como elaborar um roteiro para testes de aceitação.
- Desenvolvimento incremental;
- Projetos preferencialmente com um escopo O que é uma estória?
orientado a objetos;
Apesar de que falaremos mais detalhadamente sobre
- Escopo variável, ou seja, os requisitos são esse tema nos próximos artigos, decidi colocar aqui uma
vagos e mudam com freqüência. breve introdução sobre o que são estórias, pois é crucial que
você tenha esse entendimento básico, para conhecer o
Entenda que o termo ágil, não significa que o código
funcionamento de XP como um todo.
do projeto vai ser produzido como um passe de mágica da
noite para o dia, na verdade, os processos ágeis como XP, se Estórias são as funcionalidades que o cliente espera
baseiam na idéia de prover a todas as partes de um projeto, receber na aplicação que será construída, que em outras
o máximo de produtividade por cada dia de trabalho, gerando abordagens seriam chamadas de requisitos, casos de usos
dessa forma um maior valor agregado e um alto nível de ou pontos de função.
qualidade ao software desenvolvido.
Essa agilidade, conforme já falei em artigos
Quem escreve uma estória?
anteriores, é assegurada por um conjunto de valores como
feedback, comunicação, simplicidade, respeito e Normalmente, elas são registradas em cartão de
coragem, através também de uma gama de práticas como: estória, pelo próprio cliente, em uma linguagem simples e
comum o suficiente para a compreensão de todos da equipe.
- O Cliente Presente,
- Estórias,
Quem usa uma estória?
- Jogo do Planejamento,
Como você pode observar na figura 01, os maiores
- Programação em Par,
usuários das estórias, são os desenvolvedores, que o fazem
- Reuniões em Pé(rápidas), a fim de guiar o que deve ser desenvolvimento na aplicação,
porém, costuma-se afirmar que as estórias são um “convite
- Desenvolvimento guiado por testes,
ao diálogo” entre os desenvolvedores e o cliente, ou seja,
- Testes de Aceitação, não é necessário que as estórias sejam bem detalhadas, na
verdade é recomendado que o texto contido nelas, seja
- Refactoring, extremamente simples e objetivo, e principalmente, deixe
- Código Coletivo, uma margem para estimular o diálogo entre a equipe e o
cliente a fim de dirimir qualquer dúvida sobre a funcionalidade
- Padrões de Código, em questão.
- Simplicidade de Design, É importante observar que é através dessas estórias
- Metáforas, que podemos estimar qual será o esforço necessário para
implementar essa tal funcionalidade através de um
- Ritmo Sustentável, sistema baseado em pontos(que veremos no próximo artigo).
- Integração Contínua,
- Releases Curtos
Dica:
Para as equipes mais animadas e PRODUTIVAS, costuma-se fazer ao fim de cada iteração, um bom happy-hour para comemorar
ou “bebemorar” o sucesso da mesma. Acredite, isso tem um impacto muito estimulante para toda a equipe, portanto se possível,
EXPERIMENTE!
http://www.devmedia.com.br/articles/viewcomp.asp?com
http://www.devmedia.com.br/articles/viewcomp.asp?com
p=3246
p=1694
Artigo: O que é melhor? Kung-Fú ou Karatê? - Crônica com
Artigo: Implementando Pair Programming em sua equipe
alguns devaneios sobre projetos de software
http://www.devmedia.com.br/articles/viewcomp.asp?com
http://www.devmedia.com.br/articles/viewcomp.asp?com
p=1432
p=4073
Artigo: JUnit - Implementando testes unitários em Java –
Artigo: O Pink e o Cérebro - Crônica sobre a difícil arte da
Parte I
simplicidade em projetos de software
http://www.devmedia.com.br/articles/viewcomp.asp?com
http://www.devmedia.com.br/articles/viewcomp.asp?com
p=1549
p=2495
Artigo: JUnit - Implementando testes unitários em Java –
Artigo: JavaDoc – Implementando documentação através
Parte Final
O que significa o fracasso de um projeto para uma empresa? Um equipe de alto desempenho é aquela que possui um
De uma forma simplificada poderíamos dizer que significa a objetivo bem definido e compartilhado por todos os membros
perda de dinheiro, reputação e coragem. Dinheiro por motivos do projeto. É uma equipe onde todos estão entusiasmados com
óbvios, reputação pelo desgaste que a equipe sofrerá com a suas atividades, querem vencer juntos. Os membros dessas
queda, e coragem pelo fato de que a alta diretoria da empresa equipes são criativos e ousados na busca da qualidade, são
se sentirá apreensiva para investir em próximos projetos. dedicados, acordam na segunda-feira com vontade de ir para o
Talvez, por este motivo pudemos perceber que nos últimos projeto, pois se divertem no trabalho, e se divertem juntos,
anos as companhias têm ficado mais atentas para a prática querem sempre fazer mais e melhor. Todos querem participar
qualificada do gerenciamento de projetos. Na maioria das de uma equipe dessa, pois sabem que além de uma
verticais de negócio, vemos um crescente investimento na experiência profissional inigualável, isso será um divisor de
capacitação e qualificação dos gerentes de projetos, mais águas na sua carreira.
ainda em ferramentas, metodologias, certificações e outros.
No entanto, no fim de cada projeto, continuamos a assistir o Agora, quando isso não existe, o que você tem são clientes,
mesmo filme de sempre: “Caça às Bruxas'. Ou foi culpa do diretores, gerentes, analistas, programadores e outros, cada
gerente, ou da diretoria, ou da falta de um maior investimento, um de um lado, com um “crachá” diferente.
ou dos programadores, ou da inexistência de treinamentos, ou
– como é na maioria dos casos – a culpa foi do cliente(interno Qual sua missão nesse projeto?
ou externo), que não sabia exatamente o que queria! (Esse
assunto geraria facilmente um novo artigo, mas convido-os a Tive uma experiência no passado, quando estava gerenciando
visitar a lista agile-brasil, onde o tema já foi bastante debatido).
um pequeno projeto que – para a diretoria – não estava
Enfim, a temporada de caça está aberta, e a pergunta continua gerando os resultados esperados. Quando menciono para a
sendo a mesma: de quem é a culpa? diretoria, é porque para nós – gerente, analistas e
programadores – estava tudo
“Um equipe de alto desempenho é aparentemente “nos trilhos”. Mas
Ritual de fim de projeto
aquela que possui um objetivo bem me frustou ouvir de meu diretor
que não, que os resultados que
A resposta para essa pergunta definido e compartilhado por todos os eles precisavam não eram apenas
pode ser obtida facilmente membros...” cronograma afinado e resultados
seguindo o seguinte ritual: aparentes. Fui encorajado por ele
a fazer um “acompanhamento” junto à nossa equipe para
1.Convoque todos (exatamente todos) os envolvidos no projeto realizar a seguinte pergunta a todos: “Qual sua missão nesse
para uma reunião. projeto?”. Enquanto eu realizava esse trabalho pude perceber
onde estava o problema e, ao finalizar, cheguei à mesa do
2.Quando todos estiverem presentes, solicite que se levantem diretor e disse: “Você estava certo, temos que mudar algo em
e, após o uuumm...doooiss..trêêêss, repitam: A CULPA É nosso time”. O algo a mudar não eram pessoas, ferramentas,
NOSSA! Pronto, a pergunta está respondida. métricas ou metodologias, mas sim a forma com a qual a
“equipe” enxergava o projeto. No acompanhamento,
Onde está a equipe? programadores responderam que sua missão no projeto era
“programar”, analistas “analisar e modelar” e por ai vai.
A resposta obtida no “ritual” que citei, dificilmente será aceita Ninguém mencionou palavras relacionadas ao sucesso do
pela maioria dos participantes da reunião, afinal, se eles não projeto, a resultados, ao objetivo maior, ao algo que se busca –
foram uma equipe durante o projeto inteiro, não é agora – hora aí sim – programando, modelando, gerenciando, etc. Portanto,
de encontrar culpados – que se tornarão uma. Mas será que se o projeto estava fadado ao fracasso.
tivéssemos uma verdadeira equipe o resultado final seria
diferente? Com certeza! Gerentes de projetos tem começado a Como formar equipes de alto desempenho?
perceber repetidamente algo em comum em projetos bem Uma série de fatores influenciam no sucesso ou fracasso
sucedidos: equipes de verdade, e – consequentemente - de dessas equipes, infelizmente não há uma receita, e é bom que
alto desempenho. Mas o que é uma equipe de alto tenhamos em mente que nem sempre isso será possível.
desempenho? Segue algumas atitudes que podem ajudar na formação
dessas equipes:
- Valorize a criação.
- Aceite falhas.
- Encoraje a ousadia.
Anuncie
- Encoraje os conflitos construtivos.
aqui.
Alexandre Magno Figueiredo Este espaço está esperando
por sua marca.
! "
# $
%& %
'&( "&$ & )
! *%
Informações em:
www.visaoagil.com
Uma das principais práticas do Scrum é a reunião diária (Daily Em compensação, é bem mais comum você ter toda a equipe
Meeting). Essas reuniões se resumem em uma atividade de presente, e isso é bom! Então, na minha opinião, analise o
quinze minutos(pode ser um pouco mais ou menos, mas só um cenário cultural envolvido(empresa, projeto e equipe) e escolha
pouco) que deve ser realizada todos os dias. Durante estas uma das duas opções.
reuniões os membros do time do projeto devem responder às
seguintes perguntas:
Reunião diária não é "conversa sobre futebol"
- O que fiz desde a última reunião diária?
Se você pretende abrir as reuniões diárias para participação de
- O que farei até a próxima? pessoas apenas envolvidas com o projeto(chickens), deixe
bem claro ao fazer o convite que o mesmo dá apenas direito a
- Estou tendo algum impedimento? participação como "ouvinte". Apenas as pessoas que estejam
realmente comprometidas com o projeto(pigs) devem falar
Quando realizo apresentações de Scrum, é comum perceber o durante a reunião diária. Deixar "chickens" falarem durante a
quão simples esta atividade parece reunião é permitir que pessoas
ser para a maioria das pessoas, “Muitas equipes tem confundido os que não estão tendo um
porém, por traz de uma simples acompanhamento dia-a-dia do
"reuniãozinha", a reunião diária quinze minutos da reunião diária com projeto opinem sobre o seu
esconde o termômetro do seu momentos de desabafo...” andamento. Isto provavelmente
projeto...e não é preciso dizer o que causará um mal-estar entre
pode acontecer quando um termômetro é mal utilizado, certo? "pigs" e “chickens” e, pior ainda, fará com que os quinze
minutos acabem antes que você perceba.
Anuncie
experimente durante um dia não estar presente na empresa no
horário da reunião – não avisando nada antecipadamente. Se
ao retornar eles lhe informarem que não realizaram a reunião,
afinal você não estava presente...você tem problemas! Eles
aqui.
realmente ainda não entenderam que a reunião diária é feita
para eles.
- Identificam impedimentos;
por sua marca.
- Integram diariamente o time;
Cinco razões, contra as quais seus projetos lutam, foram Qualquer quantidade de tempo não trabalhado numa tarefa
identificadas: significa que a tarefa está sendo atrasada mais do que
seria se você se dedicasse ao seu término. Assim, a multi-
1. Multi-tarefa nociva tarefa sempre faz com que uma tarefa demore mais do que
2. Síndrome do Estudante deveria. Entre outros fatores que se somam está o tempo de
3. Lei de Parkinson raciocínio que leva para “entrar no trilho” para tornar-se criativo.
4. Dependência entre tarefas Para tarefas como engenharia, programação e redação esse
5. Matemática do gerenciamento de projetos, onde 2+2=5 tempo pode ser uma parte significativa do tempo total da tarefa
quando se faz multi-tarefa. Para o trabalho manual isto pode
Você deve se preocupar com essas cinco causas porque incluir o tempo de ajuste da máquina, preparação das
elas atrasam os benefícios e resultados do projeto para ferramentas e equipamentos apropriados e colocá-los de volta
sua empresa e seus clientes. Essas causas também atrasam em seus lugares. Existem algumas tarefas onde o tempo de
o fluxo de caixa de um projeto finalizado e permitem que sua ajuste é desprezível e não é um fator, mas essas são poucas
equipe e seu cliente encontrem uma janela de oportunidade no mundo do trabalho intelectual. Estimativas indicam que o
maior para fazer mudanças que ameacem o próprio projeto. ajuste, ou tempo de raciocínio, pode igualar ou mesmo exceder
Imagine a redução de pedidos de alteração se seu projeto o tempo real da tarefa, para tarefas altamente cognitivas. Um
exemplo inclui escrever este artigo. Quando eu me distancio
dele para fazer outra coisa qualquer e depois volto, preciso ler Nem toda multi-tarefa é nociva. Como saber a diferença?
o segmento inteiro de novo para descobrir onde eu estava e o Lembre-se, multi-tarefa nociva é quando uma tarefa está sendo
que estava pensando quando parei. Isto toma um tempo extra, atrasada e a pessoa a quem você deve o resultado está
que poderia ser devotado a mais escrita. esperando você terminar. Na verdade, a multi-tarefa nociva
pode atrasar o término de todo o projeto. Porém, se ninguém
Pense como a multi-tarefa afetaria você numa fila de caixas estiver esperando pelo resultado então não é multi-tarefa
da mercearia. Imagine que, em vez de atender uma pessoa nociva. Pode não ser eficiente, mas pode não significar muito.
por vez, o processo de pagamento no caixa incluísse a Por exemplo, lhe pedem para encher 100 envelopes e colocá-
varredura de um produto de cada pessoa na fila, e então fosse los no correio para amanhã. Já que o correio passa apenas
repetido. Se há apenas uma pessoa na fila, o tempo necessário uma vez ao dia e já é muito tarde para colocá-los hoje, não
para o pagamento seria apenas o tempo necessário para varrer importa se você dobrar todos os papéis primeiro e depois
seus produtos, pegar seu dinheiro e empacotar suas envelopá-los (multi-tarefa), ou dobrar um papel e envelopá-lo e
mercadorias. Entretanto, se após você chegar na fila e um ou depois prosseguir para o próximo (sem multi-tarefa).
mais de seus itens tivessem sido registrados, outra pessoa Entretanto, se o carteiro estiver chegando a qualquer minuto e
entra na fila e, em vez de completar seu pedido, o caixa pegar você tem um item crítico para enviar, seria insensato fazer
um item desta outra pessoa, registrá-lo, e depois pegar um de multi-tarefa simplesmente para ser eficiente. Nesse caso a
seus itens, registrá-lo, e repetir. Agora demorará duas vezes tarefa requer dobrar, envelopar, selar e enviar o lote, sem
mais para você completar sua compra. Enquanto o caixa está interrupção.
registrando seus itens e, simultaneamente, o da pessoa atrás
de você, outra pessoa entra na fila. Agora o caixa pega um Algumas funções são guiadas por multi-tarefa. Nem toda
item seu, depois um da próxima pessoa, e depois um da nova função deveria eliminar a multi-tarefa. Por exemplo, uma
pessoa, e repete. O que acontece quando outra pessoa entra secretária, um chefe de cozinha e muitas outras funções
na fila? Como você pode ver, quanto mais pessoas entrarem exigem a movimentação de muitas partes. Isto é multi-tarefa
na fila, mais demorará para você completar sua transação. nociva? Não necessariamente. Devido à natureza muito curta
Você compraria nesta loja mais de uma vez? Não. Então, por da tarefa, e de tempos de espera embutidos na própria tarefa,
que você faz isso com sua equipe e com seus clientes? A o atraso é usualmente tolerável. Você pode precisar responder
forma mais rápida de completar uma transação é começá-la e várias chamadas telefônicas e colocar pessoas na espera. Este
fazê-la até terminá-la. Você pode, então, concentrar-se na atraso não é geralmente um problema até que se torne
tarefa e no cliente. É mais rápido e fornece o melhor serviço ao excessivo. Eventualmente o cliente determina um limite na
cliente. Ninguém reclama, a menos que a fila fique muito quantidade de tempo que você pode permitir nos atrasos por
grande. Quando comutamos de tarefas, o risco de problemas multi-tarefa, antes que ele desligue e faça negócio em outro
com a qualidade também aumenta. Nos esquecemos do que lugar. Todos nós gostaríamos que nossas chamadas fossem
foi feito e do que não foi feito. Nós corremos para retornarmos respondidas imediatamente, nosso problema fosse abordado
a outra tarefa. Passamos por cima de pequenos detalhes em sem ficar esperando, e então concluiríamos nossa chamada.
nosso ajuste. A pressão de clientes irados adicionam estresse Porém, devido à curta duração da transação, nós estamos
ao trabalho, nos tornando menos satisfeitos e sujeitos a dispostos a aceitar uma certa quantidade de demora.
negligenciar um bom serviço. O envolvimento da gerência
aumenta, para lidar com clientes “importantes” ou altamente A simulação de tarefas demonstra os efeitos da multi-
impacientes, e a aceleração (despacho) começa a tornar-se tarefa nociva. Em simulações de projetos reais (usando a
uma forma de lidar com eles. Quanto mais e mais clientes simulação com três projetos, de Tony Rizzo) realizadas em
começam a exigir um serviço mais rápido, a gerência começa a meus seminários, os estudantes realizam três projetos com
focar em métodos complicados de priorização para satisfazer a multi-tarefa. Os efeitos criados durante este exercício são caos,
todos e manter os empregados focados em “fazer a coisa confusão, montes de ordens e muitas atividades adicionais de
certa”. “gerenciamento”. É bastante estressante. Quando eles
terminam eu os desafio a fazer duas vezes mais projetos, seis
A multi-tarefa nociva força as pessoas a dar estimativas no total, em menos tempo do que os três originais. Eles nunca
maiores do que o necessário para as tarefas. Se você sabe acreditam que isto é possível. Eles também não querem
que não lhe será permitido iniciar uma tarefa, trabalhar nela até enfrentar mais esse tanto de estresse. Entretanto, uma vez que
terminar e depois prosseguir para a próxima tarefa, você será removemos a multi-tarefa nociva, eles sempre fazem duas
forçado a dar uma estimativa muito maior sobre quanto tempo vezes mais projetos em menos tempo e sem o caos, sem
levará para completar a tarefa. Se você sabe que levará dois gritaria, e muito menos estresse. A única diferença entre os
dias para completar uma tarefa, mas também sabe que será dois eventos é a multi-tarefa nociva. Quando sua equipe está
interrompido, incluirá o tempo de interrupção na estimativa. fazendo multi-tarefa isso exige uma sobrecarga considerável
Agora, uma tarefa de dois dias é estimada em 10 dias. Seu de gerenciamento. Alguém precisa manter o registro do que
cliente esperará dez dias? Você decide. Seu cliente ficaria mais está sendo trabalhado, o status, o tempo previsto de término, e
motivado a fazer negócio com você se você prometesse dois atualizar o cliente repetidamente. Cada pedaço dessa
dias em vez de dez? Imagine a vantagem competitiva da sobrecarga pode ser eliminada. Se sua experiência é parecida
promessa de menor duração. Imagine o melhor ambiente de com isso, você tem muito a ganhar removendo esse obstáculo.
trabalho criado para os membros da sua equipe quando você Se você deseja conseguir fazer duas vezes mais, no mesmo
elimina os métodos complicados de priorização, a constante período de tempo, e reduzindo o estresse, pare com a multi-
aceleração (despacho), os clientes zangados e a constante tarefa. A figura abaixo fornece um exemplo gráfico dos
vigilância da gerência. resultados da multi-tarefa versus a não multi-tarefa.
www.heptagon.com.br
www.tc4digital.com
www.improveit.com.br