Páginas

Mostrando postagens com marcador Agile. Mostrar todas as postagens
Mostrando postagens com marcador Agile. Mostrar todas as postagens

07 março 2010

Você tem orgulho do seu Código?

No mesmo clima do último post, me esqueci de disponibilizar os slides da minha última palestra no Brasil, feita em Floripa no evento Carvana GuJavaSC 09. Que foi super divertido, com uma demonstração do uso de asterisk+java pelo Ricardo Limonta.

Alguns disseram que este foi um momento completamente pessoal meu (epifânico, catárzico, auto revelador), com a minha visão sobre trabalho, orgulho e melhoria contínua. Mas a intenção principal estava em descrever literalmente o significado de ter (ou não) orgulho do próprio código, e como utilizar a busca pelo aperfeiçoamento profissional para mudar o próprio indivíduo.

Gostaria de apresentar novamente estes slides (talvez um screencast...)



07 junho 2009

Uncle Bob e o dilema do profissionalismo

Acredito que seja um video não apenas para a comunidade Ruby / Rails, mas para a comunidade mundial de desenvolvimento de software...


15 maio 2009

Scrum Gathering Brazil: Impressões

Scrum Gathering Brazil: Impressões

Saudações!!
Antes de continuar com este post, um esclarescimento: Como sou um dos editores da InfoQ Brasil, não publicarei informações sobre as palestras neste blog, já que MUITA informação será disponibilizada no http://www.infoq.com/br no decorrer dos próximos dias. Fique no aguardo!

Agora voltando às impressões pessoais do evento:

Cara, Scrum Gathering talvez esta tenha sido a principal oportunidade de encontrar a maioria dos caras que formam a comunidade Ágil brasileira! E todos num único lugar!
Durante os dois dias de evento, nos revezamos discutindo, criticando e trocando informações importantíssimas sobre Agilidade e o impacto disso no mundo dos negócios. O perfil do evento possibilitou imensamente o contato, tendo sido realizado no Hyatt Hotel, em são paulo.

Gostei muito do que vi, apesar de alguns absurdos (como apresentado já pelo Rodrigo Yoshima), mas saí com a impressão que precisamos nos focar em discussões mais profundas sobre práticas e incluir, que sabe, mais práticas ágeis no evento.

Fotos do evento por Manoel Pimentel: Scrum Gathering Brazil


E pra aproveitar esse povo todo em são paulo, fomos tomar cerveja!!



Foto por @rodrigoy


Tem tanta gente nessa foto que não tenho nem coragem de começar a escrever os nomes, com medo de esquecer de alguém. Mas vou citar uma pessoa importante: O Martim Fowler brasileiro: Felipe Rodrigues! Veja-o ao lado de Manoel Pimentel: O Martim Fowler Brasileiro

Valeu galera!!! Hooters foi o bicho!

Parabéns Alexandre Magno e Edmilson Miyasaki pela organização!
Até a próxima!!


PS: Tire férias em outubro! Ágiles 2009 vem ai!

30 abril 2009

Impressões: Agile Weekend

Senhores!

Bem, o último final de semana estive em Porto Alegre para prestigiar o Agile Weekend, evento promovido pelo Guma-RS, em comemoração de seu quinto aniversário (parabens guma!)

Muita gente apareceu para conferir o evento, inclusive muito mais do que eles imaginavam... o que é um indício de uma demanda extremamente reprimida no sul do brasil por eventos de qualidade e foco em Metodologias Ágeis.

O evento foi muito show!! Imaginem programar um evento para 100 - 150 pessoas, e de repente aparecerem 300 para participar... povo teve que se desdobrar em 5 pra fazer a coisa acontecer... e claro: aconteceu!!

O evento começou com uma apresentação dos organizadores, seguido de uma palestra "motivacional" de Daniel Wildt e Luiz Parzianello, fundadores do Guma. Extremamente divertidos e de improviso eles falaram sobre as origens do Lean e as ramificações que o modelo criou mundo a fora... mostrando que Lean escala e que Desenvolvimento Ágil tem um pai! Detalhe: respondi a uma pergunta e ganhei um livro!! Coisaboua participar de evento em Porto alegre! Já é o segundo que ganho!! Agora vou aprofundar mais meus conhecimentos em Lean... me segura!!

Um show a parte: o coffee break!! Credo! muito bom!!

Bem, pra variar, encontrei o pessoal da Sea Tecnologia (@alegomes, @rwilli e @brunopedroso)... esse povo não deve trabalhar... assim como eles acham que eu não trabalho... somos todos arroz de festa! (e o proximo: Scrum Gathering!)

A próxima palestra foi feita pelo Peleteiro, da Globo.com, falando sobre anti padrões de equipes ágeis. Acredito que tenha sido a palestra com maior intereção com o publico...

Logo depois assisti à apresentação de Fabrízio Mello, falando sobre refactoring em banco de Dados... bem, seguindo as palavras do próprio Fabrízio: Scott Ambler colocou os nomes bonitos na maior parte das funções rotineiras que usamos para desenvolvimento com banco de dados... mas foi bastante produtivo... quer dizer que o que antes era chuncho agora virou Refactoring Pattern!!

