Coding Dojo

Sexta-feira, 9 de outubro de 2009 por Daniel Cukier

O Coding Dojo é uma prática muito interessante e divertida. O principal objetivo é praticar, aprender e ensinar técnicas de desenvolvimento de software.

Há algum tempo realizamos sessões internas de Dojo na Locaweb. Decidimos agora criar uma sessão aberta a qualquer desenvolvedor. Segue abaixo um vídeo explicando os principais conceitos do Coding Dojo.

Mantemos um projeto no github. Lá você poderá baixar os códigos e verificar o calendário das sessões. Para participar, basta enviar o nome completo para daniel.cukier  arroba locaweb.com.br ou adolfo.sousa arroba locaweb.com.br dizendo a data que você gostaria de participar.

Vídeo divertido sobre o mundo ágil

Domingo, 20 de setembro de 2009 por Joca

O pessoal da ThoughtWorks fez um vídeo divertido sobre o mundo ágil, fazendo uma versão da canção “My Favourite Things” (via @paulocaroli):


Eventos Ágeis no 2o. semestre

Terça-feira, 8 de setembro de 2009 por Daniel Cukier

O segundo semestre está repleto de eventos ágeis, todos com excelente qualidade, inclusive com participação de grandes personalidades internacionais.

1834

Dias 10 e 11 de Outubro teremos o Encontro Ágil, organizado pela Agilcoop. O evento teve sua primeira edição ano passado. Este ano serão dois dias de evento, durante os quais irão se reunir vários dos principais nomes da Comunidade Ágil brasileira, além das presenças de Alistair Cockburn (um dos autores do Manifesto Ágil) e Jutta Eckstein.

Logo na sequencia, dias 13 e 14 de outubro, teremos o Rails Summit, promovido pela Locaweb. A última edição reuniu mais de 550 participantes e neste ano espera um público ainda maior. Serão dois dias inteiros de palestras informativas e você terá a oportunidade de encontrar com grandes profissionais de todo o mundo, como Chad Fowler, Obie Fernandez, David Chelimksy, Fabio Kung, Fabia Akita, entre tantos outros. 120x240

Outro evento  de grande importância será a Agiles, 2a. Conferência Latino Americana sobre Metodologias Ágeis, com a presença de Brian Marick, outro autor no Manifesto Ágil, e outras personalidades, como  Matt GelbwaksNaresh JainDave NicoletteJoshua KerievskyDavid Hussman e Alexandre Magno.

screen-shot-2009-09-08-at-121303

Com certeza vamos nos encontrar nesses eventos e trocar experiências, tanto em matéria de metodologias quanto em técnicas de desenvolvimento de software. Nos vemos lá!

Fixe o tempo e os custos e reduza o escopo

Segunda-feira, 22 de junho de 2009 por Joca

Recentemente Dov Bigio, Gerente de Produtos de Telecom da Locaweb, postou em seu blog sobre “O triângulo dos projetos“, que explica que dadas as variáveis de um projeto (qualidade, custo e prazo) pode-se fixar no máximo duas delas, e a terceira irá variar. Ou seja, se fixarmos prazo e custo, a qualidade poderá ser menor do que a esperada. Ou se fixarmos a qualidade e o custo, o prazo poderá ser maior que o esperado. Nunca conseguiremos fixar as três variáveis de um projeto.

O pessoal da 37signals prefere manter a qualidade sempre fixa (num patamar alto) e substituiu a qualidade pelo escopo no triângulo dos projetos. Eles também recomendam que devemos sempre fixar prazo e custo de um projeto e sempre flexibilizar o escopo.

Vou explicar como isso faz sentido usando como exemplo um projeto recente que tivemos aqui na Locaweb, o projeto de reescrever o site.


locaweb-antes

site da Locaweb antes do projeto de reescrever o site

