MundoJ Ed. 49 – Artigo Criação de mocks com Mockito

olá Pessoal,

Mais uma edição da MundoJ de nro 49 e  estou completando meu terceiro artigo com eles.Porém,este é o meu primeiro artigo com outro colunista (ótima experiência escrever em par). Junto com o  Alexandre Gazola  estamos falando um pouco sobre o Mockito e como usar a API para mockar seus objetos durante o desenvolvimento dos seus unit testes.  Não posso deixar de agradecer ao Eduardo Guerra o qual tive o prazer de conhecer no AgileVale 2011. Ao colega colunista Alexandre Gazola, foi um prazer ter escrito esse artigo com ele. Enfim espero que gostem do artigo! não esqueçam de comentar lá no GUJ.

Um pouco sobre o artigo

Para quem nunca trabalhou com mocks ou quem já trabalha, mas não com Mockito API, neste artigo há duas oportunidade: A primeira é de aprender mocks para quem é iniciante e nunca brincou antes. E a segunda de conhecer mais uma API Mock que tem sido bem aceita pela comunidade, quem sabe você pode encontrar vantagens no Mockito e migrar pra ele?!

Para saber mais, só comprando a edição. 🙂

abracos, see ya!!

Scrum:Reunião de Planejamento Sprint

Olá Pessoal,

Vamos para mais um post da nossa série Agile/Scrum. Hoje veremos o que acontece na reunião de planejamento, umas das reuniões mais importantes de um projeto Agile com Scrum.

Lets GO…

Note: somente para ter certeza que você sabe o que é um Sprint, abaixo coloquei a diferença entre Sprint e product backlog , é comum para quem está chegando agora, fazer confusão entre um e outro.

Sprint: quando falamos reunião para o Sprint ou o famoso Sprint Planning, estamos dizendo: “bem vamos planejar o nosso trabalho, para não ficarmos coçando”.

Product Backlog(PB): Aqui não é um planejamento oficial, mas é feito normalmente pelo PO e o ScrumMaster, depende mais do PO, pois é ele que vai montar o PB.

Reunião de Planejamento

Chegou o dia da reunião de planejamento, onde é um momento bastante crítico e o mais importante, pois é dai que vai sair todo o trabalho para a Sprint que inicia amanhã e também saberemos o que será feito e quando devemos entregar. O resultado do encontro de planejamento do Sprint deve ter:

  • Um objetivo do Sprint (o que pretendemos entregar?);
  • Os membros da equipe (quem vai trabalhar conosco? Quantos profissionais eu tenho? Todos full time?)
  • Um backlog para o Sprint (uma lista de estórias do Sprint que vem do product backlog)
  • Data de apresentação do Sprint (a demo do que está sendo entregue)
  • Data e local das reuniões diárias (daily scrum, recomendado sempre manter o mesmo local e horário)

É nessa reunião que o time faz as estimativas com os itens priorizados pelo PO. Então o time pega o primeiro item que está no product backlog e analisa, se tiver pergunta para o PO, o que ele quis dizer com o ponto X na story, a hora é essa.

Como saber quantos pontos uma story vai receber na estimativa?

Pontos = Nro pessoas * dias

Ex.: 2 * 5 = 10 pontos.

Então estou dizendo que se eu tiver duas pessoas trabalhando na primeira estória do product backlog por 5 dias, isso custará 10 pontos. O importante é não estimar em horas, e sim em dias, o motivo é que sabemos que não trabalhamos 8hr com 100% de foco, paramos para ver o nosso e-mail pessoal, tomar um café, visitar as redes sociais etc. A pergunta que deve ser feita nesse caso é: “Zezinho, se você pegar essa história em quantos dias você entrega?” Zezinho responde: “pelo que entendi, dá para fazer em 4 dias”. Então temos o total de pontos igual 4 (pois, Camilo vai trabalhar sozinho naquela estória).

Algumas equipes usam fibonacci para estimativa da estória(estimate story). Eu gosto dessa forma, assim eu consigo estimar comparando com outras stories. Usar a idéia de planning poker é boa, assim buscamos garantir que cada um fez as estimativas sem sofrer influência da estimativa de outros colegas.

Planning Poker