No outro dia, conversamos sobre Agile no ensino. O Guma RS está com uma iniciativa muuuuito interessante para levar metodologias ágeis para o ensino, pra evitar que se fale muita porcaria em artigos e teses orientadas por professores que não sabem do que estão falando... gostei!

Ah! O pessoal da SEA apresentou o case de seu trabalho junto à força aérea brasileira, semelhante ao apresentado no último Maré de Agilidade

O Daniel Wildt desabafou todas as suas mágoas numa palestra entitulada "Eu odeio metodos Ágeis"... muito bom!

Pra finalizar, uma mesa redonda com a maior parte dos palestrantes. A discussão girou em torno de contratação de projetos Ágeis... tema já bastante conhecido e abordado, por exemplo, por Jose Papo, inclusive com uma apresentação no último Falando em Agile e que falará sobre o mesmo tema: contratos! )

E foi isso... ótima experiência, voltei completamente renovado para o trabalho...

Parabens aos organizadores!

Bá! Trí legal esse evento!


E pra fechar o dia, claro: Cerveja!!!

24 abril 2009

aula 2: Teste de Software no CTAI

Saudações!!

Bem, estou aqui em casa após mais um dia de aulas no Senai CTAI... realmente cansado...

Desta vez, a intenção foi ser o mais didático possível na utilizaç!ao de documentação de testes. Apesar de concordar com o @gchapiewski , algumas coisas não podemos fugir de documentar... mas pelo menos que sejam agregando valor!

Segue abaixo os slides de mais essa aula.



01 dezembro 2008

TDC 2008: Integração Contínua

Saudações!

Gostaria de disponibilizar a minha apresentação, realizada no TDC 2008 Floripa.




Uma pequena transcrição da palestra:
  1. Vamos falar de Integração contínua e os benefícios da automatização de build
  2. Eu? Eu sou o victor! Um pouco sobre mim...
  3. Agenda da apresentação
  4. Tudo começa com as origens: tradicionalmente, o momento de integração era a realização de um grande passo no projeto - juntar tudo - e obviamente que, na teoria, a vida é sempre bela!
  5. Minha percepção desse modelo, inclusive ensinado nas universidades por essas bandas: O Mais puro conto de fadas! Com direito a vestido esvuaçante, sapatinho de cristal e castelo ao fundo.
  6. Como em todo conto de fadas, acreditamos em uma série de premissas, e a principal delas é: nossos clientes estão dispostos a esperar por resultados apenas no longo prazo. Qualidade nunca é importante o suficiente (afinal, se houver tempo, pode cortar os testes).
  7. Mas a realidade é sombria, e extremamente dura com akelas que entram no mercado de trabalho: riscos sempre são subestimados, retrabalho em um Pattern, atrasos uma constante
  8. Precisamos nos preparar para um mundo novo, onde Clientes não podem e não querem esperar por software. E para isso, precisamos eliminar desde as primeiras fases de um projeto riscos com integração de software. É necessário também estar preparado para realizar mudanças rápidas, e responder às interpéries e baixas do mercado. E por último, e conseguirmos reduzir custos de produção, com certeza estaremos mais preparados.
  9. Se conseguíssemos reunir: Velocidade para atendimento de requisições de um cliente, Qualidade para evitar que decisões de hoje não alterem as decisões de amanha, além de recolher informações para a tomada de decisão, chegaremos a:
  10. Valor de Negócio. Perceptível pelo cliente: respostas rápidas às mudanças, alinhamento com as necessidades do negócio e satisfação
  11. Trocando em miúdos, é necessário criar um Botão Virtual, que nos possibilite entregar, rapidamente, valor ao cliente.
  12. Isto é integração contínua
  13. Representação Grafica do processo
  14. Citando as principais etapas do processo: Construção, Testes, Inspeção e Feedback
  15. Construção: normalmente confundido com o próprio termo de Integração Continua. Representa a automatização da construção do sistema, utilizando normalmente uma ferramenta de script (ant ou maven)... (por causa desse slide, o motivo do primeiro slide - essa a automatização em si - integrando todas as ferramentas citadas nessa apresentação)
  16. Pausa para uma reflexão: Esqueca TODA esta apresentação se você não utiliza controle de versões... não caia nesse erro: CONTROLE DE VERSÕES É PRIMORDIAL!!! Saia da idade da pedra! Páre de guardar HD's antigos ou código fonte zipado
  17. Testes: Sim, devem existir! É irresponsabilidade profissional não existir testes unitários automatizados para cada linha de teste! Neste ambiente, não fala-se apenas de testes unitários: aceitação, performance, integração, carga... IC significa mitigar riscos criando um ambiente de testes para garantir que sua base de código é confiável
  18. Pra não ficar por menos, algumas ferramentas!
  19. Inspeção: Tradicionalmente existe um problema em criar equipes independentes de qualidade/teste e desenvolvimento. Imagine o seguinte exemplo - você está lah no bem bom com a patroa e um cara do lado te dizendo "Não cara, não é assim, mais pro lado... isso não estava no roteiro, vc não pode colocar esta perna aí, é para o outro lado...". Para resolver este problema, podemos nos valer de anos de estudo de autores e desenvolvedores e buscar formas de mensurar qualidade de código através de métricas conhecidas, e através de ferramentas
  20. Mais ferramentas: Você se acha bom desenvolvedor? Então execute o CPD no seu código, e depois conversamos! Com estas ferramentas, a própria aceitação dos desenvolvedores será influenciada: não é o zé mané da qualidade falando, é uma ferramenta... normalmente a impressão é melhor...
  21. Imagine aplicar os conceitos de Business Intelligence para software? Cria-se assim a Software Itelligence, tomada de decisão através de dados concretos, acompanhados desde o início do ciclo de vida do produto, para que se possa tomar decisões a respeito do software utilizando cobertura de código, comportamento de testes, avaliação de duplicidade de código, avisos do compilador... muito mais acertivo que os achismos de especialistas...
  22. Como reunir tudo isso?? ora! ferramentas de feedback... segue uma pequena lista...
  23. Referencias
  24. Obrigado!! Obrigado pela oportunidade
  25. Dúvidas...