Em novembro de 2008 decidimos que já havia passado da hora de termos um novo site que estivesse mais em linha com tudo o que temos estudado sobre experiência do usuário, design centrado no usuário, arquitetura da informação, design de interação e conceitos de web 2.0 com maior participação do visitante do site. Decidimos também o prazo, na primeira quinzena de março de 2009 esse site deveria estar no ar. E o custo também estava fechado: não íamos contratar ou pegar empresatado de outra equipe ninguém a mais para tocar esse projeto.

Tomada a decisão, começamos a desenhar o escopo do projeto. Dentre os vários requisitos do projeto tivemos:

  • navegação simples e intuitiva
  • manter o código bem enxuto
  • aplicar SEO em todo o site
  • minimizar o uso de flash
  • design visual leve, para dar importância à informação contida nas páginas
  • rever a arquitetura de informação de todo o site, revendo todo o conteúdo

Fizemos o planejamento para 6 sprints de duas semanas cada. Numa determinada altura percebemos que não ia dar para fazer tudo para lançar na primeira quinzena de março. Ficamos então pensando se íamos aumentar o prazo ou se podíamos cortar algo do escopo desse projeto.

A entrega de uma projeto é muito importante, tanto para a equipe que trabalhou no projeto, que fica com a sensação de “dever cumprido”, quanto para o cliente do projeto, que irá usufruir dos benefícios de ter o projeto pronto. Com isso em mente, decidmos diminuir o escopo, descobrir alguma coisa que pudéssemos cortar do projeto a fim de entregá-lo no prazo. Dentre as opções de redução de escopo, escolhemos não rever a arquitetura de informação de todo o site, mas apenas das áreas mais importantes.

Com isso conseguimos entregar a tempo e os visitantes do site - principal “cliente” desse projeto - puderam usufruir de seu novo layout e de sua nova organização.

locaweb-depois

site da Locaweb depois do projeto de reescrever o site

De uma certa forma, redução de escopo e redução de qualidade são parecidos, mas têm uma diferença fundamental. Podemos reduzir qualidade de duas formas:

  • fazer tudo o que foi planejado, só que fazer mal feito, ou;
  • fazer menos do que foi planejado, só que bem feito.

Já quando falamos em redução de escopo, não damos margem para interpretação: é sempre fazer menos do que foi planejado, mantendo o trabalho bem feito. E muitas vezes quando fazemos e entregamos menos, percebemos que o menos que entregamos já é suficiente e que o produto final de nosso projeto ficou melhor com menos do que o que foi originalmente planejado.

Então da próxima vez que você pensar em reduzir a qualidade de seu projeto para poder entregá-lo no prazo e dentro do orçamento, pense se não seria melhor reduzir o escopo. Você e seu cliente poderão sair ganhando com a redução de escopo!

O papel da gerência em times ágeis

Quarta-feira, 10 de junho de 2009 por Joca

Há quase um ano atrás eu comentei sobre a mudança do papel do gerente em um time que resolveu adotar metodologias ágeis. Na London QCon 2009 foi apresentada a palestra Managers in Scrum de Roman Pichler, um consultor inglês especializado em gestão ágil de produtos.

A apresentação completa pode ser vista em:

http://www.infoq.com/presentations/managers-in-scrum

Quem quiser ver só os slides, pode baixá-los aqui.

Vou destacar 4 slides que resumem a apresentação. Primeiro um slide que mostra como funciona a gerência tradicional:

Em seguida um slide que ilustra como deve ser a gerência em um ambiente ágil:

Uma comparação entre o processo de padronização antes e depois do uso de metodologias ágeis e o papel do gerente nesse processo:

E, por último, um resumo:

Vale conferir essa apresentação.

Vídeo - Usando padrões para apresentar métodos ágeis

Terça-feira, 26 de maio de 2009 por Daniel Cukier

Há algum tempo fiz um post sobre Padrões para Introduzir Novas Ideias. Recentemente montei um vídeo que mostra como esse padrões poderia ser aplicados de verdade para convencer as pessoas a adotarem métodos ágeis. Divirtam-se!

