Rodrigo Yoshima

Outubro bombando em Eventos

Nos próximos meses temos eventos interessantes, e estarei participando de alguns. Minha agenda é bem agitada como colunista da MundoJava e proprietário-instrutor-consultor da Aspercom. Além disso, a Aspercom também tem projetos na mesma linha que a Improve It. Falar sobre esses projetos é assunto para outro post, até porque preciso de autorização de clientes e parceiros.

Rails Summit da Locaweb

O Fábio Akita (AkitaOnRails) está fazendo um barulho enorme no blog dele e com razão. Faz um bom tempo que não vejo um evento com uma seleção tão interessante. Muita gente de fora e também feras brazucas. O fato da Locaweb ter disponibilizado o Passenger nos seus planos pode sim agitar a adoção do Rails.

468x60summit - 468x60summit

O que me interessa nesse evento: Chad Fowler e sua palestra sobre “A Evolução de um Framework”; Jay Fields que falará sobre “A Imaturidade dos Testes de Desenvolvedores”; Carlos Villela sobre “Uma Web de Documentos”; George Malamidis e a implementação RESTful do Ruby on Rails; David Chelimsky (do RSpec) sobre Behavior Driven Development (uma das minhas linhas de estudo atuais); Vinícius Manhães Teles sobre empreendedorismo com Ruby on Rails.

Link para o evento: http://www.locaweb.com.br/railssummit

Falando em Agile

falandoagile - falandoagile

Neste evento da Caelum também estarei marcando presença, o pessoal da ThoughtWorks vai estar por lá e a palestra do David Anderson promete muito.

Link para o Evento: http://www.caelum.com.br/falando-em-agile/

Com certeza tirarei algumas fotos para postar uma retrospective aqui.

Rodrigo Yoshima

Requisitos Executáveis com FIT

logo - logo
Na edição 29 da revista MundoJava escreví sobre o dia a dia de um agilista. Continuando uma série sobre TDD na Revista MundoJava nesta edição escreví um artigo sobre a ferramenta FIT para automação de testes. O artigo teve participação de Ivan Sanchez e James Shore.

O Ivan Sanchez foi o cara que fez o treinamento CSM junto comigo no início de 2007, e teve o azar de cair no mesmo grupo comigo! O Ivan é um agilista e grande evangelista de Coding Dojos. Atualmente trabalha na Signature Technologies no Reino Unido.

James Shore (Jim) é lider do projeto FIT (criado por Ward Cunningham), atua em projetos ágeis desde 1999 (sim, existem projetos ágeis antes do Manifesto Ágil) e escreveu o livro “The Art of Agile Development“.

Uma das coisas legais de escrever na MundoJava é ter contato com esses caras lá de fora e poder trazer estes conteúdos para nossa comunidade. Escrever com o Scott Ambler e o Jon Kern foi muito legal. Este artigo com o James Shore também foi especial. Infelizmente eu recebo mais não do que sim, mas ainda vou continuar insistindo com os mestres! Ah… vocês querem o trecho grátis do artigo, certo? Então aí vai:

Uma das questões comuns é: Quem escreve os dados de teste? Pela estratégia do FIT, os dados de teste são escritos a “oito mãos”. É comum que tudo inicie com o usuário ou cliente e com o analista de negócios, capturando cenários de teste iniciais que formatam alguns critérios de aceitação. Depois disso, um desenvolvedor pode verificar a formatação das tabelas, referenciar as Fixtures e assim obter o RED do ciclo TDD. Ao mesmo tempo os testers podem participar colocando mais cenários. Logicamente, o FIT é uma ferramenta ágil. É importante uma rica colaboração face a face de todos os envolvidos para que exista sucesso na adoção dessa abordagem.

