Dicas para escrita de histórias de usuário

No post anterior eu falei um pouco sobre a história das histórias de usuário, seu template e sua finalidade. Hoje falo um pouco sobre algumas dicas que juntei por aí sobre como escrever boas histórias.

Ao iniciar o seu backlog, escrevendo as suas primeiras histórias, comece com histórias que tenham alguma meta envolvida, algo que realmente entregue valor para o cliente. É muito interessante vermos como as coisas são nas universidades. No meu tempo (idoso mode: ON) quase que invariavelmente se ensinava a fazer um sistema de locadoras. Com poucas variações, a grande maioria das faculdades naqueles tempos faziam o mesmo. Nós, como inocentes aprendizes íamos ali, criando novos softwares começando, quase sempre, pelos cadastros, quando o que realmente entrega valor numa locadora é a função de locar. Cadastrar os clientes, as mídias, todo o resto é acessório para o ato de locar. Vejam o quanto isso é a inversão desse valor, o quanto estamos acostumados a entregar o que nos parece mais confortável do nosso ponto de vista. Para o cliente, o meu cliente como desenvolvedor, ter todos os dados daquele blue-ray é importante, mas o mais importante é a locação. Com isso, nasciam cadastros com campos sem necessidade, mesmo cadastros inteiros sem necessidade aparente. Começar pelas histórias que são importantes te dá a possibilidade de validar os acessórios.

Ao dividir as suas histórias, lembre-se que uma história é uma entrega de valor. Para que uma história atenda a isso, ela não pode ser algo que vai entregar somente uma camada do sistema. Histórias que alteram somente o visual, somente o banco, ou somente a regra de negócio devem ser observadas com muita atenção, buscando sempre a entrega de valor. Embora existam situações nas quais realmente uma mudança de design entregue valor por si só, muitas vezes já vi pessoas criando histórias somente para adicionar campos novos no banco de dados, sem uma explicação do porquê. Pense nas histórias como uma fatia de bolo e não como uma camada dele. Uma boa história de usuário vai entregar um pedaço de cada camada do bolo, tal qual uma fatia.

Outra dica muito importante é colocar os critérios de aceitação no cartão da história. Isso ajuda ao cliente a entender os limites da tarefa e ajuda o desenvolvedor a entender quando ele realmente a completou. Eles devem ser claros o bastante para que sejam entendidos pelos envolvidos. Os testes podem ser escritos em qualquer formato que os leitores concordem como sendo conveniente, cenários, tabelas-verdade, o que for interessante. O fundamental nesse momento é que os critérios nesse momento sejam testáveis, sejam validáveis de maneira simples. No fim das contas eles certificam que as história implementadas correspondem ao que o cliente necessita. Sempre que possível, automatize o processo de validação das histórias. Utilizando uma combinação de integração contínua e testes funcionais, algo como Jenkins e JUnit (para Java), os resultados podem ser realmente potencializados.

Embora todo o time, até mesmo o cliente possam escrever histórias e ajudar na formação do backlog, a responsabilidade por escrever as histórias, por gerenciar o backlog completo é o Product Owner, quando estamos falando de Scrum. Observe que o uso de Histórias de Usuário não é algo de uma única metodologia, mesmo quem costuma usá-las.

São trabalhadas e amadurecem à medida que a análise progride. Não se deve ter todo o backlog escrito no início do trabalho. Isso seria considerado um desperdício. Uma metodologia ágil, ao menos a maioria, prega que isso seria um desperdício, pois seria como tentar adivinhar tudo o que o software teria logo no início na coleta de requisitos. Ter um ou dois sprints ou ainda uma ou duas semanas bem detalhadas já é o suficiente para um bom andamento do ciclo de trabalho

Para finalizar, o que acontece com as histórias após terem sido feitas e validadas pelo cliente? Bom, caso você queira manter alguma rastreabilidade, para fins de nostalgia ou ajudar a se lembrar do que foi entregue pode manter uma cópia das histórias. Mas elas não foram pensadas para isso. Foram pensadas como uma ferramenta para execução do trabalho e não com fins de registro ou documentação. Assim, após a sua validação podem ser descartadas.

Bom, isso era um pouco do que eu tinha para falar sobre Histórias de Usuário/User Stories. Até o próximo post.

Referências:

A história de uma história