Metodologias ágeis são processos, agilidade é cultura

Sábado, 25 de abril de 2009 por Joca

Recentemente li dois posts sobre a questão da cultura ágil e como alguns times usam apenas os processos embutidos nas metodologias ágeis sem absorver a cultura da agilidade:

Pesquisando na Wikipedia, encontrei as definições abaixo:

  • Cultura é um padrão integrado de conhecimento, crença ou comportamento humano que depende da capacidade de pensamento simbólico e de aprendizado social de um determinado grupo de pessoas. É também um conjunto de atitudes, valores, objetivos e práticas compartilhadas que caracterizam esse grupo de pessoas.
  • Processo é um cojunto de tarefas e atividades relacionadas que produzem um determinado produto ou serviço para um ou mais clientes de uma empresa. Pode ser visualizado com um fluxograma.

Ou seja, o processo é o “como” enquanto a cultura é o “porquê”.

Sem dúvida o que mais importa é a cultura, já que sem o “porquê” é muito mais difícil seguir e manter o respectivo “como”.

As metodologias ágeis, ou seja, os processos de desenvolvimento de software que as metodologias ágeis definem, são consequência da cultura ágil.

A cultura ágil consegue existir sem as metodologias ágeis. Se falarmos apenas no manifesto ágil e em seus princípios para alguém que nunca ouviu falar nas metodologias ágeis, é muito provável que essa pessoa acabe criando os processos necessários para viabilizar a cultura ágil.

picture-23

Por outro lado, dado o processo ágil, por exemplo o Scrum, é difícil entender o “porquê” esse processo deve ser seguido. Dá até para perceber que esse processo melhora o dia-a-dia do desenvolvimento de software, mas sem saber o “porquê” de o seguir, as chances de que o processo se mantenha ou, mais importante, de que o processo melhore, são bem baixas.

scrumlargelabelled

Daí a importância de entender a cultura ágil antes de implementar as metodologias ágeis.

Só que mudar cultura é tarefa de longo prazo, gradual e de difícil mensuração. E como toda tarefa de longo prazo, gradual e de difícil mensuração, é pouco atraente. As pessoas querem os resultados da mudança de cultura, mas não querem gastar o que é necessário para se chegar ao resultado. Daí a busca por receitas de bolo.

Implementar metodologias e mudar processos são tarefas de curto prazo, de impacto e de fácil mensuração (gráficos, pontos, etc.). Daí a preferência natural que temos pelas metodologias, pelas “receitas de bolo”.

É fundamental orientar a implementação das metodologias e as mudanças de processo para garantir que elas não se transformem em atos mecânicos e para que sejam gradualmente absorvidos como cultura da organização.

E orientar a implementação das metodologias e as mudanças de processo não é conhecer muito sobre o tema e fornecer respostas para perguntas do tipo “o que eu faço com os pontos dessa história que não acabamos nesse sprint?” ou “devo pontuar as histórias com pontos ou com horas?” ou “será que devo usar kanbam, lean, XP, Scrum, …?” ou …

A orientação que deve ser dada está em ensinar a “pensar ágil”. As metodologias ágeis são um auxílio para nos ajudar a pensar ágil mas muitas vezes, ao invés de nos ajudar a pensar ágil, nos faz não pensar. :-/

Só se muda uma cultura pensando, discutindo, argumentando, ouvindo, experimentando.

Seguir “receitas de bolo” sem pensar, discutir, argumentar, ouvir e escutar é receita certa para uma implementação mecanizada das metodologias e consquente fracasso.

Como dito no Outliers e em um artigo bem bacana de Scientific American, para ser um especialista em algo, devemos praticar de forma consciente, ou seja, sempre questionando e entendendo o que estamos praticando e nunca executar a “prática cega”.