É uma técnica utilizada em times Ágeis com o objetivo de evitar opiniões por senso comum nas estimativas. Mas se as equipes estão longe geograficamente? Dai os membros remotos enviam suas estimativas via chat privado para o ScrumMaster.

Como funciona?

*se puder compre o baralho Agile, do contrário use os dedos. ; )

A pessoa que apresentar o menor número deve explicar porque é fácil e o que apresentar o maior número deve explicar o porquê é difícil. A jogada só termina quando o time entra em um consenso.

Por hoje está bom, nos próximos post falarei da importância do PO no planejamento do Sprint e o que fazer quando chegar no fim do planejamento do Sprint.

Espero que tenham gostado do post.

Abraços, see ya!!

Scrum: Preparando para planejar o Sprint

Olá Pessoal,

Mais um post curto da série Agile/Scrum que tem como objetivo de apresentar no formato baby-step um pouco de Scrum para quem está chegando no mundo Agile. E hoje vou falar de como se preparar para planejar o Sprint (Sprint Planning). Como tudo na vida, é necessário planejamento para conseguirmos atingir os objetivos e com Scrum não  é diferente.

Lets GO…

Preparando para planejar o Sprint

Antes de tudo devemos garantir que o product backlog esteja organizado (com as prioridades já definidas pelo product owner(PO)) e fechado (já com os devidos requisitos)antes da reunião de planejamento do Sprint. Em outras palavras o PO já deve ter a pilha de item que ele deseja para release, priorizado pelo nível deimportância. Se o PO não sabe como escrever as estórias o ScrumMaster deve escrever ou ensinar ao PO como escrever. Alguns times ágeis decidem convocar toda equipe para essa fase enquanto outros times deixam como opcional e prefere que o PO e SM conversem e traga os trabalhos para a reunião de planejamento.Enfim, fica à criterio da equipe.

Aqui alguns pontos que devemos considerar quando estamos nos preparando para planejar o Sprint:

  • Saber o nível de importância do que temos no product backlog, pois os pontos só são usados para classificar o item com mais importância e não o quão importante. Se criar um web service via soap tem 25 pontos e criar página de login tem 50 pontos, isso não quer dizer que criar página de login tem a importância duas vezes maior que criar um web service via soap. Se o valor fosse 26 ao invés de 25, o significado seria o mesmo, desde que fosse maior.
  • O product owner precisa saber o motivo pelo qual um item está na lista de backlog;

Então o que precisa estar claro sempre é:

  • Outras pessoas podem adicionar estórias ao product backlog, mas não podem definir o nível de importância, só o product owner;
  • Os prazos é uma tarefa exclusiva que só a equipe pode definir;
  • O Sprint backlog não é fechado, de acordo com o ritmo do time, caso sobre tempo o PO pode adicionar mais um item ou se a equipe perceber que não vai dar para entregar tudo, pode remover um item do backlog.
  • A duração do Sprint é fixa, ou seja, não é aconselhável ter Sprint com tamanhos diferentes, onde a Sprint 1 teve 2 semanas e a Sprint 2 teve 3 semanas, isso não deve existir, pois atrapalha quando vamos tirar uma radiografia de como estamos indo. Sem falar que, para calcular as próximas Sprints fica mais difícil, já que usamos as ultimas Sprints como referência para saber a velocidade da equipe para próxima.

Por hoje é só isso, pessoal. No próximo post veremos o que acontece no dia da reunião de planejamento e a importância do Product Owner nesta reunião.

Abraços, see ya!!

Scrum:Convencendo o Cliente adotar Scrum em 5min

Olá Pessoal,

A partir de hoje estarei dando inicio a série de posts sobre Scrum focando em ajudar quem está dando os seus primeiros no mundo Agile e pretende usar o Scrum framework. Um detalhe que os posts serão curtos e focado no assunto. E neste primeiro, já podemos vê isso em prática.

lets go….

Como convencer o cliente adotar Scrum em 5 min?