E então, você foi na apresentação e gostou??? Faça um comentário! Preciso do feedback para poder melhorar...

O evento foi muito bacana! Alta qualidade, pessoas interessantes e muita diversão!


Obrigado Globalcode e VOffice pela oportunidade! Ao final do evento ainda rolou um Papo de Boteco... coisalinda de Deus!!


[]s!!

18 novembro 2008

Blogrool... in a roll...

blogroll Saudações, mas uma vez estava sumido, deste de o lançamento do infoqBR (que preciso me dedicar mais a ajudar os demais editores)... mas vamos atualizar com o que tenho lido nos últimos dias:

O post mais comentado dos últimos tempos:

The Decline and Fall of Agile, por James Shore. O cara resolve fazer uma interessante reflexão: estaria Scrum nos levando para o buraco?? Apresentando vários motivos, o post tenta ser super convincente com a opinião de que Scrum está sendo mal interpretado... e eu concordo! Esquecemos o principal: inspect and adapt.
Como não poderia deixar de ser, a comunidade respondeu em peso ao post: (infoQ_br, o Philip Calçado, o Mueller, e muitos outros)
Uncle Bob tratou de jogar os cachorros contra essa idéia, num post bastante agressivo e mostrando o outro lado da moeda: é muito fácil culpar o scrum, virando as costas para o principal: nossa preguiça em produzir softwares melhores
Concordo com ambos! Ambas as posições são baseadas em fatos que vemos muito hoje:
  • Scrum ampliou a discussão sobre métodos Ágeis
  • Scrum criou uma indústria de certificação copiando TODAS as demais ferramentas/processos/metodologias
  • Equipes idiotas ou ingênuas ainda acreditam que Scrum é uma bala de prata
  • Nem com XP é possível fazer softwares perfeitos!!
  • São os princípios, e não os métodos, que decidirão sobre a sobrevivência dos projetos
Aconselho acompanhar a discussão em ambos os posts, realmente muito instrutivo.

Depois disso, mais um desabafo: Boris cria um pequeno post criticando "nossa" obcessão por ferramentas de ticketing, spreadsheet ou quadros virtuais de tarefas... segundo ele, sua equipe nem ao menos utiliza estimativas! E o único burndown utilizado é o Feature Burndown (porque, no final, o que realmente importa é o cliente satisfeito com as funcionalidades! )...

Boris chama a atenção para uma necessidade muito mais importante por ferramentas: facilitar a colaboração. Seja com salas de video conferência mais dinÂmicas, um iPhone de tamanho A4 que permita colaboração distribuída, ou um quadro multitouch que nos permita desenhar... essas são as ferramentas que equipes Ágeis precisam!

Ótima notícia: Scrum Gathering 2009 no Brasil!! Cidades que estão sendo consideradas: Recife e São Paulo... informação importante: este não será um evento muito grande, dada a principal característica do evento: a participação! Isso quer dizer apenas os primeiros inscritos terão acesso ao principais autores do mundo para conversar e trocar informações sobre scrum e desenvolvimento ágil... O aXmagno criou uma enquete na lista Scrum-brasil para falar mais a respeito, e selecionar a cidade sede do evento. Confira!

O Rafael Mueller disponibilizou dois vídeos do Google Tech Talk em seu blog: Clean Code Talks!! (tá bom, nao eh esse o nome da palestra, mas nao podia perder o trocadilho)

Por enquanto é isso...

até mais!

28 outubro 2008

Falando em Agile: Antonio Carlos Silveira

Antonio Carlos Silveira, um dos mais novos gerentes do Yahoo! Brasil, apresentou uma palestra com o tema O Product Owner e o Product Backlog. Pra variar, ele também é um dos caras que já trabalhou na Globo.com, e que ajudou a empresa a utilizar Scrum, tornando-se o maior case de utilização no Brasil. Minha impressão: a melhor palestra do evento