Uma atenção especial deve ser dada ao trabalho do analista de negócios. Atualmente é comum que esses profissionais capturem requisitos em documentos texto e alguns diagramas. Geralmente este tipo de abordagem é muito pobre para o desenvolvedor, principalmente se não existe uma comunicação rica entre eles. Comunicação com documentos é uma forma muito pobre de comunicação (veja artigo “Modelagem Ágil”, MJ 27). Um modelo de requisitos em texto é muito deficiente na maioria das vezes. Pare para pensar: Não existe teste sobre documentos em texto e nem compilador para diagramas!
Rodrigo Yoshima

O que é o FIT e porque se importar com ele? O FIT é parte do seu arsenal ágil de prevenção de bugs. Diferente da abordagem tradicional para a qualidade, onde focamos em encontrar e remover defeitos, as práticas ágeis focam-se primeiramente em previnir que bugs sejam criados. Isso nos leva a alguns resultados impressionantes. Times ágeis experientes produzem poucos bugs por mês.

As “práticas ágeis de engenharia” pregadas pelo Extreme Programming (XP) são parte da solução. Essas técnicas como Test-Driven Development (TDD), programação aos pares, propriedade coletiva do código, design simples e trabalho energizado previne a maioria dos erros de programação. Elas garantem que o código faz exatamente o que os programadores pretendiam que ele fizesse.
James Shore

FIT ou Framework for Integration Testing é uma ferramenta excepcional no auxílio ao desenvolvimento de um software. O cliente (ou analista de negócio) escreve tabelas mostrando o que o sistema deve fazer através de exemplos. O desenvolvedor escreve o código das fixtures, que são as classes que ligam as tabelas com o sistema que está sendo implementado. A partir daí as tabelas se tornam “executáveis” e as regras definidas podem ser validadas de maneira automatizada.

FitNesse é a implementação mais popular de FIT, que funciona na forma de um wiki. Cada página representa um teste executável e é possível executar múltiplas páginas para validar um sistema como um todo. Além disso, por se tratar de um wiki, favorece a colaboração entre cliente e desenvolvedores, podendo servir como uma ótima base de conhecimento sobre o sistema que está sendo construído.
Ivan Sanchez

O FIT é uma ferramenta muito interessante: Uma coisa que chama a atenção em projetos onde utilizamos o FIT é que produzir as tabelas com os dados de teste é uma atividade de modelagem intensa. Modelar não é fazer diagramas, é muito mais profundo do que isso!

Já nas bancas!

Rodrigo Yoshima

Agile@BSB Restrospective

Aqui estão as fotos e fatos do final de semana ágil em Brasília.

Chopp Ágil DF

Na sexta-feira rolou o Chopp Ágil DF, conforme publicado no post anterior.

IMG 1985 - IMG 1985
Presença do Pessoal

IMG 1988 - IMG 1988
“Arte Agile”

Workshop Scrum

Mais uma turma finalizada e com ótimas avaliações dos nossos alunos! Nesta turma em especial, tentamos responder as questões de devem assolar o cerrado: “Como colocar um ambiente ágil em projetos e licitações do Governo?”. A conclusão que sempre chegamos é que de fato contratos de escopo fechado e BRUF são muito dispendiosos. Sim, é possível ter um ambiente iterativo com escopo fechado, porém, você sofrerá com a gestão de mudanças irracional e o cliente sofrerá com aqueles 60% a 100% de “gordura” que o fornecedor colocará no contrato.

turma1 - turma1
Todo mundo

turma2 - turma2
Equipe 1

turma3 - turma3
Equipe 2 (por que eles riem tanto?)

turma4 - turma4
Adoro esses “artefatos ágeis” que surgem do nada e ajudam muito os alunos.

turma5 1 - turma5 1
Isso é um mapa de navegação de um site de rede social.

turma6 - turma6
Scrum-Ban semi-digital.

turma7 - turma7
Opinião no nosso amigo Narixx sobre o peso do rinoceronte (depois de saber que um avestruz pesa 135Kg).

Fatos interessantes:

- Perguntei para dois brasilienses sobre como funcionava o esquema dos endereços em Brasília, ambos falaram que é “muito simples” e depois entraram em discussão entre eles sobre como funcionava tal esquema.