Talvez seja fácil convencer um cliente adotar Scrum se você tivesse uma meeting de 1 hora com aqueles slides bonitos e efeitos de impressionar. Mas, nem sempre vivemos no mundo ideal e precisamos adaptar e atender às mudanças. Então como responderíamos a pergunta acima? O segredo é não entrar nos detalhes técnicos, e às vezes nos profissionais da área técnica tendem a ir para o que é mais confortável para nós explicar, mas não considera que o cliente normalmente não é o cara de TI e que para ele pouco importa os detalhes, o mais importante para o cliente é saber o quanto isso agrega valor para o negócio dele e porque deveria adotar. E para isso, devemos deixar o pensamento técnico de lado e traduzir para linguagem humana e compreensível por um stakeholder e atingindo nosso objetivo que é convencer o cliente adotar Scrum . Sabe aquela história que você pode dizer a mesma coisa, porém de formas diferente? É isso que fazemos aqui.

E como responder a pergunta acima sem entrar nos detalhes do framework?

Simples. Respondendo assim:

  1. Scrum é um framework Agile que permite entregar um valor de negócio mais elevado num período de tempo mais curto. (ao falar isso automaticamente o cliente pensará em ROI)
  2. Scrum permite entregar rapidamente software funcionando e de qualidade a cada duas à quatro semanas (ele pensaria, “hmm tenho feedback constante”)
  3. Você (cliente) que define as prioridades. O time se auto-organiza e determina a melhor forma de entregar as funcionalidades de maior priorização
  4. No final de cada Sprint o time apresenta para você (cliente) as funcionalidades funcionando.
  5. Então Scrum é: transparência, inspeção e adaptação.

E assim destaquei 5 importantes pontos que você pode usar e certamente fará seu cliente pensar um pouco mais sobre o Scrum e daí quem sabe ele marca uma próxima reunião mais longa para discutir adoção e possivelmente virar mais um cliente?!

Vou ficando por aqui, espero que tenham gostado do post.

Abraços, see ya !

Entendendo Certified Scrum Master CSM

olá Pessoal,

O post de hoje vou falar de um assunto que já é polêmico “Certificação” e quando vamos para o mundo Agile a certificação CSM é mais polêmica ainda que as certificações tradicionais, uma vez que não há uma prova tradicional(tipo aquela da Oracle para OCJP com mais de 60 questões). Sendo assim, vou compartilhar com vocês minha experiência que tive na semana passada, “tirando essa certificação”.

Lets go.

Starting

Acompanho sempre as discussões e opiniões adversas sobre as certificações da ScrumAlliance, nunca opinei, pq não conhecia o suficiente para opinar e não queria comenter o erro de sair falando sem entender(como já fiz  no passado em outros cases e em algumas vezes tive que avaliar o que falei e aprender com alguns erros) o Por que?!. Eu sempre tive uma pergunta comigo: pq eles faziam a certificação deles diferente do que estamos acostumados em modelos do tipo OCJP, por exemplo?E isso nunca saiu da minha cabeça. como não tinha resposta, deixei a pergunta no modo stand by, pois eu saberia que ainda ia encontrar a resposta.
Ela veio quando eu parei de pensar: “como eu vou usar essa certificação para uma promoção ou proximo emprego” e começei a pensar: “com a certificação eu passo a ter um cartão de visita com clientes incertos e que preciso vender meu serviço para eles”.  E fui fazer a certificação para tirar essa dúvida na prática e buscar as respostas nos minimos detalhe.
E daí começei a entender o motivo que elas existiam e pq eram feita daquela forma, sem falar quem criou as certificações os co-fundadores, se pegarmos o cv deles, a maioria é consultor independente e certamente eles nao pensaram em certificacao para agradar o pessoal do RH. E o que poucos sabem, mas a resposta é: Pq as certificações vieram primeira a ScrumAlliance? Simples, os co-fundadores precisam vender o framework para um cliente(talvez os primeiros), mas este cliente, disse tá preciso de algo mais “sólido” que certifique meu projeto ou pessoas, nao posso comprar, so pq vc ta falando e como vou identificar outros consultores? Eu preciso comprar alguma coisa à nível de mercado.
Pois, eh tb nao sabia, descobrir isso no curso com os dos caras que participou no desenvolvimento da certificação da CSM Michel GoldenBerg, ele trabalhava junto com o Mike Cohn nos projetos Agile (bem no inicio da “revolução agile”).

Acredito que conseguir a resposta pq já tive experência de estar dos dois lados da moeda, um como profissional CLT e outros como profissional independente e para cada uma experiência eu tinha que pensar diferente, agradar o cliente como CLT é bem diferente de como agradar o cliente sendo um profissional independente.