Tudo começa com uma brincadeira muito boa. No dia anterior, o Guilherme Chapiewski apresentou um pouco da atuação dos líderes Ágeis na Globo.com e é claro, mantendo a imagem de uma empresa massa pra caramba!(Foi muito massa a palestra, logo escrevo um pouco sobre ela).

Mas, mantendo seu compromisso principal com a verdade, o Antonio Carlos mostrou como é realmente o trabalho na Globo.com: A competitividade é acirrada!!

A intenção da apresentação era realmente esclarecer o conceito de Product Owner, e o artefato Product Backlog do Scrum. O nome em si não importa, mas os princípios por trás dos papéis e dos artefatos.

Alegoria interessante:

Uma equipe Scrum é formada por:

  • Darth Vader - Scrum Master - O protetor do processo
  • Stormtrooper Crew - Equipe - Responsável pela qualidade
  • Indiana Jones - Product Owner - Vem de uma cultura de chicotada (normalmente um Product Manager)

Tradicionalismo x Agilidade - De onde viemos e Para onde vamos

Carrasco - O Gerente Tradicional Tradicionalmente, principal missão de um Product Manager era se antever e prever futuro. Mas Por quê? A fórmula é simples:
  • Se antecipar aos acontecimentos de um projeto pode reduzir incertezas
  • Reduzindo incertezas provavelmente diminuirá a quantidade de Change Requests
  • Como Change Requests são caras, reduzir sua ocorrência certamente diminuirá o custo do projeto
Surge a figura de um Product Manager carrasco, que não se importa com a saúde das equipes que trabalham para ele, e está mais preocupado a cumprir um cronograma custa o que custar.

Não existe, neste ambiente, uma preocupação em adaptar-se à mudança, mas em restringir a mudança. Antecipar-se é o principal foco deste modelo, mesmo que o nosso mundo esteja seguindo na direção contrária. AC atribuí a isso uma espiral negativa dentro das empresas: setores de tecnologia querendo restringir mudanças devido aos custos elevados, e os setores de marketing buscando adaptar os produtos aos mercados.

Este é o principal motivador para o crescimento de métodos Ágeis. Assim, o que queremos é a agir rapidamente a qualquer Request de mudança. Ao invés de criar procedimentos para restringir mudanças, precisamos abraçar as mudanças adaptando-se o mais rápido possível.

O Product Owner

O papel do PO primeiro de tudo é: Ele precisa entender o Cliente Ele precisa responder às seguintes perguntas:

  • Qual o seu Target ?
  • Quem é o seu público alvo?
  • Quais são as personas? (dica do Danilo Bardusco)
  • Quem se quer atingir?
  • Por que um cliente gastaria dinheiro com o seu produto?

Além disso também, o cliente é uma Ponte entre os Clientes e o Time, inclusive na hora de buscar mais informações quando seu conhecimento do domínio do problema não é completamente compreendida. Assim, ele facilita o contato entre o Business e o Desenvolvimento.

Existe sempre uma tenção entre este PO e a equipe. Em métodos Ágeis, TUDO é baseado em confiança. E qual o paradoxo desta realidade: estamos num mundo em que confiamos muito poucos uns nos outros, e desenvolvimento Ágil para funcionar precisa muito de confiança.

Espiral negativa da vez:

  • PO não confia no time, porque normalmente não recebe o que solicita. Assim, o que ele faz? Atola a equipe de solicitações, na esperança de ganhar alguma coisa "do balaio"
  • A equipe sabe que o PO vai pedir mais do que eles conseguem produzir. Como sair dessa? Estimar cada vez mais tempo para completar as tarefas...

É isso que precisa ser mudado para que um ambiente ágil seja produtivo. Transparência é a palavra de um projeto Ágil. Inclusive, para que se entenda melhor essa alegoria. Imagine um projeto scrum como um barco: Se ele afundar, vai todo mundo pro buraco.

  • O PO pode ser técnico? Não necessariamente. Primeiramente, o PO precisa entender a equipe: sua capacidade de produção. Precisa entender que não é apenas empurrando trabalho para a equipe que mais software vai ser entregue. O Danilo Bardusco já escreveu sobre isso.

É necessário criar um ciclo virtuoso em que:

  • O PO entender as necessidades de esclarescimento da equipe.
  • Estimula a equipe no limite, para que ela consiga se comprometer e produzir o melhor produto. Tendo orgulho do que faz.
  • Sabe que um número, que a preocupação apenas com produtividade não trará o resultado esperado.
  • Trás um ponto de vista para a equipe que agregue valor para a equipe

PO: Cria a Visão

Uma visão compartilhada gera comprometimento O PO precisa pintar uma imagem bonita, para onde todos da equipe queiram seguir. Dois exemplos foram citados: Disney e Mirosoft. A primeira empresa cria uma Visão única, que guia todos da empresa, e é um dos motivadores de seu sucesso:
We create happiness by providing the finest in entrertainment for people of all ages, everywhere

Na criação desta Visão, o Product Owner deve estar preocupado em conquistar a equipe como um todo. E para isso a visão deve ser:

  • Compartilhada e compreendida por todos
  • Deve criar o desejo na equipe em fazer parte desta conquista
  • Deve ser clara e concreta
  • Deve ser difícil de ser alcançada, mas não impossível

