Blog

Como foi a meetup Mob Programming Workshop?

O que é Mob Programming?

Mob Programming é uma abordagem de trabalho em time, incluindo não apenas pessoas que desenvolvem código, mas também todos que fazem parte da criação do produto como designers, testadores, ScrumMasters, Product Owners. Tanto pessoas técnicas e quanto pessoas de negócio.

Imagine todo o time trabalhando na mesma coisa, ao mesmo tempo, no mesmo espaço, e no mesmo computador. É uma técnica de trabalho realmente em time, que além de gerar uma solução de alta qualidade, o compartilhamento de conhecimento é constante.

A meetup de Mob Programming

Dia 31/01 nos encontramos em Porto Alegre pela Meetup Agile Open Space, no espaço gentilmente cedido pela DBC Company. Por 2 horas discutimos Mob Programming e obviamente codificamos. Inclusive pessoas que nunca programaram na vida, nem em cursos.

Apresentei um problema real a eles, que realmente os engajassem. O problema era que eu sortearia uma inscrição para o workshop de um dia todo, que acontecerá dia 09/02.

Tínhamos 13 pessoas, incluindo eu, o facilitador que também iria programar. Pedi a todos organizarem suas cadeiras em forma de U em volta do telão, para que todos pudessem olhar os outros e também ficarem confortáveis ao olhar para o código projetado na TV.

Isso já faz com que as pessoas se movimentem, e ajudem no próprio espaço do workshop, um dos primeiros passos para engajarem as pessoas. Essa é uma dica de facilitação: todos ajudam e todos colaboram. Pessoas são serem sociais naturalmente, e quando ajudam o próprio grupo se sentem engajadas por um propósito. Fiz isso parecido no TDC 2018 em Poa, na trilha de XP. Evoluir o design físico pedido ajuda e feedback rápido dos participantes.

Pessoas que não codificam ou não sabem codificar participando do Mob Programming como drivers?

Questionei os participantes e descobri que haviam duas pessoas que nunca programaram, além da maioria não conhecer ou dominar Java, a linguagem que utilizamos no workshop. Isso era uma preocupação dessas pessoas, então questionei também se eles queriam participar voluntariamente como driver (quem codifica no teclado), além de serem navegadores (que guiam o driver). O legal é que todos se voluntariaram a serem drives, inclusive quem não sabia codificar!

Isso é realmente impressionante!

Fiquei bastante contente com isso, e com uma atenção em especial ao grupo todo para fluir bem na criação de um ambiente seguro, porque todos ali iriam expor suas habilidades, ou a ausência delas. A busca por ambiente seguro é absolutamente essencial em Mob Programming. Tanto que os valores de Mob Programming são Gentileza (Kindness), Consideração e Respeito. Por isso também que retrospectivas diárias são importantes em Mob Programming. Sim, diariamente. Pode ser no final ou no início do dia, como o time decidir. Ah, e não há reuniões diárias tradicionais, porque todos já trabalham juntos e a comunicação é a todo momento.

A rotação era de 3 minutos, com 13 pessoas, fecharia um ciclo de todos participarem e ainda teríamos tempo para uma retrospectiva de fechamento. Perfeitamente após o ciclo, completamos a solução com Test-Driven Development (TDD). Criamos dois testes em JUnit bastante significativos. Ok, não tivemos tempo para melhorar o código com refatoração, isso é algo que sabemos que faltou tempo, e que faríamos com certeza se houvesse um próximo ciclo de Mob Programming. Isso ficou na consciência do time, a importância de clean code. O código está no GitHub em https://github.com/dsmoura/mob-programming-workshop-pocket

A rotação do driver acontece num período maior de 3 minutos num time já utilizando Mob Programming há um bom tempo, normalmente entre 7 e 10 minutos. O tempo de rotação em 3 minutos é para tornar a melhoria contínua do processo mais rápida. Por isso uma retrospectiva a cada ciclo inicial de Mob Programming.