forrest_gump

Dia desses escrevi aqui sobre as técnicas que mais usei para levantamento de requisitos. Naquela oportunidade citei que seria interessante um post mais específico para falar sobre o meu método preferido, as user stories, ou histórias de usuário.

A minha predileção por esse método se dá pela sua simplicidade. Estamos falando de papéis coloridos pregados em uma parede e em linguagem natural, aquela que falamos no nosso dia-à-dia. Muito embora o modelo seja simples, alguns cuidados devem ser tomados para seu bom uso e garantir a sua efetividade.

Segundo o meu amigo Heitor Roriz, histórias de usuários…

“…provêem uma apresentação fácil de compreender e de forma concisa sobre uma determinada informação. São geralmente numa linguagem informal e contém o mínimo de detalhes, deixando os demais dados aberto à interpretação. Elas devem ajudar a entender o que o software deve englobar.”

Isso significa que as US (user stories/histórias de usuário) funcionam como um “nivelador de linguagem”, trazendo para o mesmo nível de entendimento o cliente, o cara de negócios, que pode não entender nada de programação e o desenvolvedor, o cara que vai resolver aquele problema usando o conhecimento técnico. É muito interessante pois a US é um convite ao debate, à conversa. Ela é pequena e concisa de propósito, para que você tenha que discutir os detalhes com quem fez a solicitação e durante essa conversa novos tópicos possam surgir.

Um outro ponto importante é que elas devem ser acompanhadas por critérios de aceitação para ajudar a elucidar os comportamentos aonde as histórias pareçam ambíguas. Os critérios de aceitação seriam algo como os testes que indicam a quem for desenvolver quando a sua tarefa foi completada. Os critérios podem ser pequenos e simples, algo como uma regra de validação, ou mesmo mais complexos, dando origens a novas histórias.

Um modelo nos foi sugerido por Mike Cohn, dizendo que opcionalmente eu poderia ter a terceira cláusula (o porquê). Eu respeitosamente discordo, mas vamos falar disso mais adiante. O modelo proposto é o seguinte:

Como um [papel],
eu quero/desejo [objetivo/desejo]
então [benefício/razão]

Entendendo bem as partes, comecemos com o papel. Se você estudou um pouco de UML deve estar fazendo a relação na sua cabeça com o ator de um use case e está correto. Aqui estamos falando da pessoa que se beneficiará se essa história for desenvolvida. Isso é legal, pois como desenvolvedor você saberá com quem tirar suas dúvidas durante o desenvolvimento do produto. Nem sempre você terá funcionalidades que serão utilizadas somente por um único papel, ou mesmo por um papel tão simples que possa ser descrito de maneira sucinta. Nesses casos, o que é recomendado é o uso de personas, que nada mais é do que criar personagens com as características que um determinado perfil de usuário possui. Uma boa persona descreve algumas características básicas como:

  • Um nome, idade e um estilo de trabalho e vida definido
  • Um bordão para distingui-lo de outras personas
  • Atributos chave que afetam uso e expectativas do produto, serviço ou website
  • Tarefas frequentemente realizadas
  • Ferramentas e recursos utilizados
  • Pontos de atenção relevantes ao projeto

Usualmente não se criam mais do que 8 personas por projeto, dada a sua complexidade. É possível fazer algumas atualizações durante o projeto, mas isso é bem incomum. Enfim, não comece o seu projeto criando um punhado de personas, deixe que isso emerja da necessidade. Conforme você for escrevendo suas histórias, vai surgir em algum momento algum papel que precise de um pouco mais de atenção e talvez seja o momento de reunir o seu time e escrever seus personas. Ou sua equipe pode realmente se sentir mais confortável em saber quem vai usar o sistema desde o primeiro momento.

Por hoje é só, no próximo post, falarei algumas dicas de escrita para iniciar o seu backlog.

Spice girl manifesto

Eu sou um cara casado. De casamento já se vão oito ótimos anos de vida juntos. Mas nos conhecemos antes disso, mais ou menos uns cinco anos antes. Somando tudo posso dizer que temos uma excelente convivência, uma vida compartilhada por assim dizer a pelo menos treze anos. Ainda assim, não posso dizer que a conheço completamente. Não sei de todos os seus anseios ou vontades, de todos os seus desejos e existem muitos momentos em que ela diz uma coisa querendo dizer outra. Embora isso possa parecer um lamento, é só um fato, que eu aceitei e levo a nossa relação tendo isso em mente. Mas é bem interessante de se pensar que pessoas que dormem e acordam juntos, que compartilham suas vidas de maneira tão intensa não sejam capazes de compreender as vontades um do outro por completo, não é mesmo?