Você é o product owner de um projeto? Qual a visão do seu software? e a equipe, entende essa visão?

PO: Entende o domínio do Problema e da Solução

Deve ser a referência sobre o Domínio do problema. Ele deve ser o ponto focal para a equipe, quando ela estiver em dúvida. E pra isso ele deve ter poder de decisão.

Receita para o fracasso:

Um product Owner que nunca decidiu nada. Criando a "Síndrome para o PO Mensageiro": Se para tomar qualquer decisão o PO precisa se comunicar com alguém para pedir a opinião, o problema está formado. Quais as consequências disso?

  • Equipe vai desconsiderar o papel do PO, indo diretamente à pessoa que decide.
  • O Time passa a tomar decisões. Se sentindo no direito de tomar as próprias decisões sobre o produto.

É necessário que o PO imponha respeito à equipe. Tudo que está sendo dito aqui é sobre pessoas, e a interação entre elas. Esqueça ferramentas! O que importa é a relação entre esse as pessoas, a maneira como você interage com elas. Comunicação Oral é o principal! Lembre-se disso: ferramentas não vão substituir o sucesso da interação pessoal entre as pessoas. (Repetitivo? náá)

Além disso, é obrigação do PO aceitar o que for produzido pela equipe. Para isso:

  • Deve estar presente para esclarecer dúvidas (deve estar próximo)
  • Deve avaliar o que for produzido

Aqui, o AC indica um estudo bastante interessante: A universidade de Michigan descobriu (há quase 10 anos), que equipes multiciplinares juntas produzem mais que o dobro do que equipes separadas por salas, predios, etc. external Leia a notícia

Nota importante: é o PO que organiza o Release Plan para o produto. Ele que encontrará o melhor momento para lançar uma versão nova do produto.

PO: Responsável pelo ROI

Sim!!! Retorno sobre investimento!

É o foco do PO! Normalmente relacionado a dinheiro. Mas não necessariamente o dinheiro em si. Acima de tudo, ROI deve estar ligado a um objetivo mensurável:

  • Dinheiro
  • Audiência
  • Satisfação do Cliente
  • Fidelidade

PO: Responsável pelo Product Backlog

Resumindo o que apresentamos acima: O Product Owner tem como função?

  • Entender o Cliente
  • É o elo de comunicação entre os Clientes e a Equipe
  • Entender do domínio do problema e principalmente possui o poder de decisão sobre o projeto
  • Aprova/Rejeita o resultado do Sprint
  • Responsável pelo Release Plan
  • Responsável pelo ROI
  • Responsável pelo Product Backlog

Lembrando que: Product Backlog é uma lista priorizada (em qualquer mídia) e ordenada com coisas que trarão algum benefício para o usuário.

Como descrever itens do backlog? User Stories!

AC ainda explicou sobre a profundidade na elaboração do Product Backlog, já explicado na apresentação: 10 ways to screw up with Scrum and XP. (Numa imagem muito bonita: 3D, tons pastéis, Estrelinha e um "r" no logo!)

O que define um bom Product Backlog?

  • Está Planejado adequadamente para os próximos 3 Sprints, ajudando o time a ter uma visão maior sobre para onde estão indo.
  • Sempre priorizado. Para que a equipe consiga escolher sempre o item mais prioritário
  • Sempre visível: Isso trás transparência
  • Deve ser mantido pelo Produtc Owner (não é função da equipe priorizar o Backlog)

Priorização

Foram citados os modelos de priorização:

  • Kano Model
  • Benefício Relativo
  • Modelos Financeiros
    • VPL
    • TIR
    • Payback

Principal Bibliografia Ágil sobre o assunto: Agile Estimating and Planning por Mike Cohn

No Modelo de Kano, deve-se categorizar o product backlog através do valor percebido pelo cliente. Em três categorias:

  • Must-have: Obrigatórios (Um hotel deve ter cama)
  • Linear: Quanto mais melhor (Cerveja grátis no quarto do hotel - ótimo )
  • Exciters: Necessidades não conhecidas (TV de LCD 42'' no Quarto - ótimo, mas não faz tanta diferença)

Para cada item do Backlog, faça duas perguntas:

  • Funcional: O que vc acha de ter uma Latinha de cerveja de graça no quarto de hotel, quando vc chegar?
  • Disfuncional: Se você chegar num hotel e não tiver uma latinha de cerveja de graça no quarto, o que vc acha?

No método de Benefício Relativo é necessário, primeiramente, que as estórias estejam estimadas. Após isso, preencha a seguinte tabela:


Benefício em ter Penalidades em não ter SUM(BV) Estimativa BV/Est
Funcionalidade 1 1 9 10 2 5
Funcionalidade 2




Funcionalidade 3




Funcionalidade 4




A Ordenação se dá pela coluna BV/EST

Mesmo sendo um método bastante interessante, em sua experiência, Antonio acredita que no final é o chutão que conta. A Utilização de personas pode ajudar bastante.