O time precisa usar Mob Programming o tempo todo?

Não. Mob Programming é uma forma de trabalho que o time precisa aprender e decidir quando melhor utilizá-la. Dentro da cultura da organização, se o time quiser utilizar Mob Programming o tempo todo, tendo antes experimentado e mostrado que a qualidade da solução é aprimorada e a produtividade está boa, quem sabe até excelente, por que não?

O que sugiro é o time experimentar Mob Programming um turno por semana, ou um turno por iteração/sprint. Quem sabe decidir quais tipos de tarefas ou histórias de usuário/requisitos serão melhor desenvolvidas com Mob Programming. Ou quem sabe para troca de conhecimento? Ou melhoria do padrão de código? O time deve experimentar e então decidir.

Mob Programming, tornando pessoas incríveis!

A expressão bastante utilizada pelo Woody Zuill, um dos que estavam presentes no time que criou Mob Programming, utiliza bastante a expressão Turn Up the Good (Aumente o que é Bom). Focar nas melhores qualidades das pessoas e do time. Isso vem muito de Psicologia Positiva, de se focar no que há de melhor nos indivíduos, nos times e nas organizações, e não tanto em problemas. Isso faz com que as pessoas se tornem e se sintam realmente incríveis. Agradeço a presença de todos participantes, na foto abaixo!

Como é um dia de trabalho num time e numa organização em Mob Programming?

Veja como é um dia de trabalho de um time em Mob Programming:
https://www.youtube.com/watch?v=p_pvslS4gEI

E veja como é diversos times trabalhando numa empresa em Mob Programming:
https://www.youtube.com/watch?v=dVqUcNKVbYg

Quer aprender na prática Mob Programming?

Dia 09/02/2019 haverá o workshop de Mob Programming em Porto Alegre https://www.sympla.com.br/workshop-de-mob-programming-uma-abordagem-agil-com-o-time-todo__446273

Você gostaria de praticar Mob Programming? Envie-me uma mensagem direta pelas redes sociais que com certeza lhe ajudarei.

Acompanhe os eventos, meetups e treinamentos que facilito em https://dionatanmoura.com/eventos/

Meetup Agile Open Space, Porto Alegre

Nova meetup Agile Open Space, Porto Alegre! https://www.meetup.com/Agile-Open-Space-Porto-Alegre/

A ideia é fazer open spaces e workshops, ou seja, tudo o que haja aprendizado ativo! E não aprendizado passivo (chato até).

Além do mais, sabemos que agilidade valoriza mais indivíduos e interações. Então ter palestras ou eventos de agilidade com pouca interação pode ser um tanto contraditório.

Palestras podem ser úteis, porém não geram tanto aprendizado.  Veja no cone/pirâmide de aprendizado onde a meetup Agile Open Space tem foco:

E dia 17/01 já tem um agile game! XP Playing Cards Game – Aprendendo eXtreme Programming com diversão! https://www.meetup.com/pt-BR/Agile-Open-Space-Porto-Alegre/events/257767540/

Vai ficar de fora?

Planeje 2019 desde já! Planejamento Pessoal por Metas Trimestrais por Ano

2019 está quase aí, e você já está se planejando sobre o que busca alcançar no próximo ano? Ou vai esperar março começar para reagir, e entrar no piloto automático até o próximo ano acabar?

Utilize o modelo de Planejamento Pessoal por Metas Trimestrais por Ano para planejar 2019 desde já.

Planejamento Pessoal por Metas Trimestrais por Ano

Como dica, reflita para cada objetivo pessoal seu “O que de incrível gostaria de alcançar em 2019?”

Saiba mais sobre Objetivos e Metas no livro do Mantra da Produtividade.

The importance of Test Automation for Business Time to Market

Right after I woked up today, I read this Dan North’s tweet:

Screenshot from 2018-09-23 13:48:42