- Em Brasília tem um Standcenter / Promocenter muito maior que o que havia em São Paulo. É a feirinha do Paraguai. Produtos excelentes com procedência duvidosa e 3 meses de garantia.

- Brasília é mais bonita ao vivo do que em fotos.

Não deixe de também de olhar o post do Rafael Benevides no seu blog. Aliás, o Rafael contribuiu muito para que essa turma se disponibilizasse no DF. Obrigado novamente Rafael!

No dia 18 de outubro teremos uma nova turma em Brasília. Ainda não está divulgada no nosso site, porém será em algum hotel a definir. Para se inscrever envie um mail para rodrigoy@aspercom.com.br. O programa, preços e condições também estão no nosso site.

Rodrigo Yoshima

Chopp Ágil DF

Estarei neste sábado ministrando o nosso Workshop Scrum em Brasília e aproveitei para marcar um Happy Hour com os agilistas locais (presença confirmada do pessoal da AgilDF, Rafael Benevides, Narixx, Renato Willi só para citar alguns).

choppagil3 - choppagil3
(fazendo um anúncio de maneira ágil)

PMPs, CMMistas, Cascateiros, Ganttistas, Cowboys Heróicos também podem participar, desde que não defendam Waterfall.

Acessem: http://www.barazeitedeoliva.com.br/

Rodrigo Yoshima

JustJava 2008

justjavalogo - justjavalogo
Estive presente no JustJava 2008 onde apresentei a palestra “Mitos do Desenvolvimento de Software e Soluções Ágeis” (que logo em seguida teve a muvuca sobre Agilidade e Testes, muito boa por sinal). Também estive presente no Painel sobre Metodologias Ágeis mediada pelo Jorge Diz. Minha apresentação no SlideShare:

Fiz um esforço descomunal para não constar coisas da moda sobre Agilidade nesta apresentação. Até me arrependí do título. Dei um foco maior no “básico” (o cliente, o time e a iteratividade). Acreditem, o básico é o que o mercado precisa digerir neste momento. No fim muitas pessoas gostaram e até riram das piadas. Ganhei nota 8.5 do Prof. Papo, então, acho que fui bem (não estou muito acostumado a palestrar).

Troquei idéia com muita gente e reencontrei velhos amigos como os “Thiagos” da época da Datasul, donos do projeto Floggy.

IMG 1810 - IMG 1810
Timba, eu e o “Thiago Doido”

IMG 1811 - IMG 1811
Prof. José Paulo Papo, eu e Prof. Eduardo Guerra (”O editor-chefe”)

IMG 1812 - IMG 1812
Mesa do Debate

IMG 1826 - IMG 1826
Eu…

Desde o início deste ano estou separando agenda para poder comparecer e palestrar em eventos. Parabéns a todos pela organização e com certeza estarei presente em 2009.

Rodrigo Yoshima

Scrum no Banco Indusval Multistock

Na semana passada ministrei nosso Workshop Scrum para uma turma de 20 pessoas do Banco Indusval Multistock.

O Banco Indusval Multistock S.A. é um banco privado com 40 anos de experiência de atuação no mercado financeiro brasileiro. Desde 1993, suas atividades encontram-se focadas em um dos segmentos que o Banco considera dos mais atrativos do mercado de crédito: crédito a empresas médias.

A equipe deles desenvolve seus softwares em PHP e busca utilizar o Scrum como mecanismo de controle de projeto para iniciar uma melhoria de seus processos, buscando uma melhor interação entre o desenvolvimento e as áreas de negócio. Este tipo de necessidade beneficia muito a adoção do Scrum, pois toda instituição financeira é bem focada na busca por resultados rápidos.

Seria muito legal se esta moda pegasse em grandes instituições financeiras como Itaú, Bradesco, Unibanco e muitos outros! Infelizmente os projetos que desenvolví para grandes bancos sempre eram escopo fechado, foco em documentação e mais alguns toques cascateiros. Uma coisa para os CIOS dessas empresas pensarem a respeito.