É isso... Esses relatórios estão ficando bastante extensos... mas espero ter passado a idéia da apresentação... aos que não assistiram...

Antonio: Parabéns pela apresentação!

(Acompanhe as impressões dele sobre o evento, além inúmeras referências)

Tomei a liberdade de adicionar neste blog os slides da apresentação (sem autorização, desculpe!). Aproveite:


27 outubro 2008

Lançamento InfoQ Brasil - 01/11/2008

Fratech
Saudações!

Este final de semana estarei em São Paulo para prestigiar do lançamento da versão brasileira do site InfoQ, conduzido pela Fratech

InfoQ Brasil


Junto com o Manoel Pimentel, vamos tentar passar um overview sobre o material que será possível encontrar no site, tentando - claro, estimular a curiosidade dos participantes a acessarem site, ampliando a comunidade brasileira ligada a desenvolvimento de software como um todo.

Encontro você lá!
[]s

15 setembro 2008

Agile Readiness Assessment Webinar - 19 de setembro

Divulgação: (From: The Agile Manager)


Please join me on Friday, 19 September for An Agile Readiness Assessment, a ThoughtWorks sponsored webinar.

Taking on Agile can appear to be an overwhelming commitment with no obvious place to start. For one thing, Agile is often a significant departure from how a team is operating, requiring organisational changes, new practices, and stricter discipline. In addition, because there are so many different things to be done - from continuous integration to Story based requirements - it's difficult to know what changes to make first. Finally, organisational constraints such as phase-based governance and shared QA can create questions about the extent to which Agile practices will have an impact, and raise doubts as to whether they can be taken on in the first place.

In this webinar, we'll discuss how to overcome stationary intertia and plot a course to Agile practice adoption.

  • How can we critically assess the state of our practices today?
  • What goals should we target given constraints and organisational realities?
  • How do we prioritise what we should do first?

I hope you can attend on the 19th.


Registration details:
Friday, 19 September 2008
Time: 1:00pm Eastern Standard Time (US-New York, GMT-4:00)
Registration URL: https://thoughtworks.webex.com/thoughtworks/j.php?ED=108081447&RG=1&UID=0


Se alguém conseguir gravar o evento para mim... eu agradeço!
Estarei no Seminário de Qualidade de Software e não poderei comparecer ao webinar (entretanto, aguardem a cobertura do evento)...

cya!
[]s

12 setembro 2008

Scrum Checklist em português

Lá vou eu de novo! Mais uma pequena tradução...

Desta vez, peguei a versão Mapa Mental que o Henrik Kniberg colocou à disposição num post em seu blog.

Usando o FreeMind, ai está a primeira versão:Scrum Checklist_ptBR.mm

Scrum Checklist

clique para ampliar...

Divirtam-se e ajudem a melhorar o documento...

12 agosto 2008

Ainda não entendeu o que é desenvolvimento ágil?

Bem... então Capitão Vinícius Nascimento vai ensinar...



Pontos altos da entrevista pra mim:

  • Não adianta... a maior parte das empresas nunca será Ágil (e o problema está nos gestores)
  • Desenvolvimento de Software é diferente de Engenharia civil (nunca canso de repetir isso)
  • Participação do cliente é fundamental!
  • Parece impossível, mas software com qualidade, satisfazendo o cliente e que seja sustentável é possível!!!

Mike Cohn


Apresentando um framework para implantar desenvolvimento ágil: Mike Cohn... apresentação demorada, mas bastaaaaante instrutiva... (video + slides)


Succeeding With Agile: A Guide To Transitioning

[]s

02 julho 2008

Mike Cohn: Scaling Agile

Scaling Agile Software Development




desculpem o ter deixado este blog no limbo... liferay está me consumindo... =)

20 maio 2008

Visão Ágil - Edição 4

Bom dia!

Aos interessados: saiu a mais nova edição da revista Visão Ágil, com dois artigos feitos por mim: Uma tradução (McConnell) e Integração Contínua... e uma cobertura sobre o FISL 9.0

Bom proveito:








Nesta Edição:
- As 5 Doenças do Gerenciamento de Projetos (Causa n° 4: Dependência Entre Tarefas)

- Integração Contínua

- Aperfeiçoamento de Projetos Ágeis Parte II

- Nove Pecados Mortais no Planejamento de Projetos

- ScrumMaster por ele mesmo

- Cobertura da QConference 2008 em Londres

- Gerenciamento de resultados com o Product Storage Chart

- Álbum da Visão Ágil no FISL 9.0

- Álbum do Encontro da comunidade de Metodologias Ágeis do RS

- Referências Ágeis

- News

14 maio 2008

Visão Ágil 2008

Visão Ágil 2008 – Chamada de Participação
"O seu evento sobre processos ágeis"

O Visão Ágil 2008 será o evento realizado pela Revista Visão Ágil em parceria com grupos de usuários, que reunirá toda a comunidade brasileira do segmento corporativo, técnico e acadêmico, para debater, aprender e construir fortes bases de conhecimento sobre a adoção de metodologias ágeis nos diversos níves de uma empresa, através de palestras e workshops feitas por grandes profissionais do cenário nacional e internacional, nas mais diversas vertentes agile como XP(Extreme Programming), FDD(Feature Driven Development), Scrum, OpenUp, DSDM, MSF, Lean, etc.