Trunk-based development makes the development teams integrate and test on a single code, which is the trunk (or master in Git). It is the base for Continuous Integration and Continuous Delivery. This approach brings software releases early, reducing time to market. At the extreme, Lean Startups.

Two weeks ago I was coaching an agile team for the first time, they use feature branches, having a slow cadence of deliveries. They are working on a single product with other three teams in their organization, plus other three organizations. In this case, code integration is a mess and its code is fragile. After a short time, business cannot have fast time to market anymore.

So what is missing?

It is virtually impossible having trunk-based development without test automation. When you need to integrated code, you need to test the feature and every thing related. So doing it manually is insanity. Manual testing can be easy in the beginning, but the software becomes more and more complex. You need test automation.

First of all, your team have to understand the need of test automation. Secondly, they have to learn and practice test automation. Why not try coding dojos or mob programming?

Based on the Redundancy principle of eXtreme Programming, your team can automate tests on critical features, difficult problems, so it can be approached in many ways. Developers focus on unit and integration code mostly, even functional tests. Testers automate functional and many other types of tests. They help each other. There is no right division on that.

Keep something in your mind: “Legacy code is simply code without tests” by Michael Feathers. So every code you commit without tests, it is legacy code.

So cheers for good practices on software development…

2018-08-01_10-37-45
Dionatan Moura (me, left) and Dan North (BDD creator, right) in the conference Agile on the Beach 2017. Falmouth, England.

 

Procrastinando?

São 23h, há pouco eu estava deitado na cama descansando, querendo escrever esse post, mas não queria sair do lugar. Isso é errado? Não, absolutamente não. Eu queria descansar, minha energia não estava suficientemente boa, nem a energia física, nem a mental. Eu precisava descansar.

Mas eu sabia que poderia fazer algo importante dos meus projetos pessoais, sim, eu sabia. Por pelo menos 2 horas. Isso é bastante tempo, tendo foco obviamente.

Então, por que eu estava procrastinando? Eu não estava. Naquele momento, eu precisava descansar. Então, posso até dizer que não existe procrastinação. O que existe é priorizarmos fazer outra coisa no momento que não é o que tínhamos anteriormente planejado fazer.

Um exemplo clássico de procrastinação…

Por exemplo, você está estudando para o concurso público que sempre quis e planeja estudar das 20h às 22:30h, até o dia da prova, daqui 30 dias. Ao se preparar para estudar, você começa a fazer outras coisas pontuais. Quem sabe limpar algo da casa, quem sabe navegar um pouco na internet. É só uns minutos… E assim vai. Você começa a estudar um pouco depois das 20h, parece que está tudo bem, mas ainda não tem foco. E mais, não sabe bem por onde começar. Seu celular está com algumas mensagens para ler, e de vez em quando você responde, e volta a estudar. Chega 21h, está chato de estudar, e a melhor coisa a fazer é continuar amanhã, e seguir naquele seriado até a hora de dormir. Os seriados (já no plural) estão tão bons, que basta ver só mais um. E assim você perde uma parte da noite de sono. No outro dia você acorda, vai trabalhar e mais um ciclo começa. Rapidamente, falta menos de uma semana para a prova. Você sabia mesmo que não iria vencer o edital, era muita coisa! Falta “tempo”. Né?

Perceba nessa pequena história a quantia de detalhes que são a base da “procrastinação”… A falta de reconhecer a importância da sua meta, a falta de energia, péssimo sono, falta de motivação, falta de desafios, diversas interrupções da Internet, hábitos improdutivos, falta de gestão de tarefas.

Uma fórmula simples para calcular a produtividade

Posso dizer que a produtividade é o produto de 4 características:

Produtividade = Gestão de Tempo(%) * Gestão de Tarefas(%) * Gestão de Energia(%) * Habilidades(%);