Se mesmo com toda essa intimidade eu aceito o fato do desconhecido, porque você exige do seu cliente algo diferente quando vai iniciar um projeto? Sério, o paralelo não é tão distante. Vocês mal se conhecem, são pessoas em última instância, não empresas. E são desejos/necessidades de pessoas que precisam ser traduzidos em requisitos de software. O mal entendimento desses desejos e vontade pode sim decretar o sucesso ou o fracasso de um projeto. Assim como em casa eu uso várias técnicas para entender o que minha esposa espera de mim, aplico o mesmo pensamento no trabalho.

Outro problema, é a distância entre o desenvolvedor e o cliente. A começar pelo idioma. Enquanto o desenvolvedor entende profundamente o que acontece dentro do software é bem incomum ver esse mesmo profissional entendendo o que acontece no lado do negócio. Mais incomum ainda é ver o contrário, pessoas de negócio que entendem como o software funciona. Assim, esses profissionais falam idiomas diferentes e sua compreensão fica defasada por conta disso.

Só para fins de curiosidade, o título desse post veio de um treinamento de Kanban, ministrado pelo próprio David Anderson, no qual ele disse que mais do que o manifesto ágil, precisávamos agora de um manifesto spice girl. Vendo o espanto dos alunos, ele explicou: So tell me what you want, what you really really want… enfim, entender o problema, a necessidade, é metade da solução.

A seguir eu alguns métodos que usei em algum da minha vida. Não os estou julgando (ainda)…

Questionários
Uma técnica bem antiga, no qual o analista redige questionários e os entrega aos usuários chave do sistema. Muito útil com equipes mais tímidas ou para captar o máximo de respostas de todos os membros da equipe.

Entrevistas
Quanto os questionários se mostram muito frios, uma investigação mais profunda se faz necessária. Marcar entrevistas com os usuários, isolados ou em grupo, pode ajudar a esclarecer diversos pontos que outros métodos deixaram em aberto.

Observação
Nada mais simples do que, ao se automatizar algum processo, observá-lo e ver como o mesmo ocorre, sem depender da narração de outra pessoa. Nós temos o hábito de suprimir etapas, acreditando que são óbvias, ou que estão subentendidas no que já foi dito. Para evitar assunções, veja por você mesmo.

Análise de documentos
Verificar como as informações são registradas atualmente nos permite mapear muito de como o sistema deve ser e inferir quais mecanismos e processos o sistema deve ter para que possa atender àquela necessidade. Reconheço que usei muito dessa técnica no passado.

Essas quatro técnicas foram das que mais usei quando o assunto era automatizar/informatizar um processo que já existia, ou fora dos computadores ou mesmo dentro, em planilhas ou sistemas isolados, integrando tudo. Poderia usar a palavra “simples” para descrever esses sistemas, afinal, buscavam “somente” transformar o processo atual em algo mais dinâmico e seguro. Muito embora ainda exista demanda para esse tipo de sistema, a maior parte dos trabalhos que chegam até mim na última década está bem longe disso. As pessoas chegam com novidades, apps, webapps, enfim, soluções para coisas que não existem no mundo real. Esse novo tipo de aplicação exige uma nova abordagem. Mais do que buscar entender como um processo funciona, agora precisamos validar como o processo foi imaginado para entender se tudo é como se pensou. Assim, seguem os que uso nesse tipo de situação:

Brainstorming
O bom e velho “toró de parpite”. Aqui buscam-se todas as ideias possíveis e mais tarde nós a validaremos e pensaremos em qual rumo tomar. A proposta é muito simples: gerar o maior número de insights sobre o problema que o nosso aplicativo quer resolver.