Datas: 19 e 20 de Setembro de 2008

Local: São Paulo, SP – Brasil

Sugestões de Macro-Temas:

#Agile for Business
- Planejamento
- Estimativas
- Métricas
- Custos
- Contratos
- Gestão de resultados
- Gestão de riscos
- Modelos de Maturidade
- Liderança Ágil
- Casos de sucesso.
# Core Agile
-Requisitos
-Modelagem
-TDD
-Testes
-Integração contínua
-Gerência de Configuração
-Documentação
-Qualidade
-Refactor
-Ferramentas

Participe da organização do evento

-Como Palestrante:
A Revista Visão Ágil está abrindo chamada para palestrantes de acordo com os macro-temas do evento, portanto, se você deseja palestrar, envie um e-mail contendo a seguinte estrutura:

- Mini-CV
- Título e Macro-Tema
- Descrição
- Tópicos
- Por que sua palestra será interessante para os participantes do evento? (Mínimo 3 respostas)
-Como Grupo de Usuários
Sabedora da importância e da força da comunidade agile nacional, estamos convidando TODOS os grupos de usuários interessados para participarem da comissão organizadora do evento, dessa forma, os grupos terão possibilidade de contribuir para o acontecimento do mesmo, através de:
#Responsabilidades:
- Pessoas para staff,
- Apoio aos palestrantes
- Coordenadores de grade,
- Coordenadores de mesa,
- Divulgação
#Benefícios
- Nome do grupo vinculado como apoiador do evento,
- Espaço para apresentar o grupo de usuários ao público.
- Direito a 4 (quatro) inscrições gratuítas

Importante: Todas as submissões deverão ser enviadas para o e-mail eventos@visaoagil.com até o dia 31 de Junho de 2008.

Portanto, esperamos que toda a comunidade participe ativamente para juntos construírmos um grande evento Agile aqui no Brasil.


22 abril 2008

Tudo sobre User Stories


Kelly Waters tem escrito há muito tempo sobre User Stories, introduzindo o conceito de INVEST como uma definição clara sobre como trabalhar com esta ferramenta:

INVEST significa:

Indepent: Mesmo sendo impossível para alguns sistemas, tenha em mente que uma User Story deve ser Independente

Negotiable: Uma User Story não é um contrato. Não é uma especificação detalhada. É apenas uma introdução às funcionalidades para que a equipe possa discutir e colaborar para esclarecer os detalhes próximo ao momento de desenvolver a funcionalidade.

Valuable: Uma User Story deve ser valiosa para o cliente da solução. Deve ser escrita em linguagem de negócio. Deve ser uma funcionalidade, não uma tarefa.

Estimatable: User stories devem ser passíveis de serem estimadas. Devem prover informação suficiente para serem estimadas, sem serem muito detalhadas.

Small: Nem pequena demais, nem grande demais. User Stories devem ser do tamanho suficiente

Testable: User Stories devem ser claras o suficiente para serem testáveis.


Aproveitem a leitura...

13 abril 2008

Lean: Maximize o Feedback



Temos a tendência a categorizar e determinar comportamentos(procedimentos?) para todas as atividades que executamos. É comum que numa empresa busquemos padronizar o trabalho e criar regras para orientar o trabalho de todos.

No post anterior (e num dos posts mais lido do blog), apresentei a idéia de que, seguindo o modelo científico, para o desenvolvimento de software, o ciclo de aprendizado deve facilitar a experimentação ampliando o acúmulo de conhecimento. Feedback, nesta ótica, é o resultado de seus experimentos e será a forma mais efetiva de lidar com problemas em nossa área.

Como?


  • Ao invés de permitir que erros acumulem, rode os testes no momento em que o código for produzido

  • Ao invés de adicionar mais documentação ou mais detalhes ao planejamento, tente validar idéias escrevendo código

  • Ao invés de garimpar mais requisitos com os usuários, mostre a eles um grupo de potenciais telas e receba sua impressões

  • Ao invés de estudar mais cuidadosamente qual ferramenta utilizar, leve as três principais para sua empresa e teste!

  • Ao invés de tentar descobrir como converter um sistema inteiro em um único esforço massiço, crie uma interface web para o sistema legado e evolua esta idéia




Feedback para Equipes



Talvez a principal apresentação sobre o tema. Direto do Google Chanel no youtube




Série de Posts sobre Lean:


1. Elmine o Desperdício
2. Amplifique o Aprendizado

07 abril 2008

Lean: Elimine o Desperdício



O que é Desperdício?


Desperdício(Waste) é tudo aquilo que não adiciona valor a um produto, valor este que deve ser percebido pelo usuário.