Avalie como é a sua gestão de tempo em porcentagem. O mesmo com gestão de tarefas, de energia e habilidades de realização das tarefas. Multiplique tudo isso. Eis a sua produtividade em %. Por exemplo gestão de tempo a 50%, gestão de tarefas a 80%, energia a 40% e habilidades a 95% gera uma produtividade de 15,2%. Uma produtividade bastante baixa, não? Comece melhorando o que estiver de pior. Nesse exemplo, a gestão de energia. É onde trará melhores resultados.

Diversas técnicas para vencer a procrastinação

O Mantra da Produtividade é um framework com diversas técnicas para cada parte que influencia a produtividade, com gestão de tempo, gestão de tarefas, gestão de energia e gestão de hábitos. Você pode adquirir o livro completo no site da editora, ou então baixar a versão gratuita pocket com bastante conteúdo para começar.

Aprimore sua produtividade com 25 técnicas de foco e organização pessoal. Conheça o livro do Mantra da produtividade!

livro mantra da produtividade

Link para o livro www.casadocodigo.com.br/products/livro-mantra-produtividade

Que tal um café? Uma reflexão estóica diária

Diariamente pela manhã, antes de beber a sua primeira xícara de café, pergunte-se: “Vale a pena viver e beber essa xícara de café?”.

IMG_20180902_111711700.jpg
Café sendo passado na manhã de hoje 2 de setembro de 2018. Perceba o vapor sobre o bule de café.

Por eu estar escrevendo neste momento, a minha resposta óbvia é sim, vale a pena viver. Vale a pena viver para apreciar um café. Dica: nunca faça essa reflexão com café ruim. Porém é muito mais que isso. Vale a pena viver pelos pequenos momentos que a vida proporciona. Você ainda consegue respirar naturalmente? Pode beber um café? Comer um alimento sem qualquer ajuda? Aprecie. Posso afirmar que nenhuma vida é perfeita, o que vale é focar no que há de bom. É uma escolha.

Por diversos meses durante um período sabático entre 2017 e 2018, eu me questionava quase todos os dias essa reflexão. Lendo, estudando, relendo e praticando o itens do Manual de Epiteto (O Enquirídio) em 2017, eu me tornava muito pensativo sobre a minha vida. Epiteto, dentre Sêneca e Marco Aurélio, para mim foi o maior exemplo dos estóicos, e seus ensinamentos podem parecer extretamente pesados.

Esse exercício vem do post Should I kill myself or have a cup of coffee? The Stoics and Existentialists agree on the answer de Massimo Pigliucci, um estóico e professor de filosofia da City University of New York. A resposta é “Grab a cup of joe, and focus on appreciating and creating meaningful relationships, projects to pursue, useful things to contribute to others, and things to learn for yourself (Pegue uma xícara de café, e foque em apreciar e criar relacionamentos significativos, projetos a realizar, coisas a contribuir para outros, e coisas a aprender para si próprio)”.

Como um exercício estóico relacionado, busque não reclamar de nada no seu dia. Nem de nada, nem de ninguém, nem de qualquer coisa. A responsabilidade da tua vida é exclusivamente tua, de mais ninguém. Reflita e melhore o que puder em si próprio. O que você foca, expande. Você fez a escolha.

Vale a pena viver. Que tal um café?

De vez em quando você precisa dar aquele pulo!

31894612821_c45fc03046_o
Início do caminho de Santiago de Compostela, 2016. Ponte de D. Luís, Porto, Portugal.

Você lembra de alguma situação no seu passado que você precisou ter força e coragem para enfrentar alguma oportunidade que era tudo o que você queria naquele momento?

Lembro do trecho da música Lose Yourself do Eminem:

Look, if you had, one shot, or one opportunity
To seize everything you ever wanted. In one moment
Would you capture it, or just let it slip?

Veja, se você tiver, uma chance, ou uma oportunidade
Para aproveitar tudo o que sempre quis. Em um momento
Você capturaria isso, ou apenas deixaria isso escorregar?

Então se você sente que está na hora de aproveitar aquela oportunidade…

Você precisa dar aquele pulo!