Prototipação
Existem diversos tipos de protótipos. Desde usando ferramentas, frameworks até mesmo o bom e velho papel e caneta. Sério, isso já me salvou em algumas situações. O nível de realidade que se vai usar aqui depende somente do nível de abstração que seu cliente e você conseguem suportar. Enquanto existem pessoas que conseguem entender alguns rabiscos no papel e imaginar como a partir daquilo surgirá um aplicativo, muitos outros têm dificuldade e precisam de um detalhamento mais próximo do resultado final. Cabe ir avaliando isso ao longo do levantamento de requisitos.

Use cases
Como eu já ouvi gente batendo forte em use cases eu sou obrigado a citá-los aqui. Sim, eles são bons e são necessários. Eu acho bobo voltar àquele debate sobre a documentação, mas só para mencionar, sim, existem documentos que são necessários e precisam ser atualizados, mesmo na visão do mais fundamentalista dos agilistas. A parte boba disso é acreditar que isso (ou o oposto) se aplica a todo e qualquer documento. Tendo isso como posto, já tive processos complexos que precisaram não só de um use case, mas também de um diagrama de sequência para ficar claro para todo mundo. Depois que a tarefa foi cumprida o documento foi desprezado, mas para a sua execução esses documentos foram de vital importância.

e finalmente User Stories!
Como eu gosto muito desse modelo, eu vou deixar aqui só um gostinho, deixo para um outro post falar mais sobre o assunto. O que eu preciso dizer de imediato é que é uma das formas mais simples de coleta de requisitos, trabalhando com uma língua que desenvolvedor e cliente conseguem entender, dividindo o trabalho em unidades que agreguem valor ao produto/projeto, definindo critérios claros de validação para que todos os envolvidos saibam sem sombra de dúvida que o trabalho foi concluído.

Conclusão
Sem o menor preconceito, já usei todas as técnicas acima, umas mais ou menos, sempre buscando entender o que meu cliente precisava. Um bom desenvolvedor vai ter sempre uma boa caixa de ferramentas preparada para usar a certa no momento mais propício. Entender o problema é metade da solução.

Tem-gente-que-nao-sabe-pedir

O sonho, o fluxo e o pássaro

Em alguns Agile Tour, apresentei em quase todas as cidades o meu workshop, buscando o estado de fluxo. O que se segue aqui é uma descrição do mesmo, para que você também o possa aplicar em sua equipe, talvez levando um pouco mais de entendimento sobre Lean-Kanban ou ao menos, fazendo-os pensar sobre o assunto.

No começo é necessário lembrar de uma lenda japonesa que diz que se você tiver um sonho, algo que você deseje muito, basta produzir 1000 (mil) tsurus (pássaros ou garças de origami) e pendurá-los em uma cerejeira que esse desejo é atendido. Bom, eu desejo uma Harley-Davidson, qualquer modelo (preferencia pela FatBoy), portanto peço aos que atenderam para esse workshop que me ajudem.

O processo para fabricar o tsuru é bem simples e não exige nenhum conhecimento prévio de dobradura. Ele pode ser apresentado nas sete etapas que podem ser observadas nas fotos abaixo:

tsuru_step1 tsuru_step2 tsuru_step3 tsuru_step4 tsuru_step5 tsuru_step6 tsuru_step7 tsuru

Assim, dividido em 7 etapas distintas, necessita-se de uma equipe de 7 pessoas no mínimo para executar essa atividade. Organize-os em uma sequência de mesas, mais ou menos como uma linha de produção.

IMG_2932

DSCN1674

Além dos papés de quem vai efetivamente executar o trabalho, precisamos de pessoas que monitorem o processo, observem-o e foquem em aperfeiçoa-lo. Claro que os inputs podem vir de qualquer membro da equipe, mas se não houver com o foco nisso, equipes inexperientes podem ter dificuldade para gerir as mudanças no princípio. Assim, precisamos de uma pessoa para anotar os dados em duas planilhas, a primeira é bem simples, com um número para cada etapa em cada um dos ciclos. Nela devem ser anotados quantos itens ficaram em cada etapa ao final do tempo dado.

tsuru_tracking

Um último detalhe que as imagens não descrevem, o primeiro membro da equipe, aquele que corta o papel para ser um quadrado, deve anotar em qual ciclo/lote aquele papel foi cortado. Isso será usado na outra planilha onde vamos montar um gráfico de dispersão. Essa planilha é opcional (portanto a anotação também), somente para o caso de você querer ensinar sobre Lead time e quanto tempo as tarefas podem estar paradas dentro do seu processo. Eu costumo faze-lo direto no Excel, ferramenta excelente e necessária para esse workshop.