Como funciona?

Ser CSM não é muito difícil, basta fazer um curso por um CST e no final responder média de 36 questões enviado pela ScrumAlliance. E assim você é um Certified Scrum Master.

E as questões?

Essas questões são para avaliar o CST, se a turma tiver um percentual muito baixo, à ScrumAlliance, vai chamar o CST para uma conversa, pois houve um problema no treinamento por parte dele.Isso é muito díficil, a maioria dos CST são experientes e passar o conhecimento não é um problema, uma vez que um CST já foi um ScrumMaster um dia e possivelmente na longa jornada dele, teve que passar conhecimento para um grupo, sendo assim ministrar o treinamento, não é algo do outro mundo. Nenhum CST que ter uma média ruim, pelo contrário ele vai se esforçar o máximo para que seus alunos tirem a maior nota possível.O objetivo das questões é para o aluno saber se ele entendeu o mínimo possível de Scrum, isso acaba sendo uma auto-avaliação para o próprio conteúdo, uma vez que as questões é direcionando a tudo que foi visto no curso e com algumas pegadinhas como de lei em qualqer exame.

E pra que serve essa certificação?

Apesar de ser criticada por alguns profissionais de TI, mas há algo importante que é preciso analisar antes de criticar. São eles:

  1. se você já tem um bom nome no mercado onde você é o valor da sua empresa em si. Não vai precisa de certificação nenhuma. Exemplo? Pessoas como Eike Batista, Steve Jobs esses caras por exemplo podem abrir uma empresa amanhã e ela já começa com um valor X somente porque eles são os dirigentes e seus clientes não querem saber se a empresa dele tem profissionais certificado YHY. Pois, a confiança é depositada tneles e quem deposita à confiança conhece o perfil de cada um desses caras e sabe o nível de qualidade e não precisa de nenhum órgão para testar isso, pois eles por si só são os órgãos.

  2. Agora em outro contexto onde está a maioria dos pobre mortais. Aquele profissional que não tem esse valor todo no mercado(como jobs e batista por exemplo) e de alguma forma precisa vender um produto para o cliente, o qual vai precisar que algum órgão mais abrangente que tem respeito no mercado diga: “esse cara tem os conhecimentos mínimos, nos o certificamos”(até você atingir o sucesso com seus clientes e sua empresa tornar referência, mas precisar desse tipo de titulo). E ai você precisa vender o seu certificado, para ganhar alguns tipos de clientes. E pra isso existe certificações, para aproximar novos clientes incertos do seu serviço. Isso é a realidade do mercado, seja aqui no Brasil ou lá fora, claro com algumas particularidades de cada país, mas é muito similar.

Em resumo se amanhã você pretende atuar como um consultor Agile, ter as certificações pode ajudar naqueles seus primeiros clientes incertos, caso você não tenho um mercado já consolidado com seu nome impresso. E nesse momento sentirá falta da certificação para jogar na mesa do StakeHolder, será seu cartão de visita.

A diferença

Isso aqui é o ponto diferente das demais certificações tradicionais.Ser um CSM não é ScrumMaster por que(meio louco isso)? Simples. Você não compra liderança, motivação de equipe,práticas de negociação etc. Você desenvolve essas habilidades e são os pontos chaves para atuar como um ScrumMaster, pouco importa se você é o cara de Java, .NET, Ruby, mas se não sabe lidar com equipe, remover as barreiras, ter um bom relacionamento, você tá perdido. Agora vem, a sensação de outras certificações como Java, algumas do PMI, que ao terminar você olha, pow estudei isso, aquilo, agora eu sei exatamente como fazer X. Já sei usar generics e entendi threads ou aprendi como calcular custo do projeto com menos erros, depois da prova PMI xxx.