IMG 1764 - IMG 1764
IMG 1760 - IMG 1760
IMG 1765 - IMG 1765
IMG 1762 - IMG 1762
IMG 1761 - IMG 1761
IMG 1757 - IMG 1757

Rodrigo Yoshima

Besteirol Agile

É incrível como o mercado é dado a modismos. Atualmente quando falamos sobre Agilidade um monte de besteirinhas acompanham o termo. Várias vezes ví em fóruns de discussão: “estamos adotando o Scrum, mas ainda não temos o quadro de tarefas”, “ainda não conseguimos ter as histórias em cards”, “ainda não temos as cartas do Planning Poker”, “ainda não traçamos o gráfico de burndown”, “ainda não temos o quadro branco para fazer os modelos”, “ainda não estamos estimando em pontos”, ” e etc, etc, etc… às vezes ouvimos “não usamos mais casos de uso, só usamos histórias”, “não documentamos mais a arquitetura”, “banimos o RUP”, “não documentamos mais a visão”, “não usamos mais UML”, “não temos mais documentos Word, só usamos Wiki”, “não somos mais CMMI” e etc, etc, etc…

Infelizmente vejo que tem se criado um “Termômetro Agile” bem estúpido. É um AMM (Agile Maturity Model) que mede o quão Agile você é baseado na quantidade de práticas da moda que você aplica. É mais ou menos assim:

Práticas AMM Pontos
Sim Não
Você tem o quadro de tarefas da iteração? +10 -10
Você tem as histórias em Index Cards? +10 -10
Você está usando mais de 135 post-its por mês? +10 -10
Você tem o quadro branco com modelos? +10 -10
O quadro branco tem modelos UML? -5 +5
Você mantém modelos UML como artefatos? -15 +15
Você tem as cartas do planning poker? +5 -5
Sua reunião diária dura exatamente 15 minutos? +5 -5
Você usa algumas práticas do RUP? -10 +10
Sua documentação está num Wiki? +5 -5
Você se preocupa com rastreabilidade? -15 +15
Está usando uma ferramenta para gerenciar o projeto? -10 +10
Sua iteração tem mais que 2 semanas? -10 +10
Seu Gráfico Burndown está em pontos? +5 -5
Você pode ir trabalhar de camiseta? +15 -15
Você usa Gantt Chart? -100 +100
Você é CMMI? -100 +100
Você tem PMPs na equipe? -50 +50
Você tem CSMs na equipe? +50 -50
Você está fazendo em Rails? +25 -25
Você já assistiu uma palestra com o Juan Bernabó? +20 -20
Sua equipe assiste aos videos da ImproveIT? +20 -20
Você lê o blog do Guilherme Chapiewski sobre a Globo.com? +20 -20
Você fez o curso com o Alexandre Magno na Caelum? +20 -20
Você lê os artigos do Rodrigo Yoshima? +20 -20

(Juan, Vinicius, Guilherme e Magno… isso é só piadinha, OK? - espero que não tenha retaliação :) )

Nível Pontos
1 - Cascateiro até 50
2 - Discretamente ágil 51-100
3 - Ágil 100-300
4 - Bem Ágil 301-500
5 - ThoughtWorks / Google acima de 500

Quadro referência

O objetivo aqui é exatamente falar contra isso, ou chamar a atenção para esses modismos. Usar Kanban, Index Cards, Cartas do Planning Poker, Pontos e Quadro Branco não é o que vai tornar você ágil. Dependendo do contexto é capaz que seja melhor você esquecer essas coisinhas da moda. Elas podem até te atrapalhar. Aplique desenvolvimento iterativo, trabalho em equipe, foco em resultados…

Vou dar um exemplo. Uma das coisas que me atrapalham é perder a ordem das histórias. Quando você está trabalhando iterativamente, seguindo uma ordem definida por um Product Owner, essa ordem deve ser mantida. Quem fez treinamento comigo ou trabalhou comigo em projetos sabe que sou chato para manter a ordem da fila de construção. Nesse novo projetinho Rails que estou desenvolvendo sozinho, resolví isso furando os cartões, colocando uma correntinha para manter a ordem e um durex verde para indicar a primeira história da fila:

IMG 1407 - IMG 1407

Sim! Isso está ajudando no meu projeto. E poderíamos até evoluir a idéia: a correntinha poderia ter um cadeado que só o Product Owner tem a chave, pois só ele pode tirar, colocar ou mudar a ordem dos Index Cards. Seria mais uma prática da moda!!!!

Práticas AMM Pontos
Sim Não
Você tem uma corrente amarrando os Index Cards do Backlog? +10 -10

AMM v1.1

Francamente!!!!!

Rodrigo Yoshima

Adoção de escopo negociável na FórumAccess

forumaccess - forumaccess

Na semana passada ministrei nosso Workshop Scrum para nossos amigos da empresa FórumAccess. A FórumAccess é um excelente exemplo de consultoria pequena que o Phillip Calçado tanto fala. É uma empresa com mais ou menos 100 desenvolvedores que já está trilhando o caminho da Agilidade de maneira intuitiva. Com o treinamento eles de fato adotarão o Scrum para gerenciar os projetos.

IMG 1364 - IMG 1364
Mais um treinamento com uma bela paisagem!
(essa ponte é linda na foto, mas ao vivo ela estraga a paisagem)

Uma das coisas que mais me chamaram a atenção na FórumAccess é a adoção de contrato de escopo negociável, apesar das dificuldades em vender este tipo de contrato no mercado. Eles são um dos poucos exemplos de empresa que oferecem este tipo de contrato (aqui em São Paulo são pouquissimas empresas que aplicam isso).

Como o Vinícius Telles explicou muito bem na sua palestra do TDC 2008 e também no vídeo sobre desperdício de funcionalidade, seu objetivo como desenvolvedor de software não é entregar tudo, mas sim, entregar aquilo que mais agrega valor para o cliente. O contrato de escopo negociável favorece isso.

IMG 1372 - IMG 1372
Equipe 1

IMG 1373 - IMG 1373
Equipe 2

IMG 1375 - IMG 1375
Escrevendo User Stories

IMG 1380 - IMG 1380
A homepage mais feia do mundo

IMG 1377 - IMG 1377
Todo mundo

IMG 1381 - IMG 1381
Tudo começa no planning

Agradeço a todo pessoal da FórumAccess pela troca de informações rica, principalmente sobre como o mercado tem se comportado com os contratos de escopo negociável. Essa mudança de cultura é muito importante para melhorar nosso mercado. Eu realmente acredito que consultorias menores e mais concentradas em entregar valor são alternativas melhores que as fábricas de software gigantes e burocráticas.

Rodrigo Yoshima

Um poster bem ágil

Na edição atual da MundoJava (número 30) não teve artigo meu. Pedi “férias” exatamente para organizar este blog e colocar algumas outras coisas em ordem. Mesmo sem artigo tivemos na Aspercom a missão de fazer um poster com práticas ágeis para o pessoal da revista.

Nunca tinha feito um poster desses na vida, mas sabia que era um trabalho criativo, artístico… não muito diferente de modelar software e escrever linhas de código. Porém, além do poster passar informações importantes ele deveria ser bonito!

Antes de começar qualquer coisa, precisaríamos definir o que colocar no poster. O poster tem limitação de espaço e gostaríamos colocar as práticas mais importantes e não todas elas! Para fazer isso, definimos alguns post-its com o conteúdo. Decidimos colocar basicamente as práticas do Scrum.

Tinha visto algumas apresentações em eventos mostrando que o processo ágil é cíclico e não linear, assim como o famoso poster da VersionOne. O processo cíclico é uma das características mais importantes de qualquer processo ágil e não podia ficar de fora!

IMG 1400 - IMG 1400

Estou viciado em modelagem ágil para fazer muitos tipos de trabalho. Fui influenciado pelos conceitos do Design Thinking para elaborar este poster: “Pense no processo como um conjunto de espaços e não uma sequência de passos predeterminados”. Tentamos vários “modelos” e usar post-its para testar o conteúdo na disposição do poster foi determinante. Após várias “versões” para escolher e vários rascunhos em papel A4, decidimos o melhor.

