Escolar Documentos
Profissional Documentos
Cultura Documentos
Agile+Manifesto br25 01 1611705580749
Agile+Manifesto br25 01 1611705580749
Entendendo
os Valores e Princípios Ágeis
Understanding
Agile Values & Principles
Scott Duncan
Scott Duncan
Understanding Agile Values & Principles
© 2019 Scott Duncan. All rights reserved.
Published by C4Media, publisher of InfoQ.com.
ISBN: 978-0-359-52387-0
No part of this publication may be reproduced, stored in a retrieval
system or transmitted in any form or by any means, electronic,
mechanical, photocopying, recoding, scanning or otherwise except
as permitted under Sections 107 or 108 of the 1976 United States
Copyright Act, without the prior written permission of the Publisher.
Production Editor: Ana Ciobotaru
Copy Editor: Lawrence Nyveen
Design: Dragos Balasoiu
Contents
Prólogo.......................................................................................................................vi
Outros comentários do livro.................................................................................1
Prefácio........................................................................................................................2
Introdução à Edição Brasileira.............................................................................4
Prefácio à edição brasileira....................................................................................6
Visão geral...................................................................................................9
O Manifesto Ágil................................................................................................... 10
Declarações iniciais............................................................................................... 11
Declaração final..................................................................................................... 11
Mais que................................................................................................................... 11
Desde o manifesto................................................................................................. 12
Ágil além do software........................................................................................... 13
O próximo capítulo............................................................................................... 13
Algumas considerações...........................................................................15
Comunicação.......................................................................................................... 16
Colaboração............................................................................................................ 17
Comprometimento............................................................................................... 18
Melhoria Contínua............................................................................................... 19
Confiança................................................................................................................. 20
Excelência................................................................................................................ 20
Indivíduos e Interações..........................................................................21
IIndivíduos e interações...................................................................................... 22
Processos e ferramentas...................................................................................... 23
Comprometendo-se com a interação.............................................................. 24
Um experimento.................................................................................................... 24
Software Funcionando...........................................................................25
Comunicação com o software........................................................................... 27
Documentação Compreensiva.......................................................................... 29
Colaboração com o Cliente....................................................................31
Negociação de contratos..................................................................................... 33
Responder a Mudanças...........................................................................35
Seguindo um plano............................................................................................... 37
Satisfação do cliente................................................................................39
Nossa maior prioridade....................................................................................... 40
Entrega contínua e adiantada............................................................................ 41
Software com valor agregado............................................................................ 41
Abraçar as mudanças..............................................................................45
Vantagem competitiva para o cliente............................................................... 46
Mudanças nos requisitos são bem vindas....................................................... 46
Ao final do desenvolvimento............................................................................. 48
Entrega contínua......................................................................................51
Entregar frequentemente software funcionando......................................... 52
De poucas semanas a poucos meses................................................................. 52
Dar preferência a escalas de tempo mais curtas........................................... 52
Por que iterações curtas?..................................................................................... 53
Trabalho colaborativo.............................................................................55
Pessoas de negócios e desenvolvedores........................................................... 56
Trabalhar diariamente em conjunto................................................................ 57
Por todo o projeto................................................................................................. 58
Indivíduos motivados.............................................................................59
Pessoas motivadas................................................................................................. 60
O ambiente e o suporte........................................................................................ 61
Confiar na equipe.................................................................................................. 61
Conversa face a face.................................................................................65
Meios de comunicação......................................................................................... 66
Equipes distribuídas............................................................................................. 70
Gerenciando equipes distribuídas.................................................................... 71
Reuniões diárias..................................................................................................... 73
Revisões de iteração.............................................................................................. 74
Software em funcionamento… Outra vez?......................................... 77
Medindo o Progresso........................................................................................... 78
Gráfico Burn-up.................................................................................................... 79
Definição de pronto.............................................................................................. 81
Desenvolvimento Sustentável...............................................................83
Desenvolvimento Sustentável............................................................................ 84
Ritmo constante indefinidamente.................................................................... 85
Excelência Técnica...................................................................................87
Atenção Contínua................................................................................................. 88
Excelência Técnica................................................................................................ 88
Bom design.............................................................................................................. 89
Aumenta a agilidade.............................................................................................. 90
Simplicidade.............................................................................................91
Equipes auto-organizadas......................................................................93
As melhores............................................................................................................. 94
Equipes auto-organizadas................................................................................... 94
Reflexões da equipe.................................................................................97
Intervalos regulares.............................................................................................. 98
A equipe.................................................................................................................... 99
Tornar-se mais eficaz.........................................................................................100
Refinar e ajustar...................................................................................................100
Retrospectivas ineficazes..................................................................................101
Algumas ideias para retrospectivas................................................................102
Coletando Feedback...........................................................................................104
Os cinco porquês.................................................................................................105
Ferramentas para análise de dados.................................................................105
O que vem depois?..............................................................................................109
Epílogo.....................................................................................................110
Uma perspectiva antiga e duas recentes.......................................................110
Modern agile.........................................................................................................110
Heart of agile.........................................................................................................112
Leitura adicional....................................................................................116
Sobre o autor...........................................................................................118
Prólogo
Mike Cohn
Mike é cofundador da Scrum Alliance e autor de User Stories Applied,
Agile Estimating and Planning, e Succeeding with Agile.
www.mountaingoatsoftware.com
www.agilementors.com/
Outros comentários do livro
Muitos anos atrás, comecei o que planejava ser um livro muito maior
com esse mesmo título. Eu senti que muitas organizações com as quais eu
trabalhava haviam iniciado sua jornada Ágil sem uma boa, ou nenhuma,
compreensão efetiva dos Valores e Princípios do Manifesto Ágil. O livro
foi um esforço muito grande e eu o deixei de lado. No entanto, ao longo
dos anos, minha preocupação com a falta de conhecimento organizacional
dos Valores e Princípios Ágeis não diminuiu, pelo contrário, ela cresceu.
Decidi, há um ano, publicar alguns ensaios no Medium.com e isso acabou
sendo o precursor deste livro. As pessoas falam de “ser” ágil em vez de
apenas “fazer” agilidade, esse é um assunto que poderia ser discutido de
forma mais ampla em um próximo livro. Este trabalho, no entanto, tenta
abordar esse comportamento com exemplos suficientes para “fazer” e
ilustrar como alguém poderia se comportar ao “ser” ágil.
Eu não teria chegado a esse ponto sem a influência de muitas pessoas
relacionadas com o desenvolvimento Ágil de software. Desde que li o
Programação eXtrema (Xp) Explicada (eXtreme Programming Explained)
pela primeira vez em 2002, muitos outros ajudaram na construção do
conhecimento, mas duvido que consiga listar todas elas. E antes disso, por
cerca de 25 anos, ainda mais pessoas influenciaram como eu via os temas
tradicionais de desenvolvimento / engenharia de software.
Reconhecimentos
Gostaria de agradecer a algumas pessoas, especificamente por lerem os
rascunhos deste livro e por seus comentários sobre ele:
Primeiramente, conhecendo-o há cerca de 15 anos e, como ele, junto com
Ken Schwaber, era meu treinador de CSM, quero agradecer a Mike Cohn.
Tive o prazer de estar em conferências com Mike, tendo aulas, trabalhando
com ele no Conselho de Administração da Scrum Alliance e participando
de sua comunidade de Agile Mentors. Também tive a oportunidade de
ler e comentar o rascunho do livro “Desenvolvimento de Software com
Scrum: Aplicando Métodos Ágeis com Sucesso” (Succeeding with Agile,
título original).
E conhecendo-o quase por tanto tempo quanto Mike, quero agradecer
a Ron Jeffries por examinar o rascunho deste livro. Ao longo dos anos,
gostei das apresentações que ele fez sobre as práticas do desenvolvimento
Agile e seus primeiros escritos sobre práticas de programação eXtrema.
Antes de aprender sobre o Scrum, o trabalho de Ron e Kent Beck no XP
foi minha introdução à prática Ágil, depois de encontrar o Manifesto Ágil.
Em terceiro, quero agradecer a Ken Rubin por ter lido o rascunho inicial
deste livro e por suas sugestões de melhorias (com as quais farei um
trabalho melhor no próximo livro) e por sua perspectiva geral sobre ele.
Existem muitos outros cujo trabalho e as ideias me ajudaram ao longo da
minha jornada Ágil pessoal como: Jurgen Appelo, Lyssa Adkins e Barry
Boehm e Richard Turner, que me deram oportunidade de dar uma rápida
olhada em seus livros;
Kent Beck, é claro, através de seu livro Programação eXtrema (Xp)
Explicada, me levou na direção que me trouxe a esse ponto da minha
carreira;
Sempre apreciei Alistair Cockburn por pensar de maneira ágil toda vez
que eu lia o que ele escreve ou fala;
Existem pessoas como Mary e Tom Poppendieck, Robert Galen, Roman
Pichler, Brian Marick, David Anderson, Ken Schwaber, Jeff Sutherland,
Scott Ambler e muitas pessoas cujos livros, palestras, blogs e vídeos vêm
oferecendo orientação ao longo dos anos.
E, antes de encontrar o Manifesto Ágil, durante meus dias ‘sequenciais
em fases’, especialmente 14 anos no ambiente da Bell, havia o trabalho
de Barry Boehm, Tom DeMarco, David Parnas, Gerry Weinberg e Fred
Brooks, para mencionar apenas alguns.
Finalmente, meus agradecimentos a: Ben Linders, que mostrou o interesse
inicial em publicar este livro e ofereceu muita ajuda ao longo do caminho;
Lawrence Nyveen por sua revisão editorial; Ana Ciobotaru e Dragos
Balasoiu por seu trabalho na capa deste livro e outros detalhes de
publicação.
Introdução à Edição Brasileira
O Manifesto Ágil
A seguir veremos três componentes do manifesto que apoiam como
compreendemos as declarações de valor: as duas primeiras declarações,
9
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Declarações iniciais
O primeiro parágrafo do Manifesto Ágil diz que “Estamos descobrindo
maneiras melhores de desenvolver software, fazendo-o nós mesmos e
ajudando outros a fazerem o mesmo. Através deste trabalho, passamos
a valorizar…”. Todas as pessoas presentes na reunião que resultou o
manifesto tinham experiência direta no desenvolvimento de software,
ninguém era puramente acadêmico ou pesquisador. O que se encontra
no manifesto, portanto, baseia-se na experiência prática, não teórica.
Segundo os presentes, essa experiência os levou a acreditar em quatro
pontos fundamentais: os valores.
Declaração final
Lembro-me de ter lido artigos no início dos anos 2000, nos quais as
pessoas sugeriam ou diziam abertamente que os autores do manifesto
não defendiam nenhum processo ou ferramentas, documentação,
contrato ou planejamento. Essas declarações mais explícitas pararam
há algum tempo, entretanto, podemos ouvir esse mesmo sentimento
expresso em declarações como: “Não se pode fazer <algum aspecto do
desenvolvimento> sem <alguns processos, ferramentas, documentações,
contratos ou planos específicos>”.
Claro, o manifesto não diz que você deve fazer sem essas coisas. A
declaração final diz: “Ou seja, mesmo havendo valor nos itens à direita,
valorizamos mais os itens à esquerda”. O manifesto reconhece o valor
dos processos, das ferramentas, da documentação, dos contratos e dos
planos, ao mesmo tempo em que afirma que os autores acreditam que
há maior importância em indivíduos e interações, software funcionando,
colaboração com o cliente e resposta a mudanças. Compreender os níveis
de prioridade são questões importantes.
Mais que
Perceba que as palavras que formam conexões entre cada declaração de
valor são “mais que”. Não significa “em vez de”, “excluindo”, “sem” ou
alguma outra forma de eliminação. As palavras “mais que” implicam uma
10
VISÃO GERAL
Desde o manifesto
Ao longo dos anos as pessoas se propuseram a atualizar o Manifesto Ágil
tratando de pontos que a comunidade sentia que os autores originais
haviam perdido ou estavam desatualizados. Também ouvi afirmações
que diziam que o manifesto era “livre de conteúdo”, o que o torna fácil
em concordar pois não se compromete com nada específico. Quem não
deseja interação efetiva entre pessoas, software que funciona, colaboração
com clientes e capacidade de responder a mudanças? Mas como ouvi (e
li) pelo menos um autor do manifesto dizer, isso foi uma declaração do
que aquelas 17 pessoas na sala, durante aqueles quatro dias, em 2001
acreditavam na época. Como tal, o Manifesto Ágil (ou qualquer manifesto)
não é algo que você atualize. Novas ideias aparecerão, serão perseguidas e
podem oferecer uma orientação útil sobre o que considerar para se tornar
e buscar a agilidade. Em particular, duas maneiras interessantes de pensar
11
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
sobre o que significa ser ágil e buscar agilidade são o Heart of Agile, de
Alistair Cockburn, e o Modern Agile, de Joshua Kerievsky.
Voltarei a esses dois no final do livro e mencionarei os comentários feitos
por Kent Beck em 2010.
O próximo capítulo
Espero que esta visão geral tenha despertado interesse para ler mais.
O próximo capítulo abordará as considerações fundamentais de
comunicação, colaboração, comprometimento, melhoria contínua,
confiança e excelência indicadas acima.
12
CAPÍTULO 2
Algumas considerações
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Comunicação
Cada valor no manifesto é afetado pela comunicação, apesar das formas
se diferenciarem:
• Parece impossível esperar interações positivas entre indivíduos sem
uma comunicação efetiva, isso requer receptividade e transparência
no relacionamento. Significa assumir o risco de estar errado na frente
de outras pessoas quando ideias e informações fluírem livremente
para todas as direções. Significa perguntar mais do que afirmar e ser
inclusivo (“nós”) mais que acusativo (“vocês”).
• Entregar software funcionando certamente requer comunicação
efetiva entre as pessoas, mas também entre o software e as pessoas.
Isso requer design, desenvolvimento e práticas de teste que expõe
o que está acontecendo com o software em qualquer estágio de sua
criação. Conhecer a estabilidade do seu sistema a qualquer momento
encoraja a experimentação, constrói a confiança, elucida a qualidade
e torna as mudanças menos arriscadas.
• A colaboração positiva com os clientes, ou qualquer outra parte
interessada, é apenas uma instância da interação entre indivíduos,
dessa forma, poderíamos prosseguir sem dizer que isso requer
comunicação efetiva. Mas é uma obrigação dos dois lados, os clientes
devem entender que para ter o benefício da abordagem ágil, devem
se envolver na abordagem em vários pontos, provendo feedback e
clarificação, e mesmo orientação quando necessária.
• Finalmente, é difícil imaginar como responder às mudanças de forma
satisfatória sem a comunicação efetiva entre todos os que conhecem
o produto, têm ideias de melhoria e serão afetados por essa mudança.
Discussões de escopo flexível e os impactos da mudança devem incluir
14
ALGUMAS CONSIDERAÇÕES
Colaboração
Colaboração é certamente um aspecto da comunicação eficaz. Muitas
pessoas que trabalham em equipe acreditam que estão colaborando
quando provavelmente estão apenas cooperando. Não há nada de errado
com a cooperação, mas colaborar vai além de cooperar. Alguém pode
cooperar sem colaborar.
“Cooperar” significa operar juntos, funcionar em conjunto. Ideia que
pode ocorrer com interação limitada. Indivíduos podem ter suas próprias
tarefas determinadas, trabalhar para concluírem-nas e querer ajudar
os outros quando puderem. Entretanto, os indivíduos podem focar
essencialmente na conclusão das tarefas individuais, esperando que os
outros façam o mesmo. Ou seja, as pessoas podem cooperar sem assumir
qualquer responsabilidade por outro trabalho além do seu.
“Colaborar” significa trabalhar juntos. Envolve deliberadamente
compartilhar o trabalho e a responsabilidade, é o comprometimento
para concluir algo. Isso significa estruturar as tarefas para que as pessoas
possam trabalhar próximas umas das outras realizando planejamentos,
estimativas, comprometimento, desenvolvimento e os testes. Também
significa que a comunicação deve ser mais direta e frequente, a qual não é
sempre necessária na cooperação.
A conexão da colaboração entre interações individuais e o trabalho
com os clientes parece óbvia. Conseguir software funcionando e
responder às mudanças são um pouco mais nebulosas, mas não muito.
Conquistar ambos é mais efetivo quando existe colaboração e não apenas
cooperação. Ter software funcionando pode ser mais difícil quando há
uma mentalidade de “não interferência” entre silos de habilidades.
Assim como responder à mudança pode ser menos efetivo sem uma
posição colaborativa, as pessoas podem, mesmo sem a intenção de
impactar negativamente os outros, subestimar a mudança de forma que
melhorem ou mantenham suas próprias situações enquanto pioram a
situação de outras. Por exemplo, em uma situação onde os departamentos
de uma empresa são ordenados a cortar seus orçamentos em certa
porcentagem para o próximo ano. Em uma de minhas experiências, o
15
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Comprometimento
A comunicação e a colaboração são mais facilmente melhoradas quando
as pessoas veem o comprometimento uns dos outros para realizar
o trabalho no menor tempo possível. Mas esse comprometimento é
de fato aceito quando a comunicação eficaz e a colaboração existem.
Um requisito para isso é que as pessoas assumam o trabalho que estão
realizando e se comprometam com as entregas; esses compromissos, por
sua vez, não devem ser impostos. Falarei mais sobre o assunto ao abordar
equipes autogerenciáveis em um capítulo mais à frente, mas para resumir
as pessoas devem:
• Fazer suas próprias estimativas do trabalho a ser concluído;
• Definir suas próprias tarefas de trabalho e quem pode/irá executá-las;
• Concordar com acordos de trabalho compartilhados, incluindo
padrões de qualidade e práticas;
• Gerenciar e rastrear seu próprio progresso para completar o trabalho.
16
ALGUMAS CONSIDERAÇÕES
Melhoria Contínua
Possivelmente, ao nos tornar ágeis, nada é mais importante que a busca
pela melhoria contínua. Na verdade, o ciclo de vida básico do ágil inclui
isso através da retrospectiva ao completar cada iteração de trabalho.
Infelizmente, algumas vezes, essa é uma etapa pulada do ciclo de vida,
seguido do planejamento (planning) e das reuniões diárias de acordo com
pesquisas da Version-One.
Uma variedade de coisas pode contribuir para essa jornada, mas a chave
são as ideias de melhoria trazidas pelas pessoas. Infelizmente, após listar as
possibilidades de mudança, essas ideias não são tratadas como itens sérios
de trabalho. Elas não são priorizadas, estimadas ou incluídas no esforço
de trabalho para a próxima iteração. Com isso, a próxima retrospectiva
ocorre e as mesmas ideias são levantadas.
Outra razão é que as pessoas sentem que não há tempo para conduzir a
retrospectiva por conta da pressão de prosseguir com o próximo conjunto
de requisitos do cliente. Claramente, o tempo e o esforço que conduzem
às melhorias devem mostrar benefícios, mas provavelmente não irão se as
pessoas não sentirem que podem dispor de tempo para tentar.
Para finalizar, ouço as pessoas dizendo: “Tudo foi perfeito nessa iteração,
portanto não há nada para mudar”. A retrospectiva é sobre melhoria, não
apenas para “consertar” as coisas. A menos que uma equipe nunca gere
defeitos, que tenha estimativas sempre exatas e seja totalmente produtiva,
sempre há algo que pode ser melhorado. Não é necessária uma grande
mudança, a ideia é ter a melhoria contínua como um hábito, chamado de
kaizen no lean. Todos os valores e princípios do Manifesto Ágil podem ser
mais efetivamente implementados de uma forma ou de outra em qualquer
organização.
17
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Confiança
É dito que a confiança se ganha aos centavos e perdida em dólares, ou
seja, é difícil de conseguir, mas fácil de perder. Provavelmente nada é mais
prejudicial para um grupo do que a falta de confiança dentro dele ou dos
outros ao redor dele. Infelizmente, as práticas comuns de gerenciamento
de projeto são sempre baseadas ou conduzidas em algum aspecto da falta
de confiança. Porém, sem confiança, a comunicação aberta e a colaboração,
simplesmente não acontecem. As pessoas não buscarão novas ideias ou
tentarão novas maneiras de trabalhar se não sentirem que podem esperar
apoio dos outros quando fizerem.
Existem frases como: “Confiamos em Deus, para todo o resto tragam-
me dados”, “Confie em Deus, mas amarre seu camelo” e “Confie, mas
confirme”. A confiança não acontece automaticamente entre as pessoas,
pode-se presumir confiança até algum problema surgir, então o
apontamento de dedos é iniciado. É realmente difícil confiar em alguém
que não se teve uma experiência de trabalho positiva, e que não tenha
“dados” sobre essa pretensão. Somente a efetividade, a comunicação
deliberada, a colaboração e o comprometimento de todas as pessoas
trabalhando juntas podem prover esses “dados”, contribuindo fortemente
para criar a confiança.
Excelência
Por fim, há o desejo de se atingir excelência e não podemos assumir
excelência de todo mundo, mas podemos esperar que persigam
colaborativamente utilizando a melhoria contínua. A verdadeira
excelência pode ser, ou pelo menos parece ser, um alvo distante, mas
buscá-la é certamente razoável. Um problema frequente é decidir o que
significa excelência em um grupo de trabalho e como buscá-la. Acordos
de trabalhos estabelecidos e práticas de qualidade junto com o uso de
retrospectivas devem tornar essas decisões mais fáceis, ao mesmo tempo
em que constroem confiança.
18
CAPÍTULO 3
Indivíduos e Interações
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Indivíduos e interações
Acredito que qualquer pessoa que tenha trabalhado com outras pessoas,
seja no dia-a-dia ou em projetos, para um grupo comunitário local ou
até mesmo em um esforço familiar, concordaria que as interações dos
indivíduos dentro do grupo impactaram significativamente no resultado.
Se houver comunicação eficaz, colaboração e confiança entre as pessoas
em tais situações, elas provavelmente conseguirão superar muitas
limitações no processo, do ambiente e das ferramentas. Aqueles que
supervisionam ou gerenciam tais esforços devem considerar prioritário
que tal comunicação, colaboração e confiança existam e que, como
supervisores ou gerentes, protejam e encorajem essa existência.
Entretanto, o grande desafio deste processo no ambiente de trabalho é
que muitas equipes são distribuídas. De fato, em todas as empresas que
trabalhei como coach ou treinador na última década tinham equipes
distribuídas. O sexto princípio diz que, “O método mais eficiente e eficaz
de transmitir informações para, e dentro de um time de desenvolvimento,
é através de uma conversa cara a cara”. No entanto, as equipes localizadas
no mesmo ambiente frequentemente não usam este modelo com padrão.
Embora aborde as equipes distribuídas nos próximos capítulos, este é
certamente um ponto apropriado para iniciar essa discussão, considerando
os desafios para a comunicação, a colaboração e a confiança gerados pela
distribuição das equipes.
A maioria das pessoas pensam na distribuição como uma questão de
tempo e distância. Alistair Cockburn, no Capítulo 3 do livro Agile
Software Development, observa que o que importa é “a quantidade de
energia necessária para as pessoas trocarem ideias”. A comunicação
direta entre pessoas, cara a cara, pode ser desencorajada a distâncias
surpreendentemente curtas, se houver mais de 30 metros por exemplo. Se
a energia e o tempo que leva para parar o que estamos fazendo, se levantar e
ir até a outra pessoa é percebido como sendo muito grande, simplesmente
não fazemos. Nos comunicaremos como se fossem quilômetros ou como se
tivéssemos em continentes separados usando várias ferramentas baseadas
em texto. Curiosamente, as pessoas que reconhecem a distribuição em
grandes distâncias e tempo usam tecnologias que permitem se comunicar
20
INDIVÍDUOS E INTERAÇÕES
visualmente, como Skype, Google Hangout, Webex etc., mas talvez nunca
pensem em fazer isso localmente quando não estão dispostas a se levantar
e visitar outra pessoa.
Cockburn mostra a Figura 1 no livro Agile Software Development,
representando a “descoberta” de pesquisadores como McCarthy e
Monk (1994) quando mediram a qualidade da comunicação mediada
por computador. Falaremos mais sobre isso no Capítulo 12 quando o
sexto princípio for discutido. Por enquanto é importante observar que o
eixo vertical indica a eficácia do modo de comunicação de informações,
enquanto o eixo horizontal indica o impacto da comunicação)
2 people
at whiteboard
COMMUNICATION EFFECTIVENESS
2 people
on phone
ER
S
W
AN
D
Videotape AN
N
TIO
UES
Q
2 people
on email
ER
Audiotape SW
- AN
Paper TION
NO QUES
Processos e ferramentas
Muitas ferramentas permitem que as pessoas as abram e analisem o
status do trabalho em equipe sempre que quiserem saber alguma coisa ou
quando a ferramenta emite alertas sobre as novidades.
21
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Comprometendo-se
com a interação
O importante é que haja o comprometimento com a interação, a
comunicação e o clima de equipe como um todo. Caso essa seja uma
tarefa difícil talvez seja interessante recorrer à troca de documentos, pois
ao dividir o trabalho, as pessoas não precisam necessariamente interagir.
Buscar maneiras pelas quais as pessoas possam compartilhar o trabalho
é na verdade uma forma de colaborar ao invés de apenas cooperar. De
acordo com uma das pesquisas anuais da VersionOne, cerca de 20%
dos entrevistados dizem que procuraram a agilidade para ajudá-los a
gerenciar melhor as equipes distribuídas, enquanto 61% disseram que, de
fato houve benefício ao adotar o método ágil. Acredito que isso se deva
ao compromisso de trabalhar a comunicação entre os membros e entre as
equipes. É um desafio, estando distribuído ou colocalizado, mas ser ágil
faz com que isso seja esperado de nós.
Um experimento
Aqui temos um experimento mental, ou talvez um exercício prático que
pode ser aplicado em um grupo de pessoas. Pense em alguma experiência
muito positiva na qual trabalhou com um grupo e em seguida anote
as características que a tornaram positiva em sua memória. Por fim
categorize como:
• Pessoas - Interações entre você e os indivíduos do grupo;
• Cultura - As suposições, acordos, atitudes e expectativas gerais do
grupo/organização;
• Processo - O(s) caminho(s) organizados pelo grupo de trabalho que
você criou e configurou;
• Ambiente - O ambiente físico real em que trabalhou;
• Ferramentas - As ferramentas, manuais ou eletrônicas, que usou para
fazer o trabalho.
Agora precisamos procurar o padrão agrupando as memórias a partir dessa
experiência. Onde essas características se enquadram nos agrupamentos?
(Se fizermos isso com um grupo inteiro, precisaremos escrever as ideias
em post-its e os colocar em um quadro ou parede com os títulos listados
para que todos possam ver o conjunto total de agrupamentos). O que isso
nos diz sobre a razão da experiência ser memorável?
22
CAPÍTULO 4
Software Funcionando
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Alguém quer software que não funciona? Mas o que significa estar
funcionando? Significa não ter defeitos, certo? Significa ter sido
completamente testado, correto? A abordagem ágil para a qualidade espera
que no final de cada iteração de trabalho a equipe perceba a qualidade no
software produzido. Isto é, que pode ser colocado em produção sem que
a equipe se preocupe com as falhas no software quando confrontado com
as expectativas do cliente. A equipe deve estar confiante no tocante da
qualidade acerca do que produziram e não apenas com base na ausência
de defeitos.
Para ser totalmente útil em produção, todos os guias de usuário,
procedimentos de instalação, sistemas de ajuda, entre outros, devem
também estar completos, já que, sem esses artefatos a utilização do
software pode ser impossível, mesmo sem defeitos. O software não irá
“funcionar” na perspectiva do usuário final se o mesmo não puder usá-
lo, independentemente de quão livre de defeitos o software esteja. Da
perspectiva ágil, o “software” inclui a documentação necessária para o
usuário. Essa documentação é parte do que deve “funcionar”, tanto quanto
o código.
Mas voltando ao código, o que deve funcionar? Vamos olhar para um
simples exemplo do que um cliente pode requisitar: “Como cliente do
banco, quero uma lista de todas as minhas contas e balanços, para que eu
possa gerenciar minhas finanças”
Parece um requisito bem simples, porém vamos adicionar alguns critérios
de aceitação. Serão referenciados como Condições de Satisfação (CoS -
Conditions of Satisfaction).
• Quero a lista como uma lista pop-up acionável de qualquer parte do
sistema;
• Se a lista exceder 20 itens, quero ter uma barra de rolagem;
• Quero a lista ordenada por tipo de conta ou por saldo;
• Quero poder escolher a ordenação por saldo e em seguida por conta,
se assim desejar;
• Quero poder ver datas limites e requisições de pagamentos em contas
de débito (ex.: cartões de crédito, empréstimos).
• Quero ordenar por data limite ou pagamento requerido, quando
forem exibidos;
• Quero adicionar outros campos em cada item como <imagine outros
campos>;
24
SOFTWARE FUNCIONANDO
• Quero filtrar a lista por tipo de conta, saldo, data limite ou pagamento
requerido para diminuir a lista exibida;
• Quero poder pesquisar dentro da lista..
O software “funciona” se quaisquer das Condições de Satisfação não
funcionarem ou não existirem? Se implementarmos o requisito básico
e funcional, verificarmos que funciona, e então implementarmos cada
um dos CoS, e verificando seu êxito conforme cada adição, o software
“funcionará”? Do ponto de vista da qualidade, pode ser dito que o software
é funcional. E se um cliente tivesse uma parcial utilizável de cada CoS já
que o conjunto como um todo irá “funcionar” no curto prazo? Os clientes
irão preferir um incremento útil mais cedo do que mais tarde. Nem todas
as solicitações iniciais estariam lá, mas eles teriam o suficiente para ser
utilizado. E mais tarde, teriam muito mais do que requisitaram.
Para começar a equipe pode, dependendo do tamanho da iteração,
entregar as três primeiras funcionalidades e então adicionar duas novas
funcionalidades na iteração seguinte, seis na próxima e assim por diante.
Ao final de cada iteração, uma nova funcionalidade pode ser colocada em
produção à medida que o cliente, incrementalmente, tem mais softwares
funcionando.
Discutir o que faz o software minimamente viável pode fazer com que o
cliente tenha algo útil em vez de esperar por tudo no final do processo.
Isso é parte da ideia ágil para ordenar o trabalho baseado em valor ao
cliente e trabalhar para entregar resultados de alto valor mais cedo, de
forma frequente, durante um ciclo de lançamento ou projeto. Isso coloca
a decisão sobre o que constitui um lançamento viável nas mãos do cliente
ou no negócio e não na equipe de desenvolvimento. A equipe apenas
adiciona a próxima funcionalidade de maior valor e o cliente diz quando
está funcionando o suficiente para ser lançado.
25
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
26
SOFTWARE FUNCIONANDO
Documentação Compreensiva
Manuais de usuário, guias de instalação, sistemas de ajuda, são
considerados parte do “software” na perspectiva ágil. A documentação
“compreensiva” mencionada por esse valor é interna, os formulários de
documentação de sistema geralmente não são usados uma vez que um
projeto ou lançamento é realizado. A justificativa que pode certamente ser
feita é que a documentação detalhada é importante para o histórico, mas
pode não ser a melhor forma de comunicação entre as pessoas ativamente
desenvolvendo o sistema. Essa documentação “compreensiva” pode
contribuir com o próximo projeto ou entrega, mas o objetivo imediato
é entregar os requisitos o mais rápido e o mais barato que o nível de
qualidade e confiabilidade possam permitir.
Muito anos atrás, estava em uma conferência e Barry Boehm falou sobre
as “bibliotecas de memória” que viu em diversas empresas, estantes e mais
estantes preenchidas com documentos e que as únicas pessoas interessadas
eram os auditores quando precisaram verificar o que aconteceu, isso
quando não estavam ali para ver com os próprios olhos. Se estamos
gerando qualquer volume de documentação, devemos aceitar o custo
total de propriedade (TCO - Total Cost Ownership) fazer o investimento
para manter a documentação atualizada. Como desenvolvedor, descobri
muitas vezes que não podia confiar na documentação, porque ela não
correspondia ao código. Utilizo uma semana, às vezes, tentando debugar
um problema ou adicionar uma funcionalidade, acreditando no texto da
documentação, utilizando tanto a de fora quanto a de dentro do código.
Uma vez trabalhei onde, ao invés de atualizar a documentação original para
corresponder ao novo trabalho, as pessoas criaram adendos que apenas
continham as alterações feitas. Após alguns anos, se você quisesse usar ou
confiar na documentação, teria de ler de 6 a 8 documentos, o original e
diversos adendos. Eventualmente, as pessoas apenas não se importavam
com isso, o que levava a não ligar para a documentação como um todo
depois de um tempo. A velha visão centrada no desenvolvimento, na qual
você precisava ler o código para saber o que o sistema faz, se perpetuava
como sendo a única “documentação” confiável.
Obviamente que a abordagem ágil não significa rejeitar toda
documentação, a ideia é trabalhar de forma que a documentação tenha
valor “sustentável”. Por “sustentável”, queremos dizer que a documentação
deve ser considerada com mesmo valor para quem cria, para os
desenvolvedores de software que prezam
27
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
28
CAPÍTULO 5
Colaboração com o Cliente
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Como mencionado no Capítulo 2, esse valor pode ser visto como uma das
formas de interação entre indivíduos, mas acredito que seja uma situação
diferente de como as pessoas, na organização interagem e qual deve ser
o conteúdo dessa interação. A colaboração com os clientes é focada na
perspectiva sobre “o quê” do trabalho ao invés do “como”. Ou seja, o
foco é no “o quê” os clientes querem como funcionalidade e o que vão
precisar ver como evidência para que a funcionalidade seja considerada
satisfatória.
Para isso, os clientes devem trabalhar mais no “como” na mesma proporção
que tentam definir “o quê”. É comum, com o tradicional documento de
requisitos, entrar em detalhes sobre “o quê” e “como”. Novos clientes com
a abordagem ágil podem requerer os dois, podendo considerar ainda
mantê-los separados para isolar sua habilidade de definir os requisitos. A
abordagem ágil recomenda não se aprofundar no “como” logo no início
dos trabalhos por algumas razões:
• Isso pode significar utilizar muito tempo em algo que não será
desenvolvido, pois os clientes mudam suas intenções no decorrer do
desenvolvimento;
• Mesmo que seja desenvolvido, as pessoas saberão mais sobre o que é
necessário conforme se aproximam da decisão que terão de tomar. A
abordagem ágil recomenda esperar até “o último momento” antes de
um comprometimento, assim teremos o máximo de conhecimento
possível no momento da decisão;
• Ao chegar no tempo de desenvolvimento, podemos encontrar
restrições desnecessárias nas decisões. Alguém pode, por exemplo,
espremer 5kg de batatas em um saco de 2kg, mas não podemos
esperar batatas fritas depois disso;
Todos esses pontos também são boas razões para não termos detalhamento
do “o quê” tão cedo.
É importante que os clientes enxerguem valor em uma comunicação
aberta e frequente sobre o que querem e aquilo que o desenvolvimento
pode mostrar em funcionamento como uma maneira de reduzir riscos e
aumentar a satisfação com os resultados..
Quando presenciei organizações forçadas a trabalhar com clientes, tanto
internos quanto externos, e que não aceitaram isso, houve um estresse
notável de ambos os lados. Mais de uma vez ouvi a equipe de negócios
dizer que não tinha tempo para reuniões frequentes, mas que “precisavam
de tudo pronto no prazo” e não queriam usar o tempo para priorização.
30
COLABORAÇÃO COM O CLIENTE
Nem sempre funciona, mas minha argumentação básica com eles é mais
ou menos assim:
“Vocês sempre conseguem tudo o que querem na data final do projeto?”
Eles olham para mim como um inocente e dizem, “Quase nunca.”
“Mas vocês sempre conseguem as coisas mais importantes nessa data
final, correto?”
Agora olhando como se eu fosse realmente inocente, “Não. Geralmente
não.”
“É por isso que pedimos priorização e feedback constantes, dessa forma,
se houver problemas todas as funcionalidades de maior valor possível e da
forma que querem serão entregues no prazo estabelecido.”
Algumas vezes a discussão cessa neste momento.
Negociação de contratos
Infelizmente muitos contratos parecem ser escritos, não para descrever
como o fornecedor e o cliente irão trabalhar juntos para o sucesso,
mas para definir punições para quando uma das partes falhar com suas
responsabilidades. Isso não parece uma maneira de estabelecer uma
relação de colaboração particular entre as pessoas. Os contratos também
parecem ser baseados na crença de que tudo o que é necessário deve
ser definido antecipadamente. Uma abordagem mais incremental para
definir como o trabalho será feito e como as pessoas irão trabalhar juntas,
colaborativamente, para produzir os resultados mais satisfatórios deve
ser a parte crítica de qualquer contrato.
De uma perspectiva ágil, o cliente e a fornecedora da solução devem
explorar as expectativas para a participação do cliente, nos seguintes
momentos:
• No processo iterativo de requisitos (ex.: user stories), definição e
refinamento;
• Na resposta rápida a questões durante o lançamento ou no projeto
para clarificar expectativas de funcionalidade;
• Na definição de critérios de aceitação (condições de satisfação) para
cada requisito;
31
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
32
CAPÍTULO 6
Responder a Mudanças
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
34
RESPONDER A MUDANÇAS
Seguindo um plano
Há uma abundância de literatura relacionada ao ágil sobre as dificuldades
e potenciais desperdícios de planejamentos detalhados de longo prazo ao
trabalhar em situações complexas em que mudanças são inevitáveis e a
habilidade de prever o resultado desejado exato é limitado.
Considere a abordagem típica de criação do plano do projeto de distribuir
um documento de requisitos detalhado e pedir às pessoas para estimar,
em horas, todas as tarefas necessárias para produzir o resultado descrito.
Esse processo leva muitas horas por si só. Eventualmente, todos esses
dados são enviados a um gerente de projetos que alimenta um sistema de
gerenciamento de projetos e, em um determinado momento, um plano
de projeto passa a existir. O plano diz, por exemplo, “Em sete meses, na
quarta-feira às 15h, a tarefa XPTO vai ser realizada”. Quem acreditaria
nisso? Quem garante que a pessoa que forneceu aquela informação vai
produzir o resultado daquela tarefa naquele dia? Todo mundo sabe que as
coisas mudam e o gerente de projetos usa um tempo considerável a cada
semana ajustando o planejamento.
Tudo isso pressupõe que todos entenderam o que está descrito e que o
plano descreve o que o cliente quer, porém é justo requisitar (ou presumir)
que as pessoas, especialmente o cliente, podem compreender tudo e como
deve funcionar antes de qualquer modelo ou trabalho funcionando?
Assim como presumir esse conhecimento futuro, também podemos
esperar que uma vez que o esforço considerado em fazer toda essa
definição e planejamento esteja completo (o que em algumas estimativas
pode consumir mais de 50% do cronograma do projeto), nada importante
pode ser alterado, ou ainda mais crítico, aprendido?
35
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
36
CAPÍTULO 7
Satisfação do cliente
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
38
SATISFAÇÃO DO CLIENTE
39
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
40
SATISFAÇÃO DO CLIENTE
41
CAPÍTULO 8
Abraçar as mudanças
ABRAÇAR AS MUDANÇAS
Vantagem competitiva
para o cliente
É apropriado que este seja o segundo princípio listado. Parte da satisfação
dos clientes envolve fazer coisas que ofereçam vantagem competitiva aos
seus negócios. Construir sistemas corretos, que seguem os requisitos por
exemplo, é o jeito mais básico de realizar isso, porém o que é o “correto”
pode mudar a todo momento e isso geralmente significa ter que alterar o
sistema em algum ponto. Vale lembrar que alterar um sistema, incluindo
a implementação do requisito, fornece valor ao cliente. O ponto desse
princípio é considerar seriamente os pedidos de mudança, ao invés de
simplesmente contestar, o foco é possibilitar maior vantagem competitiva
ao cliente.
43
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
44
ABRAÇAR AS MUDANÇAS
Ao final do desenvolvimento
Se os desenvolvedores não gostam de alterações, gostam menos ainda ao
final de um lançamento/projeto. Um sistema bem desenhado e facilmente
testado significa que, mesmo com mudanças tardias (considerando
o entendimento e a aceitação das consequências) não deverão causar
grandes preocupações. A natureza iterativa do desenvolvimento
ágil permite oportunidades consideráveis para revisar o estado do
sistema e fazer mudanças mais cedo, ao invés de mais tarde, através da
oportunidade de ver e fornecer feedback sobre o software funcionando
no fim de cada iteração. Esse geralmente não é o caso em uma abordagem
mais “sequencialmente faseada” (um termo bonito para “cascata”) em que
o verdadeiro estado e adequação do sistema não é visualizado até o fim do
desenvolvimento.
A aversão às alterações e principalmente alterações tardias, deriva da forma
tradicional de desenvolvimento, e mudanças acontecem. Muito tempo e
orçamento foram gastos criando e implementando requisitos detalhados.
Muitas suposições de design têm sido baseadas em entendimentos iniciais
dos requisitos. Mudanças tardias geralmente significam que bastante
tempo e orçamento será gasto para retornar e atualizar e corrigir entregas
intermediárias, não apenas o código em si. Enquanto isso acontece, o
45
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
46
CAPÍTULO 9
Entrega contínua
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Entregar frequentemente
software funcionando
O Capítulo 7 discutiu a “entrega contínua e adiantada” e no Capítulo
4 falamos sobre o software em funcionamento. A “frequência” está
implícita na entrega contínua quando falamos: “Entregar o software
em funcionamento para o cliente o mais rápido possível e continuar a
fazer isso a cada iteração...”. O que não comentamos foi quanto tempo
uma iteração teria. Grande parte dos líderes e agile coaches que conheço
incentivam os clientes a considerar iterações de no máximo duas semanas.
O que não era o caso quando o Manifesto Ágil foi escrito.
De poucas semanas
a poucos meses
Quando o Manifesto Ágil foi escrito, as várias abordagens consideradas
“leves” tinham ciclos de uma semana até três meses. Dessa forma, isso
me parece mais um compromisso entre todas as pessoas envolvidas.
Considerando que metade dos participantes trabalhassem com Extreme
Programming (XP), Scrum e outras abordagens, podemos acreditar
que uma frase como “de uma a quatro semanas” poderia ser algo que os
deixasse todos felizes. No entanto, isso não deve ter funcionado para
todos.
48
ENTREGA CONTÍNUA
49
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
50
CAPÍTULO 10
Trabalho colaborativo
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Pessoas de negócios e
desenvolvedores
O termo “pessoas de negócio”, pode incluir pessoas que estão interessadas
no projeto, como cliente, usuário final, product owner, gerente de
projetos, gerente de produtos, executivos, analistas de negócios ou
especialistas no assunto. Às vezes chamamos genericamente de “cliente”.
É alguém que deseja criar uma certa quantidade de funcionalidades
e que comunica as ideias para aqueles que criarão essa funcionalidade.
Essas pessoas possuem a visão e o roadmap do projeto, criam e reúnem
requisitos, ajudam a gerenciar o backlog de requisitos, fornecem critérios
de aceitação, elaboram detalhes dos requisitos e fornecem feedback sobre
o trabalho realizado pela equipe de desenvolvimento.
As equipes ágeis mais antigas consistiam principalmente, quando não
completamente, de desenvolvedores de software que faziam o design,
escreviam o código, testavam e documentavam os resultados. Portanto,
o termo “desenvolvedor” passou a representar qualquer pessoa em
uma equipe que contribua com esforço real para algum aspecto da
funcionalidade da entrega. O Guia Scrum costumava dizer que o único
título em uma equipe de desenvolvimento era “desenvolvedor” para
enfatizar a prevenção de comportamentos isolados na equipe. A versão
mais recente diz: “O Scrum não reconhece títulos para os membros da
equipe de desenvolvimento, independentemente do trabalho que estão
realizando”.
Seria de se esperar que os membros da equipe tivessem títulos como:
desenvolvedor, analista de negócios, analista de qualidade ou testers,
escritor técnico ou especialista em documentação, designer de
experiência do usuário ou analista de banco de dados. Essas pessoas
têm a responsabilidade de estimar as histórias do usuário, ajudar no
refinamento da história (o que alguns chamam de “grooming de backlog”),
participar do planejamento da iteração, confirmar e cumprir as metas
da iteração, revisar e demonstrar as realizações de cada iteração com o
cliente e executar a melhoria contínua..
52
TRABALHO COLABORATIVO
53
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
54
CAPÍTULO 11
Indivíduos motivados
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Pessoas motivadas
A ideia aqui não é falar sobre como motivar as pessoas”, você provavelmente
já ouviu frases assim. Eu mesmo dei palestras como essas e quando me
pediram para fazer essa palestra certa vez em uma empresa, ouvi o melhor
comentário sobre esse tipo de abordagem.
Normalmente me sentava ao lado de um vice-presidente de
desenvolvimento de software, um dia depois de receber a solicitação para
fazer uma palestra como essa, e costumava ouvir algo como: “Scott, não
precisamos de palestras para motivar as pessoas. Precisamos descobrir
como parar de desmotivá-los. As pessoas não vêm trabalhar desmotivadas.
Contudo, o que fazemos após eles chegarem para trabalhar é fazê-los
acreditar que precisamos, de alguma forma, motivá-los.” Ele estava certo,
e embora ainda tenha feito a apresentação, ela se transformou mais em
um workshop sobre como evitar comportamentos desmotivacionais.
W. Edwards Deming, no livro Out of the Crisis escrito em 1986, comentou
que uma das partes de um dos 14 Pontos de Gerenciamento da Qualidade
Total, era “[...] remover as barreiras que roubam o orgulho do trabalho
das pessoas...” Caso não esteja familiarizado com o trabalho desse autor,
é necessário analisá-lo e entender o seu impacto na qualidade e na
produtividade. Os japoneses fizeram e respeitaram o que Deming lhes
ensinou e em 1951, o Japão nomeou seu prêmio nacional de qualidade em
homenagem a ele, o Prêmio Deming.
56
INDIVÍDUOS MOTIVADOS
O ambiente e o suporte
Se for solicitado às equipes que forneçam resultados de alta qualidade
aos clientes, às equipes devem receber tudo o que for necessário e todas
as oportunidades possíveis para fazer isso, simples assim. Entretanto,
costumava ouvir: “Mas você não conhece a nossa realidade”.
Tornar-se ágil significa mudar essa realidade, não apenas tentar introduzir
um monte de novas práticas que são quadradas, em uma abordagem
organizacional que é “redonda”. Essa é a razão pela qual acredito que uma
análise crítica sobre o que têm a dizer os valores e princípios ágeis é tão
importante para a empresa que está contemplando uma transformação
para ser (e fazer) ágil. Parte dessa análise já é uma transformação, não
apenas uma transição. Não se trata de uma simples introdução de novos
títulos e cerimônias, é uma mudança no ambiente e no sistema em que as
pessoas trabalham.
Às vezes, quando as pessoas pensam na expressão “ambiente”, imaginam
essas questões na estrutura física, mudando o espaço para locais de
trabalho sem paredes e mobília totalmente móvel. Existem várias críticas
a essas estruturas, já observei situações que funcionaram de forma
fantástica e outras que não tiveram tanto sucesso. Mas também observei
este tipo de organização em estruturas mais comuns de escritórios em
cubo. A ideia do espaço aberto era derrubar barreiras tornando a interação
e as comunicações mais frequentes, premissa básica nas equipes ágeis.
Nem todos se sentem confortáveis trabalhando em espaços abertos, mas
existem equipes que trabalham muito bem dessa forma. Se a motivação
para se comunicar, colaborar, melhorar, confiar e buscar a excelência
existe, as pessoas podem trabalhar em espaços físicos variáveis.
Confiar na equipe
Dentro dos princípios da agilidade, confiar na equipe talvez seja a
coisa mais difícil de se conseguir. Muito da estrutura e do processo
organizacional, como observado no Capítulo 2, parece existir porque a
confiança não está presente.
Antes de me envolver com métodos ágeis, trabalhei em um local onde
a visão de qualidade do presidente da empresa era a seguinte: “Algumas
57
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
58
INDIVÍDUOS MOTIVADOS
59
CAPÍTULO 12
Conversa face a face
CONVERSA FACE A FACE
Meios de comunicação
Esse diagrama foi mostrado no capítulo 3, mas vamos falar mais sobre
ele. Alistair Cockburn estudou as equipes e criou esse espectro dos meios
de comunicação e mostrou o que considerava ser a eficácia comparativa.
Existem outras versões do diagrama, que rotulam as duas linhas como
“interativas” e “não-interativas”. Claramente, os modelos com “perguntas
e respostas” são mostrados como tendo maior eficácia e riqueza de
comunicação.
2 people
at whiteboard
COMMUNICATION EFFECTIVENESS
2 people
on phone
ER
S
W
AN
D
Videotape AN
N
TIO
ES
QU
2 people
on email
ER
Audiotape SW
- AN
Paper ION
UEST
NO Q
61
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
62
CONVERSA FACE A FACE
Coding
63
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Equipes distribuídas
Este princípio não fala sobre onde as pessoas devem estar, apenas mostra
onde a comunicação mais eficaz ocorre. Se precisar conversar com
pessoas que não estão presentes no mesmo local, é mais interessante usar
algum tipo de vídeo chamada. Hoje em dia, não custa muito adicionar uma
câmera USB caso as pessoas não tenham um computador com webcam.
Tive uma experiência trabalhando com equipes que passaram meses sem
ao menos conhecer o rosto das pessoas com quem trabalharam. Minha
primeira sugestão foi que todos tirassem ao menos uma foto. Quando
essas equipes começaram a fazer vídeo chamadas, as mudanças nas
discussões se tornaram claras e observáveis. As pessoas perceberam que
estava tudo bem em se conectar, reconhecendo os olhares intrigados ou
preocupados. A atenção das pessoas, ou a falta dela, durante a reunião
podem ser notadas e elas podem ser convidadas a voltar sua atenção
64
CONVERSA FACE A FACE
65
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
66
CONVERSA FACE A FACE
Reuniões diárias
Existe muito material sobre o objetivo da reunião diária e o que ela não se
propõe a fazer, ou seja, o objetivo não é ser uma sessão de status reporting
e nem de solução de problemas. Pessoalmente, vejo como a oportunidade
de a equipe garantir que todos saibam o que está acontecendo dentro
da equipe e que ao ouvirmos possamos decidir se há a necessidade de
fazer alterações no planejamento da Sprint. No final da reunião, seria
interessante que todos os membros se sentissem confortáveis com o
plano até o final da iteração. Os tipos de informações que a equipe pode
coletar nestas reuniões são:
• O que cada pessoa fez desde a última reunião, o que planejam para o
dia e tudo que estiver impedindo os trabalhos (três itens clássicos e
recomendados para essa reunião);
• O estado do progresso da equipe usando alguma avaliação quantitativa
(por exemplo, um gráfico de burndown);
• Contribuições que podem solicitar de pessoas de fora da equipe,
estando ou não presentes na reunião.
Por fim, levantamos a questão de quem participa da reunião diária.
Normalmente é específica para a equipe de desenvolvimento, em conjunto
com o Scrum Master ou facilitador ajudando e principalmente mantendo
um “conjunto” de itens a ser discutido depois de atingir o limite de 15
minutos da reunião diária. As reuniões não são secretas, portanto, o PO e
demais pessoas de outras equipes que estejam presentes e até a gerência
podem participar.
67
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Revisões de iteração
Esta reunião é realizada no último dia da iteração, nela a equipe de
desenvolvimento mostra a todos os stakeholders o que realizaram
durante a iteração. É uma oportunidade para os stakeholders ouvirem da
equipe e darem feedback para os desenvolvedores. A equipe pode ouvir
diretamente dos stakeholders como se sentem em relação ao trabalho
apresentado. Qualquer alteração necessária pode ser identificada e
colocada no backlog do produto para iterações futuras. No entanto,
há algumas coisas que sugiro que as pessoas tenham em mente sobre a
reunião.
Geralmente, os membros da equipe demonstram seu trabalho, mas pode
haver ocasiões em que seja apropriado que o PO apresente, supondo que
tenha um contato direto e contínuo com a equipe e saiba como demonstrar.
68
CONVERSA FACE A FACE
69
CAPÍTULO 13
Software em
funcionamento… Outra vez?
SOFTWARE EM FUNCIONAMENTO… OUTRA VEZ?
Medindo o Progresso
O progresso em projetos tradicionais é medido em tarefas resolvidas do
plano de projeto e quão perto esta medida está da esperada finalização,
por exemplo, o número de tarefas concluídas e se foram finalizadas
na estimativa de tempo original. Em um projeto cascata, um número
substancial de tarefas serão cumpridas antes de ter qualquer software
em funcionamento, antes mesmo de uma funcionalidade ser desenhada,
codificada, revista, testada e documentada. Além disso, um cronograma
de projeto pode estar de dois terços a três quartos completo, com todas as
tarefas associadas, antes de qualquer software ser verificado e validado.
Uma abordagem de acompanhamento tradicional que relaciona tarefas
concluídas ao valor de projeto é a análise de valor agregado. De forma
simples, alguém atribui um valor em dólar para tarefas baseadas em horas
estimadas e um custo estimado para essas horas. Algo como decidir o
custo por hora paga a uma pessoa que executa tais tarefas multiplicado
pela quantidade de horas daquela tarefa. Ou algo como pegar o custo
total estimado do projeto, já calculado, e dividi-lo igualmente por todas
as tarefas com base no percentual de horas que cada uma representa no
projeto. Em todo caso, temos um valor para cada tarefa realizada. Assim
que uma tarefa é concluída, o valor é agregado ao projeto.
Porém isso não é, e não deveria ser sugerido, como valor entregue ao
cliente. Isso apenas significa que, dado que toda tarefa seja necessária, às
71
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Gráfico Burn-up
Uma forma de acompanhamento visual comum para isso é o diagrama de
burn-up. Abaixo, um exemplo simples.
35
25
20
15
10
0
day day day day day day day day day day
1 2 3 4 5 6 7 8 9 10
Figura 5: Burn-up
O eixo vertical representa story points enquanto o horizontal tempo, nesse
caso dias da iteração. A linha verde é um ideal ou linha base partindo de
zero story points no início da iteração ao total de pontos planejado para
a iteração, 35 pontos nesse exemplo. A linha azul acompanha o número
atual de pontos completados acumulados dia a dia na iteração.
72
SOFTWARE EM FUNCIONAMENTO… OUTRA VEZ?
73
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Definição de pronto
De forma breve, para afirmar que temos software em funcionamento,
é esperado que todos os critérios de qualidade estabelecidos sejam
cumpridos. Este conjunto de critérios é tipicamente chamado de
Definição de Pronto (Definition of Done). Se todos os critérios forem
cumpridos, todos da equipe concordarão que o requisito está concluído.
As equipes devem ter acordado esse conjunto de critérios (ao menos uma
versão inicial) antes de iniciar qualquer trabalho. Durante um projeto ou
lançamento, provavelmente a equipe ou alguns stakeholders vão querer
ajustar os critérios, no entanto, devemos revê-los formalmente como
parte da retrospectiva.
Exemplos de itens encontrados em definições de pronto devem focar em:
• Projetar tarefas a serem realizadas;
• Código necessário e padrões de código a serem usados;
• Testes unitários esperados;
• Revisões de pares ou outras a serem feitas;
• Documentação de usuário para criar e atualizar;
• Builds bem sucedidas e execução de testes;
• Critérios de aceitação dos clientes - muitas vezes chamados de
condições de satisfação;
• Expectativas de requisitos não funcionais, como performance e
segurança;
• Internacionalizações e preocupações de localização.
Esses critérios devem ser usados em qualquer requisito, apesar de alguns
não necessitarem de todos os pontos, e outros de critérios adicionais.
Atendendo aos critérios, o trabalho deve ser mostrado na próxima revisão
de iteração (review) para a aprovação dos clientes e das partes interessadas,
assim como os story points devem ser contados como concluídos. Essa
deve ser a medida de progresso, independentemente de outros possíveis
entregáveis que podem ter sido gerados para chegar nesse ponto.
74
CAPÍTULO 14
Desenvolvimento
Sustentável
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Desenvolvimento Sustentável
O desenvolvimento sustentável é uma abordagem que é conduzida sem
esgotar as pessoas com o tempo. O Ágil defende que se evite a realização
de horas extras por obrigação. Caso isso esteja ocorrendo, significa que
as pessoas não estão abordando o planejamento da maneira mais sensata.
Alguns podem dizer que isto está fora da realidade, pois não conhecem
a organização. Como citado no Capítulo 11, o modelo ágil não ignora a
realidade, mas tem a intenção de mudá-la.
Ter muitas horas extras na rotina para cumprimento do prazo não é um
bom sinal, isso não é uma peculiaridade da visão ágil. Em 1997 um dos
principais proponentes de metodologias de software clássicas apontou
quão comum era a então chamada “marcha da morte” dos projetos.
O Project Management Institute (PMI) também identifica que tais
abordagens não são desejáveis, citando um artigo que descreve diversos
sinais de problemas nos projetos relacionados à mentalidade da “marcha
da morte”.
De forma mais específica, um péssimo sinal é quando um projeto já
começa contando com horas extras para cumprir o prazo com todas as
funcionalidades esperadas. O que fazer quando o inesperado acontece
durante o projeto? De onde virá o tempo para lidar com isso? Incluindo
mais horas extras?
Tom DeMarco escreveu um livro interessante em 2001: Slack: Getting
Past Burnout, Busywork, and the Myth of Total Efficiency (Slack:
Superando o Burnout, a Falta de Tempo, e o Mito da Eficiência Total,
tradução livre), quando o movimento ágil estava apenas começando, onde
DeMarco discute carga e sobrecarga de tempo das pessoas e o que isso
significa para a eficácia, incluindo o impacto das multitarefas.
76
DESENVOLVIMENTO SUSTENTÁVEL
77
CAPÍTULO 15
Excelência Técnica
EXCELÊNCIA TÉCNICA
Atenção Contínua
Parte da urgência que as equipes ágeis são encorajadas a buscar inclui
o foco na melhoria contínua. As equipes ágeis e indivíduos devem
sempre pensar sobre o que podem fazer para melhorar a forma com que
trabalham e isso pode ocorrer a qualquer momento durante a iteração.
A retrospectiva é apenas uma forma de incluir esse foco como uma
parte formal no ciclo ágil. A ideia da atenção contínua significa sempre
um olhar mais abrangente, ou seja, analisar o que está acontecendo na
equipe sempre considerando como as coisas podem ser melhoradas. Por
exemplo, ao fim de cada dia de trabalho, os membros da equipe podem
reservar cinco minutos para considerar o dia e perguntar a si mesmos
o que podem fazer amanhã para ajudar mais a equipe. Podemos esperar
esse tipo de pensamento do facilitador da equipe, do Scrum Master, ou do
Product Owner, mas é algo que qualquer colaborador pode fazer.
Excelência Técnica
Uma melhoria crítica a considerar é como aumentar as habilidades
técnicas dos membros da equipe. Em uma das equipes em que trabalhei,
decidimos que gostaríamos de melhorar o desenvolvimento orientado
a objetos e para isso, decidimos usar o livro Código Limpo do Robert
Martin. No entanto o livro possui 464 páginas (na versão em inglês),
ou seja, não iríamos conseguir ler tudo isso de uma só vez, portanto
decidimos que cada membro da equipe iria pegar um capítulo, e durante
a iteração, preparasse uma apresentação com a essência daquele capítulo
no momento da retrospectiva. A equipe poderia utilizar a ideia na prática
durante a iteração seguinte, enquanto a próxima pessoa abordaria o
capítulo seguinte. Levamos diversas Sprints para cobrir os 17 capítulos
do livro, mas sentimos que esse tempo era muito valioso.
79
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
As práticas com testes são outra área onde se tornar melhor leva a maior
agilidade. Conseguir testar com mais facilidade e mais frequência encoraja
maior cobertura dos testes e ajuda a garantir que novas mudanças não
causem bugs no funcionamento existente. (Lembrando as duas empresas
usadas como exemplo sobre testes frequentes no Capítulo 8.) Com as
atuais IDEs, há um considerável suporte para as equipes, que podem
reduzir as possibilidades de defeitos escaparem da iteração e causarem
problemas e retrabalhos no projeto ou na release.
Bom design
Um “bom” design pode significar coisas diferentes para pessoas diferentes.
Uma forma da equipe buscar isso e evitar discussões sobre o que seria o
significado de “bom” é desenvolver e adotar um conjunto de padrões de
código para a equipe. Uma característica do que “bom” pode significar é
ter um código fácil de ser mantido com o passar do tempo - ou seja, as
pessoas podem ir ao código e fazer mudanças sem dificuldades devido
à estrutura e à forma como as coisas estão nomeadas. Elas terão então
menos preocupações em fazer tais alterações. Uma outra característica
do que é “bom” pode ser dado através da aderência a certos princípios de
design de orientação a objetos, os princípios SOLID que o Martin comenta
no livro “Código Limpo”. Por exemplo, há o princípio da responsabilidade
única, citado na Wikipédia como: “uma classe deve ter apenas uma única
responsabilidade (mudanças em apenas uma parte da especificação do
software, devem ser capazes de afetar a especificação da classe)”. Antes
da orientação a objetos se popularizar costumávamos falar sobre isso
preocupados com a coesão, que pode ser alta quando todas as partes do
módulo estão relacionados a fazer uma única coisa. Um princípio SOLID
relacionado é a inversão de dependência, o que costumávamos chamar de
acoplamento. O acoplamento é baixo quando um módulo não depende de
outros para realizar o trabalho. Isso permitiu mudanças nos módulos sem
impactar outras partes do sistema.
Independentemente de quais são os padrões, ter a equipe toda concordando
e constantemente observando e analisando as melhorias que podem ser
feitas, é algo muito importante.
80
EXCELÊNCIA TÉCNICA
Aumenta a agilidade
A forma como tudo isso aumenta a agilidade é refletida em como tais
padrões e ideias melhoram a qualidade do produto e a facilidade com que
pode ser alterado com segurança. Quando não temos que nos preocupar
sobre quando as mudanças podem ser feitas com segurança, nos
tornamos mais propenso a fazer mais mudanças. Portanto, podemos agir
rapidamente enquanto mantemos um equilíbrio, ou seja, a estabilidade
do sistema.
81
CAPÍTULO 16
Simplicidade
SIMPLICIDADE
83
CAPÍTULO 17
Equipes auto-organizadas
EQUIPES AUTO-ORGANIZADAS
As melhores
Há muita controvérsia sobre este princípio pois algumas pessoas acreditam
que uma equipe sem especialistas pode apresentar ideias e soluções
melhores do que um grupo de especialistas qualificados e experientes.
As ideias dos especialistas certamente seriam incluídas, fato pelo qual o
especialista é membro da equipe. Isso remete ao princípio de fornecer à
equipe o ambiente e o apoio necessários para realizar o trabalho esperado.
Quanto aos pré-requisitos, aproximadamente 14 anos atrás, foi publicado
um livro chamado “A Sabedoria das Multidões”, que discute como um
grupo pode ter uma melhor decisão em comparação a um indivíduo
do grupo, incluindo um especialista. No entanto, não é qualquer grupo
que poder fazer isso. Há alguns pré-requisitos que irei relacionar da
metodologia ágil:
• Todos no grupo podem ter perspectivas e ideias individuais. Ter uma
equipe multifuncional de pessoas motivadas para encontrar uma boa
solução.
• As opiniões pessoais não devem ser influenciadas (indevidamente)
por outras pessoas. É preciso evitar o pensamento em grupo.
• É possível recorrer a conhecimentos diversificados. A base das
informações não é gerada apenas dentro do grupo.
• Existem formas de todas as opiniões serem agregadas para se chegar a
uma decisão colaborativa. As pessoas podem se comunicar livremente.
A crença é que, uma decisão coletiva baseada nesses pré-requisitos,
acabaria melhor do que se um especialista sozinho encontrasse a solução.
Equipes auto-organizadas
A expressão “equipes autogerenciadas ou auto-organizadas” é usada para
indicar quando as equipes se organizam da maneira que consideram
adequada para realizar o trabalho em cada iteração e depois se gerenciam
85
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
para executar esse trabalho. Tudo o que está dentro do escopo da equipe é
decidido e executado por ela.
Isso significa que as equipes fazem as próprias estimativas, determinam
as próprias tarefas, trabalham juntas e individualmente para executá-las,
apresentam o trabalho ao final de cada iteração e verificam com outros
fora da equipe de desenvolvimento, como o PO, outras equipes, o pessoal
de gestão e os clientes, que o trabalho atende às expectativas.
Pode levar um tempo para uma equipe entender como fazer isso, pois
muitas pessoas estão acostumadas a seguir ordens de outras pessoas. Por
exemplo, quando o gerente decide ou é consultado para aprovar algo que
as equipes ágeis deveriam decidir por si mesmas. Isso não significa que
os gerentes não tenham lugar em um ambiente ágil (embora algumas
antigas publicações ágeis promovessem essa ideia). Muito pelo contrário,
o objetivo dos gerentes é adotar uma abordagem de um “líder servidor” e
estar preocupado em fornecer à equipe tudo o que precisam para o sucesso
da empreitada, em vez de esperar que a equipe aja como se o gerente fosse
o único responsável pelo sucesso.
Certa vez tive um gerente que sabia muito bem o que era ser ágil. No
entanto, ele era muito perspicaz e estava acostumado a ser direto na
maneira como abordava as equipes. Um dia ele me disse: “Eu sei que não
devo interromper a equipe e dizer a eles o que fazer, mas estou preocupado
que a equipe não esteja seguindo bem a metodologia ágil. Não acho que
eles usam a retrospectiva de maneira efetiva”. Essa é uma preocupação
legítima, pois uma equipe deveria estar tentando usar a retrospectiva de
maneira efetiva. Sugeri o seguinte: “Da próxima vez que a equipe tiver
uma retrospectiva, assim que for finalizada, pergunte ao Scrum Master
se existe algo que a equipe comentou na retrospectiva no qual ele possa
ajudar?”. Isso alcança três coisas sem ser direto ou intrusivo:
• Deixa clara a expectativa de que a equipe realize a Retrospectiva;
• Deixa clara a expectativa de que a equipe apresente alguns itens de
melhoria a serem perseguidos;
• Ajuda a equipe a alcançar as melhorias sempre que possível.
Se a resposta sugerir que ele “foi pego de surpresa”, o gerente pode explorar
um pouco mais o assunto perguntando: “Houve alguma dificuldade ao
realizar a retrospectiva ou no momento de decidir sobre quais itens de
melhoria deveriam ser trabalhados?”
86
Dessa forma, ao invés de dizer o que fazer, o gerente estaria perguntando
e possivelmente recebendo uma resposta razoável.
As equipes ainda podem ser incentivadas a se auto-organizar e gerenciar
com essa abordagem, mas deve estar claro que, é esperado que elas façam
isso.
CAPÍTULO 18
Reflexões da equipe
REFLEXÕES DA EQUIPE
“Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e
então refina e ajusta seu comportamento de acordo”
De alguma forma, é apropriado que esse seja o último princípio, dado que o
primeiro valor é sobre indivíduos e interações. Acredito que este princípio
está significativamente associado a esse primeiro valor. Retrospectivas são
um aspecto essencial de como os indivíduos interagem em um contexto
ágil. Infelizmente, as retrospectivas, devido às pressões do cronograma,
podem ser ignoradas quando a equipe sente (ou é comunicada) que não há
tempo para realizar a retrospectiva.
Este último capítulo será um pouco mais longo que os anteriores, pois
acredito que há muitas coisas importantes a dizer sobre retrospectivas.
Intervalos regulares
O objetivo da retrospectiva é a melhoria contínua. Ser contínuo significa
melhorar com alguma frequência. A frequência mínima está no final de
cada iteração. As sessões clássicas de “lições aprendidas” ou “post mortem”
normalmente ocorreriam somente após o final de um projeto ou de um
lançamento inteiro e existem vários problemas com isso:
• No final de um projeto ou lançamento, as pessoas são frequentemente
dispersas para novos projetos, dificultando a reunião delas para uma
sessão;
• Como essas sessões ocorrem geralmente meses após o início do
projeto, algumas pessoas podem nem estar por perto para participar,
e aqueles que estão podem não se lembrar das coisas que pensavam
meses atrás e que poderiam ser mencionadas na sessão;
• Muito do que é discutido nessas sessões fala sobre as coisas que deram
errado e como corrigi-las para o próximo projeto ou lançamento,
assim essas sessões não ajudam quando o projeto terminou;
• As sessões costumam ser eventos organizados pela gerência, nos
quais algumas pessoas podem não querer se manifestar devido à
preocupação com a forma como podem ser vistas se levantarem um
problema que as pessoas preferem não enfrentar.
Essas são algumas das razões pela qual espera-se que a frequência (e a
participação dos papéis abaixo) das retrospectivas sejam mantidas como
são.
89
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Por outro lado, a reflexão e a adaptação não precisam esperar até o final da
iteração. Existem oportunidades diárias para que isso ocorra em equipe e
individualmente. A reunião diária pode levantar problemas que a equipe
deve resolver imediatamente, em vez de adicioná-los a uma lista para o
final da iteração. No final do dia de cada pessoa, eles podem se perguntar:
“O que posso fazer amanhã para tornar nossa equipe mais eficaz?” Isso é o
que minimamente se espera do facilitador de uma equipe.
A equipe
Quem deve participar da retrospectiva? O Guia Scrum afirma que esta é
uma reunião da equipe Scrum e define os seguintes membros: um PO, a
equipe de desenvolvimento e um Scrum Master. Os dois últimos são vistos
universalmente como participantes, mas isso nem sempre é verdade para
o PO. Às vezes, as equipes de desenvolvimento consideram o PO como
um gerente. Como os gerentes não são incluídos na retrospectiva, o PO
também é excluído. Isso é lamentável, pois eles têm conexão direta com o
trabalho realizado e claramente têm opiniões como qualquer outra pessoa
da equipe Scrum sobre como as coisas foram durante a sprint.
Acredito que possa haver abordagens para envolver o PO na retrospectiva,
ou que não o exclua completamente:
• Ele poderia assistir ao início da retrospectiva, pontuar situações
relevantes em alguma discussão e depois sair;
• Ele poderia oferecer sua perspectiva ao Scrum Master antes da
retrospectiva, dessa forma essas ideias poderiam ser fornecidas para
consideração na retrospectiva.
Nenhuma dessas opções seria ideal, mas é melhor que a exclusão total.
Em ambos os casos o PO deve receber feedback sobre o que aconteceu
com suas ideias e o que a equipe de desenvolvimento apresentou como
melhorias.
Em minha experiência percebi que algumas equipes podem ter problemas
particulares nos quais desejam trabalhar, mas deve haver algumas
melhorias que podem ser compartilhadas publicamente.
90
REFLEXÕES DA EQUIPE
Refinar e ajustar
Um problema comum que muitas vezes predispõe as equipes a abandonar
retrospectivas é quando fazem listas de ideias para melhoria, mas acabam
não fazendo nada para melhorar. Depois de fazer isso algumas vezes, a
equipe se perguntará por que eles deveriam se importar.
É imperativo que as equipes deixem de elaborar listas e passem a priorizar
suas ideias, selecionando apenas uma ou algumas delas, determinando
o que será necessário para buscar as melhorias (nas tarefas ou nas
estimativas de esforço, por exemplo) e comprometendo-se a seguir uma
ou mais dessas ideias. Tenho visto algumas equipes criarem um backlog
de melhorias em que as ideias de melhoria são tratadas como requisitos.
91
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Retrospectivas ineficazes
Além de uma lista interminável que não leva a lugar algum, vejamos outras
coisas que podem desencorajar uma equipe a conduzir retrospectivas ou
usá-las de maneira eficaz:
• Processo maçante/repetitivo - Realizar a retrospectiva da mesma
maneira toda vez pode se tornar entediante. A abordagem clássica
de brainstorming percorrendo a sala coletando as ideias de cada
participante, anotar e fazer isso até que todos acreditem que não
têm mais o que dizer me parece um pouco entediante. No mínimo,
a prática não engaja toda a equipe logo de início, pois as pessoas
precisam esperar que cada participante diga algo antes que mais
alguém fale. Se alguém tem muitas ideias, muitas pessoas ficarão
lá sentadas até que essa pessoa repasse sua lista. Além disso, ouvir
o que uma pessoa diz pode levar os participantes a não repetirem
uma ideia semelhante uma vez que as pessoas não querem parecer
redundantes, embora seja útil ouvir a diferença na forma como a ideia
é apresentada.
• Vitimismo, a culpa é dos outros - Às vezes a maioria das coisas das
quais uma equipe fala são problemas que vêm de pessoas de fora da
equipe, que embora possam ser legítimos, podem resultar na sensação
de que a equipe não tem muito o que fazer para mudá-las, isso porque
são os outros que precisam mudar/melhorar. Mesmo reconhecendo
e legitimando o que é dito, o facilitador precisa perguntar: O que
poderíamos fazer sobre isso? Quem pode nos ajudar com esse
problema? Como podemos nos ajudar?
• Sessão de culpados - Isso ocorre com mais frequência se não houver
um espírito de confiança e colaboração o suficiente na equipe. As
pessoas vão procurar os culpados pelos vários problemas. Queremos
resolver as questões, mas não para que as pessoas sejam colocadas
92
REFLEXÕES DA EQUIPE
93
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Isso permite que todos estejam ocupados ao mesmo tempo e que possam
ter quantas ideias quiserem, sem precisar esperar sua vez de fazê-lo.
Quando as pessoas tiverem esgotado as ideias, todos são convidados a
levar e colocá-las em uma parede, quadro, etc. Uma possibilidade é
dividir em categorias como “Pessoas”, “Cultura”, “Processo”, “Ambiente”
e “ Ferramentas”. Isso inicia o processo de agrupamento de ideias para
discussões mais aprofundadas. Também facilita para que as pessoas
voltem um passo, observando os padrões gerais e refletindo sobre isso
antes de mergulhar nos detalhes de cada ideia específica. Quando faço
isso, geralmente segmento as categorias no seguinte formato:
• Pessoas - interações entre indivíduos;
• Cultura - as crenças da organização sobre interações;
• Processos - a maneira como as pessoas trabalham para fazer as coisas;
• Ambiente - o ambiente físico em que as pessoas trabalham;
• Ferramentas - as coisas que as pessoas usam, manual ou eletrônico,
para realizar seu trabalho.
Coletando Feedback
Realizar a coleta de feedback de forma muito aberta pode não gerar os
resultados desejados. Se as pessoas relutam em levantar questões por
qualquer motivo, talvez alguma forma de coleta de dados anônima possa
funcionar. As pessoas ainda podem escrever as coisas como mencionado
94
REFLEXÕES DA EQUIPE
acima, mas talvez todas elas devam ser entregues e embaralhadas antes de
lidar com elas.
Em uma de minhas experiências, um Scrum Master pediu que eu
facilitasse uma retrospectiva porque ele queria levantar a questão sobre
como as pessoas se sentiam com o trabalho em equipe. Entretanto, ele
não tinha certeza se as pessoas falariam e estava preocupado que os
sentimentos fossem de alguma forma negativos. Pedi às pessoas que
classificassem seu senso de espírito de trabalho em equipe em uma escala
de 1 a 5, escrevessem esse número em um bloco de notas e em seguida me
entregassem para embaralhar. O “1” significava que eles sentiam que o
espírito era ruim e um “5” significava que eles sentiam que era excelente.
X
X
X
X X
X X X X X
1 2 3 4 5
Figura 6: Gráfico de barras a partir do espírito de equipe.
Gráfico de barras
Enquanto lia os números, o Scrum Master criava um “gráfico de barras”
como o da figura anterior, colocando um “x” quando um número
específico era lido e empilhando outro “x” quando o mesmo número era
lido novamente. Perguntei a todos o que eles achavam dos dados gerais
da equipe e algumas pessoas ficaram surpresas por não ser mais negativo.
Todos podiam ver que algo poderia ser feito, mas não era tão ruim quanto
muitos temiam. Inclusive um dos membros que frequentemente estava
desmotivado falou bastante.
95
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
Os cinco porquês
Uma técnica para lidar com os dados coletados é chamada de “5 porquês”,
trata-se de uma abordagem de análise da causa raiz. Pegamos um problema
e perguntamos por que isso aconteceu, depois perguntamos por que o fato
que gerou o problema aconteceu. Repetimos isso até achar que atingimos
a causa raiz e não apenas os sintomas. Por exemplo, uma equipe poderia
dizer: “Temos problemas para concluir histórias em todas as Sprint.” Em
resposta ao motivo pelo qual pensam que isso acontece, eles poderiam
dizer: “Porque outras equipes das quais dependemos não entregam o que
precisamos.” Perguntado por que pensam que isso acontece, uma resposta
hipotética poderia ser: “Porque é difícil de trabalhar com a coordenação.”
As perguntas poderiam continuar sendo feitas até que o sentimento de
que algo que foi declarado poderia ser mudado. Uma solução alteraria a
linha de problemas para ajudar o problema geral.
96
REFLEXÕES DA EQUIPE
Application Architecture
Timeliness Reliability
Efficiency Interoperability
Effectiveness
Current State
Desired State
97
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
98
REFLEXÕES DA EQUIPE
99
ENTENDENDO OS VALORES E PRINCÍPIOS ÁGEIS
100
EPILOGUE
Epílogo
Modern agile
Alguns anos atrás, Joshua Kerievsky apresentou suas ideias de uma forma
que ele chama de modern agile para abordar o que ele considera como
101
UNDERSTANDING AGILE VALUES & PRINCIPLES
102
EPILOGUE
Heart of agile
Alguns anos antes de encontrar o modern agile, ouvi falar sobre o Heart
of Agile proposto por Alistair Cockburn como uma maneira sucinta de
“voltar ao centro do ágil” depois do que ele achava ter sido muitos anos
de ideias e práticas “excessivamente decoradas”. Ele sente que as quatro
palavras no diagrama associado “não precisam de muita explicação. Elas
não precisam de muita instrução. Com exceção do “Reflect” (Refletir), que
é feito muito pouco em nossos dias, os outros três são conhecidos pela
maioria das pessoas. Você sabe se os está fazendo ou não.
Deliver
Collaborate Reflect
Improve
103
UNDERSTANDING AGILE VALUES & PRINCIPLES
Learning Income
Collaborate Reflect
Experiment Change
104
EPILOGUE
E ainda mais:
SOCIAL TECHNICAL
BUSINESS COST EARLY REVENUE
MANAGE
QUEUES
Learning Income
GOALS
LISTEN
Collaborate Reflect
LET SOMEONE INCLUDE
ELSE DO IT EMOTIONS
Experiment Change
LIMIT CONCRETELY
EMOTIONAL CHANGES (SOLUTION FOCUS)
SAFETY AGGRESSIVELY
105
UNDERSTANDING AGILE VALUES & PRINCIPLES
106
Leitura adicional
Espero que o livro tenha sido interessante o suficiente para que você
considere algumas das ideias descritas em sua jornada ágil. Aqui estão
alguns livros que acho interessantes para explorar ainda mais o Ágil e as
ideias da agilidade:
O Extreme Programming Explained por Kent Beck explica as práticas
de desenvolvimento e a abordagem XP para “gerenciar” um projeto
pela equipe. Balancing Agility and Discipline (Equilibrando Agilidade
e Disciplina) de Barry Boehm e Richard Turner, um livro que trata de
desenvolvimento mais tradicional e rigoroso ao buscar ideias ágeis.
O Management 3.0 (Gerenciamento 3.0) e o Managing for Happiness
(Gerenciando para a Felicidade), ambos de Jurgen Appelo abordam a
complexidade e o gerenciamento em situações complexas e um livro sobre
técnicas, exercícios etc. para usar no trabalho com pessoas e equipes.
O livro Treinamento de equipes ágeis (Coaching Agile Teams, no original)
de Lyssa Adkins que é exatamente o que parece, oferecem conselhos a
coaches, Scrum Masters, gerentes e qualquer pessoa que queira ajudar
as equipes a crescer e se desenvolver, incluindo os próprios membros da
equipe.
O Desenvolvimento de Software com Scrum: Aplicando Métodos Ágeis
com Sucesso (Succeeding with Agile, no original) por Mike Cohn, conselhos
de implementação ao trabalhar em uma abordagem Scrum.
O Scrum Essencial (Essential Scrum, no original) de Ken Rubin, outro “guia”
para implementar o Scrum.
Kanban de David Anderson, um livro-chave sobre a aplicação do Kanban,
especialmente em um contexto de software.
Scrumban por Corey Ladas, combinando as abordagens Scrum e Kanban
para gerenciar o trabalho e o fluxo de trabalho.
Lean Software Development, Implementando Lean Software Development
e Lean Software Development por Mary e Tom Poppendieck, aplicando
conceitos Lean ao desenvolvimento de software.
107
UNDERSTANDING AGILE VALUES & PRINCIPLES
108
Sobre o autor
109