Então quem for fazer certificação Agile CSM esqueça qualquer uma dessa sensação, pelo contrário você sai de lá com mais dúvidas, confusão mental. No inicio achei meio estranho, porém passar um ou dois dias achei que isso um ponto excelente e chave, pois fiquei motivado em ir buscar resolver aquelas confusões que estavam na mente, tirar aquela barreira e para isso tinha que estudar mais, aumentar o faturamento da amazon.com etc, mandar e-mails para os mais experientes (até para o Mike Cohn eu enviei). Algo que nas certificações tradicionais não acontece, após ter passado, temos a falsa segurança que dominamos o assunto e nem abrimos mais o livro de estudo e dai começamos outra jornada na carreira e com um certo tempo começa o esquecimento caso não use com frequência o conteúdo que viu na certificação.

O treinamento

São dois dias de treinamento, onde é abordado os pontos core de Scrum, desde conceitos: teóricos, práticos e cases. Há muita discussão e aprendizado nesses dois dias. Não é um curso comum, o aprendizado é grande e muito valioso. Sabe por que? Vou responder a seguir.

A sacada da ScrumAlliance

É fácil criticar quando não conhecemos, mas a ScrumAlliance fez algo que achei interessante. Para ser um CST não é para qualquer um. Ou seja, só quem teve e tem vivência pratica Agile pode ser um CST. E isso garante que o conteúdo do curso será com um profissional que tem conhecimento e experiência de fato com projetos Agile. E isso enriquece todo o curso de uma forma que é difícil descrever. Muitos criticam que na maioria(há exceções) das faculdades temos professores “doutores/p.h.d” porém que nunca tiveram experiência profissional e que o curso só fica no meio acadêmico e ao chegar no mercado o aluno ver que a coisa é bem diferente, do que ele viu em sala de aula, já que ele não foi preparado para o mercado na sua formação. No treinamento da ScrumAlliance isso não temo como acontecer, pelo requisito de se tornar um CST.

Ao sair do curso

Bem, ao sair do curso não dar para ter a síndrome do estudante, de achar que “eu sou o ScrumMaster”. Talvez, os menos experientes  possam sair com essa sindrome. A certificação não prova que você tem todo skill de ScrumMaster expert. Porém, é esperado que o aluno tenha o conhecimento suficiente para rodar uma Scrum, porém isso não quer dizer que ele vai conseguir rodar bem ou a melhor Scrum do mundo. No curso você percebe se é aquilo que de fato que deseja para você. O framework Scrum deixa transparente o papel e o que um SM vai viver no dia-dia sem maquiagem.

Compensa?

Essa é uma pergunta que muitos fazem. Bom, responderia dizendo que sim. É um bom curso, com aprendizado diferenciado, como falei baseado em experiência e case, e não só formado por conteúdo teórico. É como o meu CST(Michel Goldenberg) falou : “se fosse teórico e explicar o que já tem no wikipedia, ninguém precisava estar aqui, pois tem tudo isso de graça”.

Valor do investimento

R$ 1950.00 (só à vista)

É isso que você vai ter que investir. Não posso dizer que é um valor do tipo “trocado”. A única coisa que invisto sem estar muito preocupado é no conhecimento, então nunca vejo um investimento em conhecimento como perdido. Mesmo se um dia fizer um curso que for ruim(já fiz r não foram poucos), eu vou conseguir aprender algo com ele, do lado negativo sempre dá pra tirar algo de positivo para o seu aprendizado, mesmo que não seja no conteúdo do curso.

O mercado

Como o mercado vê essa certificação?

Da mesma forma que ver as demais, talvez essa aqui ainda pior, porque um dos problemas ainda existe em quem analisa é saber interpretar e conhecer como é o curso e como ele qualifica o aluno e parar de olhar para um “pedaço de papel”.

Conclusão

Foi um curso muito produtivo, conheci pessoas diferentes, o Michael é de fato um cara muito experiente e com uma boa didática. Ele fez o que pouco fazem, ensina o porque das coisas. Como eu não sou muito preso a esses papeis de parede, faria o curso mesmo sem certificado, não estou muito preocupado com ele, exceto se eu precisasse vender para um cliente que gosta de ver esses titulos in english de preferência. A minha conclusão é que  as certificações da ScrumAlliance elas foram pensandas mais para quem quer atuar independente, ou seja, não ser funcionário, uma vez que o a forma que é aplicada, não deixa o pessoal do RH feliz para o que eles precisam como criterio de avaliação.

Bom vou ficando por aqui espero ter esclarecido sobre a certificação CSM. : )

Abracos, see ya next post!!