Por isso, em sua próxima reunião de revisão e planejamento de sprint, ou mesmo na sua reunião diária, lembre-se que antes da metodologia ágil deve vir a cultura ágil. Releia junto com o seu time o manifesto ágil e seus princípios e discutam:

  • por que esses princípios são importantes para nosso time?
  • o que tem sido feito para seguir esses princípios?
  • onde não seguimos esses princípios e por que?

Agilidade é cultura, as metodologias ágeis são os processos que ajudam a sedimentar essa cultura.

Aprendendo a ser ágil

Sexta-feira, 17 de abril de 2009 por luciano.coelho

Desenvolvimento ágil com Scrum e XP

Aconteceu entre os dias 06 e 09 de abril a Semana da Tecnologia da FATEC de Jundiaí, onde estou cursando Informática para Gestão de Negócios. No dia 09/04, a convite do Prof. Demerval (Teoria da Administração) , fiz uma apresentação sobre desenvolvimento ágil com Scrum e XP num dos mini cursos que faziam parte do evento.

A participação dos alunos foi muito legal e, o melhor de tudo, acredito ter conseguido despertar no pessoal o interesse pelo desenvolvimento ágil.

No mesmo dia, o Fernando, fez a apresentação com o tema “Introdução a TDD“. Na terça, 07/04, o Reinaldo, nosso gerente na área de comércio eletrônico da Locaweb, mostrou como é fácil criar uma loja ou um site de sucesso utilizando boas ferramentas disponíveis no mercado, com destaque para a Loja Pronta e o Pagamento Certo, com o tema “Não reinvente a roda, pegue uma pronta”.

Estamos procurando fazer nossa parte para disseminar o conhecimento e tentar tornar o mundo do desenvolvimento de software um lugar melhor ;)

Os slides da apresentação de Desenvolvimento ágil com Scrum e XP para ver ou baixar:

Kanban vs Scrum

Quinta-feira, 9 de abril de 2009 por Elson Barbosa

Henrik Kniberg, autor do essencial Scrum and XP from the Trenches, publicou um excelente artigo comparando Kanban vs Scrum. O link para o artigo completo (26 páginas em PDF) é esse: http://www.crisp.se/henrik.kniberg/Kanban-vs-Scrum.pdf

Ao final do artigo Kniberg faz um resumo das semelhanças e diferenças entre as duas metodologias. Algumas das principais diferenças que identificamos na nossa experiência de Kanban na Locaweb são:

Scrum Kanban
Timeboxed iterations prescribed Iterations optional. Can have separate cadences for planning, release, and process improvement. Can be event-driven instead of iterative.
Team commits to a specific amount of work for this iteration. Commitment optional.
Burndown chart prescribed No particular type of diagram is prescribed.
WIP limited indirectly (via sprint plan) WIP limited directly (per workflow state)
Cannot add items to ongoing iteration Can add new items whenever capacity is available

O interessante do artigo é observar a sua imparcialidade. Em nenhum momento o autor pende para uma das duas metodologias, dizendo qual delas é a melhor. Na prática, a melhor alternativa ainda é adotar um bom mashup de metodologias - iterações de duas semanas com histórias sendo consumidas via Kanban através de práticas XP :)

Assess Your Agility

Sexta-feira, 3 de abril de 2009 por Elson Barbosa

Algumas semanas atrás a InfoQ publicou um post divulgando uma pesquisa chamada Assess Your Agility, do site ABetterTeam.org. Fizemos essa pesquisa na Locaweb e chegamos a resultados bem interessantes. O resultado inclui algumas dicas de como agir para melhorar os itens com pontuação baixa (ex: Some practices that can help you get there: Ten-Minute Build; ‘Done Done’; Version Control; Pair Programming).

Um detalhe interessante é que fazendo 100 pontos você ganha um “You’re awesome! No further improvement needed“, sendo que a pontuação máxima de cada item é 99 pontos (”improvement possible“). E isso em Agile faz todo o sentido :)

Link para a pesquisa: http://www.abetterteam.org/new