Muito bem, equipe treinada no processo, observadores a postos, trackers alinhados sobre o que deve ser medido, iniciemos o trabalho, que se realizará em ciclos de 4 minutos. Correndo o primeiro ciclo (ou sprint, iteração, o que você achar melhor) algumas disfunções já são visíveis. A primeira é que o processo está desbalanceado, com etapas muito simples e outras muito complexas. Isso visivelmente vai gerar gargalos, mas não podemos chegar no processo final ainda, então muita disciplina é necessária nesse momento. Outra observação que se pode fazer é que existem pessoas que tem mais afinidade com algumas atividades, outras com outras e ainda temos aquelas que não se adaptam a trabalhos manuais. Normal, não somos todos iguais e as diferenças, quando assumidas, devem ser respeitadas.

O ideal é executar o ciclo de desenvolvimento umas 7 vezes aproximadamente, dando sempre um tempo entre os ciclos para que as pessoas parem, reflitam e implementem modificações. Ao final, muitas equipes foram capazes de compreender aonde estão os seus gargalos e agir para tratá-lo. Já outras colocaram mais e mais recursos da platéia na equipe até perceberem que essa era uma das piores soluções. A seguir alguns dos gráficos gerados por essas equipes. Neles os gargalos ficam muito claros a partir de um tempo. Algumas equipes souberam lidar com seus problemas em tempo, outras precisaram de ajuda, ainda houveram outras em que nem com ajuda o tempo foi suficiente para resolver.

Uma coisa que pode se fazer para lembrar o quanto trabalho em progresso é ruim é, no meio do processo, lá pelo 4º ou 5º ciclo, avisar que o mercado mudou e não se interessa mais por pássaros, mas sim por aviões de papel. Isso fica especialmente evidente caso a equipe não tenha se preocupado em limitar o WIP (Work in progress) pois todo os itens começados e não acabados agora terão de ser ou jogados fora ou vendidos à preço de banana. De qualquer forma, sua produção teve um prejuízo.

Seguem alguns gráficos de equipes que realizaram esse workshop.

cfd01

cfd02

cfd03

dispersao03

dispersao05

dispersao01

Essa obviamente é uma descrição bem superficial, ao final ainda conversamos sobre teoria das restrições, como promover mudanças e outras observações que o público apontar.

O importante é que no final, todos perceberam a importância de observar o sistema como um todo, de tratar os gargalos de seu processo produtivo, como medir de maneira justa e ainda como a limitação de trabalho em progresso pode ser uma ótima opção para tudo isso.

Estruturando a retrospectiva

Recentemente em um dos meus últimos trabalhos como coach precisei recomendar um modelo inicial para as retrospectivas. É claro que o ScrumMaster precisa pensar em maneiras diferentes para evitar que essa cerimônia importantíssima caia na monotonia, mas a primeira, para que se descubram os sabores (ou dissabores) de uma retrospectiva, pode ser o ponto mais importante de uma equipe ágil.
Acredito que o primeiro ponto que preciso tocar aqui é porque fazemos retrospectivas. Numa visão Lean mais xiita poderíamos pensar que tudo que não agrega valor ao produto, por consequência ao cliente, não deveria estar presente no processo. Mas se dermos uma rápida olhada ao que diz o último (mas não menos importante) princípio por detrás do manifesto poderemos observar:

Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.

Veja, faz parte do conceito de ser ágil pensar em maneiras de melhorar o como fazemos nossas coisas. Para mim, na verdade, o centro de “ser ágil” reside na evolução constante. Perceba que usei a palavra “constante” e não cíclica. Isso significa dizer que a evolução deveria ocorrer a todo momento. No instante em que se identifica um ponto de melhoria esse deveria então ser testado e tratado para que quem sabe no futuro faça parte do processo. Mas em um status inicial, equipes precisam de ferramentas para sistematizar sua melhoria. Mais do que isso, podemos dizer até que precisam de ferramentas para se disciplinar, tornar essa cerimônia um hábito e a partir daí sim buscar a evolução contínua. Até lá retrospectivas são muitas necessárias.