Eu e a Patricia (minha esposa, sócia da Aspercom e responsável pela parte de mídia) sentamos num único micro com o CorewDraw para passar aquilo para meio eletrônico em pair programming (neste caso, pair drawing), aonde também decidimos a imagem do fundo. Depois, foi só juntar tudo, descobrir como fazer algumas coisas no Corel, adaptar algumas idéias que não deram certo e testar o desenho o tempo todo. O resultado final foi muito bom.

IMG 1403 - IMG 1403

Julho é um mês agitado aqui na Aspercom. Todo o pessoal está de férias e muitos querem se manter atualizados nas novidades do mercado e etc… Ministramos treinamentos para aproximadamente 100 pessoas neste mês.

sala de aula - sala de aula
Sala de Treinamento da Aspercom
Computadores DELL Core 2 Duo e monitores LCD de 21″

Uma das grandes “novidades” é que dessa vez mais pessoas levantaram a mão quando perguntei se elas estão aplicando desenvolvimento iterativo. De acordo com a pesquisa rápida, creio que 60% dos alunos disseram estar aplicando desenvolvimento iterativo. 40% ainda era cascateiro. Bem, creio que isso é uma grande vitória, pois é muito comum 100% da turma ser cascateira. Será que as empresas estão caindo na real?

Eu acho que a comunidade Agile está fazendo um bom trabalho. Estamos dando o recado de maneira muito clara. Tem várias outras boas novidades de empresas grandes e pequenas buscando melhorar seus processos. Logicamente também aparece um ou outro louco afundando a adoção de Agile em algum lugar.

Foi muito legal neste mês de julho conversar com muitas pessoas de muitas comunidades diferentes. Uma das motivações de ter escrito o “Rigidez Conceitual Burra em Java” é o dinamismo da comunidade PHP. Realmente vejo eles buscando sistemas mais organizados através de frameworks bastante influenciados pelo Rails. Por conta de um sitezinho que precisei fazer, estudei o CakePHP. Infelizmente o site era bem simples e não deu para aprofundar muito, mas é fato que o sistema fica mais claro, mais fácil de manter e com uma melhor separação de responsabilidades. Logicamente a sintaxe do PHP é o que não ajuda!

O fato de ter escolhido PHP é que o provedor do cliente não tinha Rails “inicialmente”. Problema de comunicação! Quando fui colocar a primeira iteração no ar para testes, ví a seguinte tela:

rails - rails

Por melhor que seja o PHP, me desculpem! Rails é Rails! O provedor do cliente atendia Rails sim! Como estava ainda na primeira iteração logicamente que valia a pena migrar para Rails. Deus abençoe a Phusion. Uma das razões que me faz apostar no Rails é o Passenger (mod_rails). Logo logo o mod_rails se tornará padrão em qualquer provedor. Pra falar a verdade, creio que a popularização do mod_rails marcará o início da queda do PHP.

No treinamento Scrum do dia 19 de julho, conhecí o André e o Antônio Carlos (pessoal da Stefanini) que estão num grande projeto Web para a Fnac. O que chamou a atenção é que este projeto é Scrum + DDD + .NET + Escopo Negociável. Sendo sincero com vocês, é raro pessoas que trabalham com .NET aplicar DDD corretamente como este pessoal. Infelizmente, é comum o DsPLPC (Data Set pra lá e pra cá). Vamos ver se isso muda com o Entity Framework (isso se a M$ não fizer nenhuma besteira). Mas fiquei contente que o Antônio Carlos relatou como nosso treinamento auxiliou na adoção do Scrum com o Team System. Realmente estamos torcendo por vocês.

Muitas outras histórias e relatos tive nessas turmas. Realmente foi muito enriquecedor! Gostaria agradecer a todos os alunos pelas conversas nos coffe-breaks e pela excelente avaliação feita dos treinamentos.

- Próxima Página »