Se um componente de software não utilizado usuário é mantido no sistema, isto é disperdício. Se um ciclo de desenvolvimento de software se esforça para levantar um livro de requisitos que não é lido, isto é desperdício. Se os desenvolvedores produzem mais funcionalidades que o imediatamente necessário, isto é disperdício. Em desenvolvimento de software, transpor o trabalho entre equipes é disperdício.
Para o modelo Lean, o ideal é encontrar o que o cliente deseja, e então criar ou entregar exatamente o que ele necessita, virtualmente no exato momento da solicitação.
Qualquer coisa que entre no caminho de rapidamente satisfazer uma necessidade do cliente é considerado desperdício!

Encontrando desperdício


Por Mary Poppendieck: Eliminate Waste

Os sete desperdícios do Desenvolvimento de Software



Trabalho Particialmente Finalizado
Você deve possuir uma vaga idéia de como o sistema funcionará. Pode até ter uma noção de requisitos de negócio e condições de sucesso para uma funcionalidade. Quem sabe até mesmo algum código produzido.
Entretando, equanto este código não estiver integrado a sua base de código, tiver sido validado e aceito por seu usuário, não há como prever o seu comportamento. Funcionalidades pela metade apenas atravancam o caminho para trabalhos que poderiam ser feitos. Tornando-se facilmente obsoleto, trabalho parcionalmente concluído é pior do que trabalho nenhum... Funcionalidades e códigos parcialmente finalizados ampliam a complexidade de seu sistema, e amplificam os custos de manutenção de sua aplicação.

Processos Extras
Você já se perguntou se todo o papel utilizado é realmente necessário? Algum procedimentos para desenvolvimento de software requerem papeis para serem assinados por usuários, fornecendo rastreamento e permitindo a aprovação para uma mudança. Já verificou se o cliente realmente acha estes procedimentos valiosos? O fato de um documento ser um artefato de software não o torna valioso. Se você tem que esperar que um documento seja produzido para que você inicie o seu trabalho, reavalie a real necessidade de tal documento, e porque não, proponha mudanças. Lembre-se: procedimentos podem e devem ser questionados!

Funcionalidades a mais
Pode parecer ótimo entregar ao cliente mais funcionalidades do que ele está esperando... pegá-lo de supresa, e supreendê-lo... este é o desperdício mais śerio. Mais funcionalidades significa: Mais código para ser mantido. Mais testes para serem realizados. Mais documentos de especificação para serem criados. Mais conteúdo para gerar documentação. Mais bugs para aparecerem no sistema... enfim: jogar dinheiro no lixo... ainda mais se você pensar que 80% do total de funcionalidades de um sistema simplesmente não são utilizadas.

Troca de tarefas
Organizar pessoas em múltiplos projetos é outra forma de desperdício. Por ser uma atividade essencialmente intelectual, é necessário, toda vez que ocorrer a troca entre tarefas de projetos diferentes, que o desenvolvedores foque-se em algo completamente novo. Contexto de projeto diferentes, realidades diferentes, procedimentos muitas vezes diferentes...
O tempo que ele levará para estar realmente produtivo em cada projeto reduzirá muito! Sem contar que, normalmente, ocorrerá uma guerra de interesses entre os projetos pela atenção do desenvolvedor...
Minha vó já dizia: fazer muitas coisas ao mesmo tempo é um pretexto para não finalizar nenhuma

Espera
O maior ponto de desperdício em desenvolvimento de softwar é esperar para que algo seja produzido. Esperas em iniciar projetos, realizar testes, aguardar o levantamento de requisitos detalhistas, desenvolver uma funcionalidade são consideradas desperdício.
Atrasos distanciam seu usuário de receber um produto que satisfaça suas necessidades. Em muitos casos, atrasos são apenas a ponta do iceberg para problemas muito maiores. Em ambientes e mercados muito competitivos, atrasos e esperas podem significar milhões de investimento perdidos.
Poucos consideram custos realicionados a participação do mercado como sendo influenciada por atrasos... mas os principais líderes do mercado atualmente foram os pioneiros em seus nichos...

Movimento
Desenvolvimento de software é uma atividade que demanda muita concentração, e interrupções podem ser desastrosas no trabalho realizado. Quanto tempo um desenvolvedor leva para encontrar uma informação? Questões sobre requisitos de negócio ou informações técnicas levam quanto tempo para serem respondidas?
Documentos que transitam entre setores também são disperdícios. Quanto mais pontos um documento passar para iniciar sua implementação, maior será o ruído causado pela interpretação de informações (efeito telefone sem fio)

Defeitos
Você sabe o quanto custo a correção de um problema em fase desenvolvimento? e na integração? UM ABSURDO!!
Defeitos no sistema não agregam valor, não satisfazem o cliente, e definitivamente não são baratos. Qualquer tipo de retrabalho causado por problemas de implementação de requisitos, interpretação de necessidades e correção de documentação devem ser severamente combatidos. Neste ponto os métodos ágeis diferem muito dos modelos mais tradicionais: Construa com qualidade, não tente aferir qualidade após o produto pronto. Crie uma sistema que evite que os erros ocorram, e não que verifique se eles estão presentes em seu sistema para depois corrigí-los.



Tentar eliminar alguns dos desperdícios existentes no desenvolvimento de software é o primeiro passo para melhorar a qualidade de seu sistema... Tente!