Tendo estabelecido o porque, vamos para o como. Muito do que eu falo sobre retrospectivas vem do livro da Diana Larsen e Esther Derby (Agile Retrospectives – making good teams great) pois sempre gosto da ideia de ter timeboxes definidos para cada atividade. De novo, isso disciplina e ajuda as pessoas a manter-se no foco. Assim elas dividem a retrospectiva em fases, como descrito à seguir:

ciclo_retrospectiva

Gosto muito dessa imagem pois tira um pouco da superficialidade de quem somente ouviu sobre a técnica proposta por elas e passamos a ver o ciclo completo. Isso ajuda muito a entender que mesmo retrospectivas, que ocorrem em ciclos, tratam de evolução contínua, pois o ciclo de melhorias nunca para. Assim, o que temos são cinco fases dentro da retrospectiva em si e mais outras que devemos ficar atentos no espaço entre uma retrospectiva e outra.

Set the stage

Momento no qual se explica como procederemos durante a retrospectiva, quais serão suas fases, quanto tempo cada uma levará, se serão necessários alguns acordos de trabalhos (work agreements). É o momento de colocar todos na mesma página para garantir a boa fluidez dessa cerimônia.

Gather Data

A fase da coleta de informações. Você deve criar mecanismos ou ambientes nos quais as pessoas se sintam seguras em relatar os fatos que ocorreram na última iteração. Você pode fazê-lo no momento da retrospectiva mas também pode ser feito de maneira contínua, ao longo do desenvolvimento. Pode ser usada uma técnica chamada timeline, onde você coloca em algum ponto do escritório um quadro que representa o seu ciclo (por exemplo, duas semanas, com um espaço para cada dia) e os membros da equipe vão até esse quadro e o preenchem com os eventos que acontecem no momento em que acontecem. Todo o fato que tiver impacto sobre o desenvolvimento deve ser relatado. Caso queira coletar os dados durante a retrospectiva, pode-se usar outras técnicas descritas no livro, como MAD/SAD/GLAD ou Plus/Deltas.

Generate Insights

Se a fase anterior era só para relatar o que aconteceu, nessa fase a ideia é ter ideias. Não tem ideia boba, a única indicação é que todos trabalhem para resolver os problemas mais do que para defender um ponto de vista. Após os presentes apresentarem suas ideias podemos passar para a próxima fase.

Decide what to do

Uma vez que sabemos o que aconteceu, que tivemos algumas ideias de como resolver, chegou a hora de pensar em quais dessas ideias podem virar ações concretas, coisas que podemos fazer para resolver o problema (ou melhorar o que estamos fazendo) já na próxima iteração. Perceba que aqui já não cabem mais abstrações, precisamos de ações que possam ser executadas por alguém, dentro do espaço de tempo que temos entre as retrospectivas. A técnica dos 5W2H pode ajudar a sistematizar essa fase.

Close the retrospective

Encerre relatando a todos as decisões tomadas, quem as executará, quais foram os problemas tratados e quando será a próxima retrospectiva.

Agora algumas dicas gerais

O foco da retrospectiva é a busca por soluções para problemas e melhorias no processo. Não é uma disputa de egos entre qual ideia é a vencedora ou mesmo que eu devo participar em todas as discussões, caso se deva escalonar em times maiores. O foco de todos os envolvidos deve ser sempre a melhoria do processo.

Outra dica importante é se criar um pequeno cronograma que pode ser apresentado no começo, na fase de preparação do ambiente. O próprio livro tem um exemplo.

cronograma_retrospectiva

Por último, mantenha o foco da equipe. Equipes grandes tendem a perder o foco em retrospectivas muito longas, portanto use os timeboxes a seu favor.

Espero que isso os ajude nas suas próximas retrospectivas.

Agile Tour 2014 – Missão cumprida!

LogoAgileTour2014Foi uma grande felicidade para mim. Esse foi o ano em que mais cidades tiveram o Agile Tour passando por elas. Em cada uma pude ver as pessoas felizes em receber um evento que fala de tecnologia, mas especialmente de pessoas e como trabalhar para que todas elas se sintam melhor em local de trabalho.

