Coding Dojo Floripa

Desenvolvimento Ágil

Archive for Janeiro, 2007

Qual a sequência de passos para fazer um software?

Posted by Ivan Sanchez em Segunda-feira, Janeiro 29, 2007

Se você está acostumado com a sequência:

  1. Identifica a funcionalidade
  2. Analisa
  3. Programa
  4. Testa
  5. Entrega

Está na hora de aprender uma maneira diferente:

  1. Identifica a funcionalidade
  2. Testa (ou melhor: especifica a funcionalidade através de testes)
  3. Programa (ou melhor: faz o teste passar)
  4. Refatora (ou melhor: deixa a solução mais elegante)
  5. Volta ao passo 2 quantas vezes for preciso!
  6. Entrega

Essa é maneira XP de fazer as coisas. Maneira muito bem descrita pelo Thiago Arrais no seu post Andando de Costas, se referindo ao fato de como essa nova sequência pode parecer “invertida” para quem ainda não está acostumado. Recomendo a leitura 😉

Posted in Agile, eXtreme Programming, Programming, TDD | Leave a Comment »

Google Testing Blog

Posted by Ivan Sanchez em Sexta-feira, Janeiro 26, 2007

Tudo começou com uma série de desafios sobre testes distribuídos nos banheiros da Google. E o que era uma brincadeira agora está ficando mais sério com o Google Testing Blog, onde estes desafios serão publicados e o público em geral terá oportunidade de interagir com os desenvolvedores da Google.

Vale a pena conferir. O primeiro desafio já foi publicado.

Fonte: Google Underground Blog

Posted in Programming | Leave a Comment »

Scrum em ação

Posted by Ivan Sanchez em Quarta-feira, Janeiro 17, 2007

A High Moon Studios, produtora do jogo Dark Watch fez um vídeo onde eles descrevem (com muito bom humor) um pouco do que é Scrum para eles. Vale a pena conferir:

Ah! Se você quiser ver mais vídeos sobre o dia-a-dia da empresa, pode encontrá-los aqui.

Posted in Agile, Scrum | Leave a Comment »

Aprendendo a ler e a ouvir

Posted by Ivan Sanchez em Terça-feira, Janeiro 16, 2007

Esther Derby publicou um post interessante sobre como as pessoas se preocupam mais em como falar/escrever do que como ouvir/ler. E é engraçado como realmente é isso que acontece no dia-a-dia. O post cita 8 Barreiras encontradas na hora de ouvir outra pessoa efetivamente. Aqui estão algumas destas barreiras que considero muito importantes:

  • Conhecer a resposta: quando se pensa saber o que a outra pessoa quer dizer antes dela terminar de falar;
  • Tentar ser prestativo: quando se interrompe a outra pessoa tentando ajudá-la, mas na verdade não ouve tudo o que ela tem a dizer;
  • Competir: quando a maior preocupação é buscar fraquezas nos argumentos da outra pessoa, pensando em levar alguma vantagem sobre ela;
  • Influenciar e Impressionar: quando a preocupação maior não é ouvir, mas sim fazer valer seu ponto de vista;
  • Contextualizar: quando se ouve o que a outra pessoa tem a dizer mas não encaixa isso no contexto devido;
  • Julgar: quando se deixa de ouvir o que a outra pessoa tem a dizer, baseando-se em argumentos Ad Hominem;
  • Interromper e distrair: quando não se ouve a outra pessoa por causa de motivos externos;

É muito comum colocarmos alguma destas barreiras quando estamos ouvindo alguém. O lado bom é que normalmente só depende do próprio ouvinte removê-las.

E você, tem algum outro obstáculo para adicionar nesta lista? Sou todo ouvidos 🙂

Posted in Agile | Leave a Comment »

Mais detalhes sobre o Treinamento Certified Scrum Master Brasil

Posted by Ivan Sanchez em Domingo, Janeiro 14, 2007

Pra quem ficou interessado no assunto, o José Papo fez uma descrição detalhada sobre o que rolou nos 2 dias do evento. Vale a pena conferir 🙂

Posted in Agile, Scrum | Leave a Comment »

Reuniões diárias

Posted by Ivan Sanchez em Domingo, Janeiro 14, 2007

Pra quem ainda não conhece a técnica (Daily Scrum Meeting ou Stand-up Meeting no caso de eXtreme Programming), a idéia de se ter reuniões diárias durante o desenvolvimento do software é para que cada membro da equipe responda:

  • O que eu fiz ontem;
  • O que eu pretendo fazer hoje;
  • Quais são os impedimentos que estou enfrentando.

O objetivo da reunião é deixar todos a par do progresso do projeto e permitir que o coach (ou Scrum Master) possa trabalhar para remover possíveis obstáculos que a equipe esteja enfrentando. É uma prática que deve consumir no máximo 15 minutos, e ajuda a testar o foco e a disciplina da equipe diariamente.

Embora simples, esta é uma das técnicas que costuma enfrentar resistência das equipes, talvez porque necessita de um compromentimento com a pontualidade e a disposição de expor seu trabalho e suas dificuldades para o grupo, o que pode ser muito difícil para algumas pessoas.

Para se conhecer um pouco mais da técnica, e principalmente estas dificuldades, segue um vídeo encenado por Scrum Masters mostrando um pouco do que seria uma reunião diária problemática. Este vídeo conta com a participação do Boris Gloger, treinador da primeira equipe de Scrum Masters do Brasil, atuando como um membro que mais atrapalha do que ajuda no andamento da reunião:

Posted in Agile, eXtreme Programming, Scrum | 1 Comment »

Jogos em Java usando apenas 4kB

Posted by Ivan Sanchez em Sexta-feira, Janeiro 12, 2007

Faça um jogo completo em Java, utilizando apenas 4096 bytes. Este é o desafio que a Java Unlimited lança pelo terceiro ano consecutivo. Curioso sobre que tipo de jogo aparece no torneio, peguei 2 deles para ver:

Miners4k (instalar / código-fonte)

Um jogo parecido com o antigo Lemmings, nesta versão o objetivo é cavar e buscar o ouro para construir uma saída.

Goop (instalar)

Neste jogo você é uma bolha, e sua única opção é rotacionar o cenário para se mover. Seu objetivo é alcançar seus filhos para poder passar de nível. Me lembrou um jogo de PSP que eu queria ver ao vivo, o LocoRoco.

Fiquei impressionado com o que é possível criar com toda essa limitação. Ambos os jogos são divertidos ao ponto que poderiam substituir à altura muitos jogos de celulares disponíveis hoje em dia. Fico imaginando o que os autores poderiam criar sem a limitação de bytes (e de orçamento).

No site do torneio estão além das régras, links para fóruns de discussão que podem ajudar no desenvolvimento de jogos. Se você ficou interessado no desafio ainda dá tempo de fazer o seu, já que o prazo de entrega é dia 1 de Março.

Posted in Programming | Leave a Comment »

Por que é tão bom trabalhar na Google?

Posted by Ivan Sanchez em Quinta-feira, Janeiro 11, 2007

Nada para se espantar: a empresa Google foi eleita a melhor empresa para se trabalhar, de acordo com a Fortune. A escolha foi feita levando-se em consideração a opinião dos funcionários (2/3 da pontuação) e uma avaliação externa (1/3) sobre os benefícios, pagamentos e políticas internas, entre outros itens.

Uma empresa que oferece, sem custos aos seus funcionários, regalias como restaurante de alto nível, academia, salão de beleza, lava-car, massagem, médico, piscina, quadra, salão de jogos e sofás tem mesmo que ser premiada.

Segue uma reportagem mostrando um pouco de tudo isso. Pena que não puseram informação sobre os salários pagos e o dia-a-dia dos projetos…

 

Posted in Geral | Leave a Comment »

Verão Ágil no IME/USP

Posted by Ivan Sanchez em Quinta-feira, Janeiro 11, 2007

Se você mora ou pode ir até São Paulo, vale a pena conferir:

Não perca esta oportunidade única de tomar contato com os métodos ágeis de desenvolvimento de software em dois cursos de verão ministrados pela AgilCoop. Os cursos são voltados tanto para desenvolvedores e gerentes de projetos de software que ainda não conhecem métodos ágeis quanto para profissionais que já conhecem os conceitos fundamentais mas que gostariam de se aprofundar no assunto.

São dois cursos:

  • Introdução a Métodos Ágeis de Desenvolvimento de Software (R$250)
  • Laboratório de Programação eXtrema (R$400)

Ambos tem carga horário de 20 horas e são ministrados pelo próprio pessoal da AgilCoop. Só é preciso correr porque quase todas as vagas foram preenchidas…

Posted in Agile, Programming | Leave a Comment »

Construindo equipes auto-gerenciáveis

Posted by Ivan Sanchez em Quinta-feira, Janeiro 11, 2007

Criar equipes capazes de gerenciar o próprio trabalho é tarefa complicada nos dias de hoje, onde funcionários são tratados como “recurso” e papéis gerenciais são frequentemente confundidos com papéis de controle do trabalho alheio.

Pensando nisso listei os 4 valores que, na minha opinião são fundamentais para mudar este quadro. São eles:

1. Visão comum

A primeira tarefa para se obter equipes auto-gerenciáveis é compartilhar os objetivos. Para isso, é preciso de objetivos SMART (Specific, Measurable, Achiveable, Realistic, Timed), e estes objetivos têm que fazer sentido para todos os envolvidos.

2. Comprometimento

Uma vez que os objetivos são comuns, é possível obter um comprometimento da equipe. Isto significa que a partir daí todos estarão trabalhando para chegar ao objetivo, aumentando a consciência das atitudes que são benéficas ou prejudiciais durante o projeto.

3. Confiança

Todos da equipe precisam ter consciência da capacidade e do comprometimento dos seus membros. Com a confiança mútua cria-se um vínculo que diminui a necessidade de controle do trabalho que cada um está fazendo.

4. Apoio

Uma equipe auto-gerenciável precisa de uma “interface” com o resto da organização. Uma ou mais pessoas que possam ajudar quando a solução de um problema depender de fatores externos. Estas pessoas precisam fazer parte da equipe, no sentido de compartilhar a visão, ser comprometida e ter uma confiança recíproca com os outros da equipe.

Em resumo, estes são princípios simples e que são esquecidos por muitos gerentes. Para compensar a falta deles normalmente é preciso aumentar o controle e a cobrança, o que além de desperdiçar um tempo precioso aumenta pode aumentar o estress da equipe consideravelmente.

Posted in Agile | 5 Comments »