Existe uma energia necessária para dar o impulso, na mesma ideia da energia de ativação em reações químicas. Depois que você dá o impulso, não tem mais como parar. Você entra no estado de Flow, perde a noção de tempo, e descobre que você é capaz de fazer muito mais coisas do que achava que poderia, que teus limites são muito menores do que pareciam ser.

Acredito que já dei muitos desses pulos na minha vida. Certamente gera um estresse, às vezes até maior do que eu imaginaria. Porém a vontade de fazer algo incrível é maior. A a frustração de não iniciar algo seria maior do que o próprio estresse. E mais, o resultado de dar aquele pulo pode ser muito melhor do que você imaginaria! Normalmente é!

El Camiño

Desde 2015 queria realizar o caminho de Santiago de Compostela, conhecido como El Camiño. Em 2016, eu tive a oportunidade. Eu tinha tempo suficiente de férias e dinheiro para isso. Minhas férias começariam na quinta-feira, meu aniversário. Comprei as passagens na segunda-feira, mochila, roupas e utilidades para caminhar na terça e quarta-feira, e na quinta-feira peguei o avião para Portugal, Lisboa. Passei meu aniversário viajando, sem ter qualquer abraço de aniversário pela primeira vez na minha vida.

De Lisboa ao Porto fui de trem, sendo que eu não sabia como iria fazer essa viagem. Cheguei no Porto às 1h da manhã, sem hotel reservado, porém consegui um hotel. Acordei de manhã e comecei meu caminho de Porto a Santiago de Compostela na Espanha. A primeira foto desse post é na ponte de D. Luís, início do El Camiño.

Caminhei pela Costa portuguesa, caminhando ao lado do oceano diariamente. Depois de cinco dias, segui pelo caminho principal português, até Santiago de Compostela na Espanha. Foram 9 dias caminhando 200Km, sem saber exatamente onde eu posaria a cada noite, onde eu encontraria comida para me alimentar. Era na época entre Natal e Ano Novo, quase tudo estava fechado. Inclusive, uma família portuguesa me convidou para almoçar com eles no dia de Natal, pelo fato de eles saberem que não haveria nada aberto nas próximas horas caminhando. Obviamente eu aceitei. Comi bacalhau com a comida tradicional deles, com vinho e muitas sobremesas.

31292355253_25a16c8384_o
Final do El Camiño. Catedral de Santiago de Compostela, Espanha.

No último dia do ano, véspera de Ano Novo, eu estava em Santiago de Compostela. Caminhei com cerca de nove bolhas no pé, perdi três unhas do pé, minha ceia de Natal foi sozinho num albergue público totalmente vazio, comendo bolacha e bebendo água da torneira. Meu Natal foi totalmente sozinho, pelo fato de que quase ninguém faz o caminho durante o Natal. Porém o Ano Novo foi muito incrível, eu tinha chegado em Santiago de Compostela com diversos amigos peregrinos que fiz durante os últimos dias caminhando. Quando refleti ao final, notei que não foi tão difícil assim como parecia ser. E por mim, continuaria caminhando por mais muitos dias ou meses.

Qual o seu próximo pulo?

A zona de conforto é boa, mas não por muito tempo. A zona de conforto vira zona de desconforto. A mágica acontece principalmente saindo da zona de conforto e desafiando a si próprio.

zona-de-conforto
Fonte da Imagem: http://www.gestaoporprocessos.com.br

Então fica a reflexão. Qual o próximo pulo a ser dado na vida?

Tenho certeza de que você é capaz, basta encontrar uma maneira para dar aquele pulo e chegar lá aonde você mais deseja!

Para fechar essa reflexão, fica aqui o clipe da música do Eminem, Lose Yourself:

Aprimore sua produtividade com 25 técnicas de foco e organização pessoal. Conheça o livro do Mantra da produtividade!

livro mantra da produtividade

Link para o livro www.casadocodigo.com.br/products/livro-mantra-produtividade