Iniciamos em Curitiba, depois São Paulo e então Campinas. Na sequência viajamos pelo interior do Paraná, para Cascavel e finalmente minha terra, Maringá. Outras cidades nos pediram eventos e vamos com certeza, com a força da comunidade (#AgilePower) fazer de 2015 um ano épico.

Em nome de toda a equipe organizadora, vai o meu muito obrigado a todos os participantes, palestrantes e patrocinadores que fizeram desse evento o grande sucesso que foi.

Todas as fotos, vídeos, grades e tudo o mais pode ser encontrado no site do evento.

A sabedoria de Musashi

640px-Musashi_ts_pic
Estamos no Japão feudal, um tempo e local onde as pessoas buscavam fazer aquilo que lhes era atribuído buscando a máxima perfeição, tanto nos seus modos como em seus resultados. Muita coisa podemos aprender de lá. Nesse época, vivia por lá um homem chamado Miyamoto Musashi. Ele era um samurai.
Dentre diversos ensinamentos que esse sábio nos deixou, muitos podem ser aplicados a coisas do nosso cotidiano, inclusive, por que não, no desenvolvimento de equipes e pessoas de alto desempenho. Vou citar alguns aqui, extraídos do livro “Os cinco anéis”.

“There is nothing outside of yourself that can ever enable you to get better, stronger, richer, quicker, or smarter. Everything is within. Everything exists. Seek nothing outside of yourself.”

O paralelo que podemos fazer desse ensinamento seria que muitas vezes, pessoas, organizações, equipes buscam soluções mirabolantes e demandam que pessoas externas àquele grupo venham para lhe dizer obviedades. Ouça seu time, faça retrospectivas, sessões de brainstorming, a solução para seus problemas pode estar escondida dentro daquele cara mais tímido da sua equipe.

“Do nothing that is of no use”

Evite o desperdício. Desperdício em todas as suas formas. Mapeie o sua cadeie de valor e encontro as etapas em seu trabalho que realmente agregam valor ao seu processo produtivo. Reuniões inúteis, estoques sem propósito, processo sobrecarregados, defeitos, tudo isso é desperdício e deve ser evitado.

“You can only fight the way you practice”

Ou no português claro e atual, cada um no seu quadrado. É impossível para alguém opinar com propriedade sobre algo que não conhece ou mesmo que conhece apenas superficialmente. Só é possível dar testemunho (novamente, com propriedade) de algo que se viveu. Se me propor a falar sobre as experiências de outros certamente soará falso e minha credibilidade se porá a perder. É importante entendermos que um time deve ter dentro de si todas as habilidades necessárias para completar suas tarefas. Veja bem, o time, não o indivíduo. Aceitar que existem áreas de conhecimento que fogem ao meu domínio me permite aprender mais sobre elas e evitar problemas.

“To know ten thousand things, know one well”

Hoje muitas pessoas se gabam de seu conhecimento horizontal, conhecer muitas coisas mas todas de maneira superficial. Isso leva a diversas coisas das mais bizarras como um consultor, que foi treinado por uma consultoria, não fez cursos, não participou de eventos ou coisa semelhante e muito menos participa da comunidade para poder debater suas idéias. Tal “profissional” afirma coisas como que o papel do ScrumMaster deve ser rotativo, sendo trocado o papel entre os membros do time. Esse, entre outros absurdos, são apregoados por profissionais rasos, que não buscam aprofundar o conhecimento em nada e dizem conhecer tudo que há para se conhecer. Caso você queira ser um profissional com alto conhecimento horizontal isso não é negativo. Mas é importante que antes de se tornar um generalista, seja especialista em pelo menos uma! Escolha uma área que você realmente gosta e aprenda essa pra valer! Depois vá e amplie seus conhecimentos, mas não sem antes ser reconhecidamente um especialista em alguma área.

“You must understand that there is more than one path to the top of the mountain”

Não negue as outras linhas de pensamento. Já vi isso dezenas, se não centena de vezes. O cara aprende Java e começa a descer o pau em .NET, aprende Kanban e começa a malhar em Scrum. Acontece todo o momento, muito, por medo dos profissionais. Muitos profissionais, por medo da contestação partem para o ataque e começam a detonar os outros métodos. Como eu sempre digo, não é porque você descobriu o martelo que agora tudo se tornou prego.

Assim meus amigos, nem preciso o quanto sabedoria pode vir de onde se menos espera e quanto isso é aplicável em nosso cotidiano, especialmente num mundo tão “dogmático” como esse de gestão ágil de projetos.