Baixe o app para aproveitar ainda mais
Prévia do material em texto
Desenvolvimento Ágil Responsável pelo Conteúdo: Prof. Me. Artur Marques Revisão Textual: Prof. Esp. Mateus Gonçalves Santos Execução Ágil Execução Ágil • Conhecer a rotina de reuniões ágeis focada em resultado. OBJETIVO DE APRENDIZADO • Reuniões e Rituais; • Sprint Planning; • Daily Meeting; • Sprint Review; • Sprint Restrospective; • Princípios Lean Aplicados em XP; • Desenvolvimento de Sistemas Utilizando Práticas de XP Associadas a Scrum; • Resolução de Entraves e Impedimentos. UNIDADE Execução Ágil Reuniões e Rituais Agil e Lean são amplamente popularizados no espaço de desenvolvimento de software para ajudar as equipes a fornecer software mais rapidamente e de forma sustentável. Ambos possuem rituais e reuniões necessárias para comunicação e evolução do próprio projeto. De uma perspectiva prática, essas reuniões são muito mais difíceis de serem fei- tas do que a maioria dos recém apresentados ao mundo de projetos ágeis. Vamos a algumas definições importantes, como por exemplo, um “ritual” é algo firmemente enraizado em uma tradição específica com um significado quase espiritual ou mági- co. Já um “evento” é algo que simplesmente ocorre, planejado ou não. O interessante é que o SCRUM, por exemplo, é tanto muito pragmático quanto pro- fundamente enraizado nas práticas estabelecidas por profissionais ao longo dos tempos. Profissionais altamente qualificados e experientes geralmente interagem de uma maneira que é difícil para pessoas leigas entenderem, ou seja, aquelas pessoas que não estão diretamente envolvidas no processo ou na profissão. É algo bem hermético e, caso você estivesse nesse círculo, ficaria muito feliz em perceber que gerentes de linha podem fazer muito pouco ou nada quanto a influenciar, pois simplesmente não entendem. Bem, isso é um ritual. E isso é muito importante, senão vejamos, frequentemente, quando as equipes abandonam esses rituais/cerimônias, é porque elas não veem mais o valor delas, o que indica que elas também podem ter abandonado os princípios e isso é o princípio do fracasso. Uma maneira de otimizar sua abordagem ágil é tornar suas reuniões ou cerimônias mais eficazes. O objetivo por traz dessas cerimonias é belo: trata-se de for- necer uma estrutura para equipes multifuncionais resolverem problemas complexos. Uma dica que deixo aqui é a de que a realização dessas reuniões isoladamente não tornará a equipe ágil automaticamente, mas elas devem facilitar as conversas dentro da equipe ágil para fazer as coisas acontecerem. As cerimônias do Scrum garantem que todos que estejam sincronizados e harmônicos. Há quatro tipos de reuniões ou encontros regulares em SCRUM, por exemplo: • Evento de planejamento: todas as partes interessadas concordam dentro de um dia quando os resultados serão entregues na próxima iteração, no máximo, por quatro semanas. Trata-se do sprint planning; • Suporte diário: os profissionais se reúnem diariamente por, no máximo, 15 mi- nutos para contar o que fizeram ontem, o que farão hoje e com quais obstáculos eles precisam de ajuda. Trata-se do scrum daily meeting; • Revisão: no final do ciclo de trabalho de duas a quatro semanas, os profissionais se reúnem com o cliente para mostrar os produtos em funcionamento. Trata-se da sprint review; • Retrospectiva: a equipe do projeto se reunirá para aprender com a iteração passada e usá-la na nova vinda. Trata-se da sprint retrospective; 8 9 Dito preliminarmente isso, saiba que todas as cerimonias são “Timeboxed”, ou seja, está se alocando uma unidade fixa de tempo máxima para uma atividade. Essa unidade de tempo é chamada de “timeboxing”. O seu objetivo é definir e limitar a quantidade de tempo dedicada a uma atividade. O Scrum usa o “timeboxing” para todos os eventos e como uma ferramenta para definir concretamente tarefas abertas ou ambíguas. Algumas equipes SCRUM também usam o timeboxing durante um Sprint para definir concretamente tarefas abertas. Um exemplo de uma tarefa em aberto pode ser a realização de pesquisas necessárias para a equipe tomar uma decisão ou e stimar o tamanho e a complexidade de uma história futura. Portanto, serve para manter as equipes focadas em realizar a tarefa em mãos, fornecendo uma definição clara de concluído. Agilidade requer pensamento disciplinado. Sprint Planning Essa cerimônia ajuda a formar toda a equipe para o próximo sprint, criando um caminho suave para um sprint bem-sucedido. O planejamento do sprint se resume a algumas etapas importantes, desde garantir que o backlog do seu produto esteja devidamente preparado até o enquadramento do sprint e executar uma reunião eficaz de planejamento do sprint. Por isso é importante que mergulhemos na lista de pendências e começar a extrair histórias de usuários para abordar nos próximos dois sprints. O backlog do produto é composto por todos os bugs, problemas, histórias do usuário, ou seja, descrições informais em linguagem natural de um ou mais recursos desejados, geralmente escritos da perspectiva de seus usuários reais. Em vez de se concentrar apenas no que está imediatamente à sua frente, é importante saber para o que esse sprint está se desenvolvendo. É importante preparar essas histórias antes de se reunir com o restante da equipe, para que você não perca tempo examinando pequenos detalhes ou pedindo esclarecimentos. Durante o Sprint Planning Meeting, o Product Owner descreve as fun- cionalidades de maior prioridade para a equipe. A equipe faz perguntas durante a reunião de modo que seja capaz de quebrar as funcionalidades em tarefas técnicas, após a reunião. Essas tarefas irão dar origem ao Sprint Backlog. O Product Owner não precisa descrever todos os itens que estão no Product Backlog. Dependendo do tamanho do Product Backlog e da velocidade da equipe, pode ser suficiente descrever apenas os itens de maior prioridade, deixando a discussão dos itens de menor prioridade para o próximo Sprint Planning Meeting. Coletivamente, o Scrum Team e o Product Owner definem um objetivo para o Sprint, que é uma breve descrição daquilo que se tentará alcança r no Sprint. O sucesso do Sprint será avaliado mais adiante no Sprint Review Meeting em relação ao objetivo traçado para o Sprint. 9 UNIDADE Execução Ágil Depois do Sprint Planning Meeting, a equipe Scrum se encontra sepa- radamente para conversar sobre o que eles escutaram e decidir quanto eles podem se comprometer a fazer no Sprint que será iniciado. Em alguns casos, haverá negociação com o Product Owner, mas será sem- pre responsabilidade da equipe determinar o quanto ela será capaz de se comprometer a fazer. (DESENVOLVIMENTO ÁGIL, 2014, p. 1) A reunião de planejamento da sprint é uma cerimônia simples, mas requer algum investimento de tempo prévio por parte do dono do produto e uma condução asser- tiva por parte do Scrum Master. Daily Meeting Daily Scrum é uma reunião diária, de 15 minutos, para discutir o que foi feito, qual o plano para as próximas 24 horas e quais impedimentos estão dificultando o time de avançar.Além de melhorar a comunicação e o engajamento da equipe, corrige os rumos, mitiga os riscos e ainda proporciona o uso dos 3 pilares do Scrum, que é a inspeção do progresso e adaptação focada nos ajustes e impedimentos que ocorrem diariamente e a transparência para que todos saibam o que está acontecendo. Reuniões Diárias melhoram as comunicações, eliminam outras reuniões, iden- tificam e removem impedimentos para o desenvolvimento, destacam e promovem rápidas tomadas de decisão, além de melhorar o nível de conhecimento do time de desenvolvimento. Cada membro da equipe descreve brevemente quaisquer contribuições “concluí- das” e quaisquer obstáculos que se interpõem no seu caminho. Geralmente, as três perguntas de Scrum são usadas para estruturar a discussão. A reunião é normalmente realizada na frente do quadro de tarefas. Normalmente, esta reunião é marcada com uma duração de 15 minutos, embora possa ser necessárioajustar para equipes maiores. Como benefícios, espera-se que: a reunião diária evite um modo de falha comum das equipes, onde, na ausência de uma ocasião explícita para compartilhar informações recentes, algum conhecimento crítico pode às vezes “cair pelas beiradas”; o compartilhamento regular de informa- ções ponto a ponto em uma reunião curta, focada e enérgica também contribui para a coesão da equipe e, por fim, as reuniões em pé são confiavelmente mais curtas, mais agradáveis e mais eficazes do que as reuniões sentadas. Aqui vão algumas armadilhas comuns sobre a Daily Meeting: Talvez o erro mais comum seja transformar a reunião diária em um “rela- tório de status”, com cada membro relatando o progresso para a mesma pessoa (gerente da equipe ou o Scrum Master designado) – as trocas na reunião diária devem ser feitas por pares com base em pares. Uma segunda armadilha comum é uma reunião diária que se arrasta sem cessar; isso é fácil de abordar com um mínimo de habilidades de facilitação 10 11 Um terceiro problema comum é uma equipe que encontra pouco valor na reunião diária, a ponto de as pessoas “esquecerem” de fazê-lo, a menos que o Scrum Master ou o gerente de projeto tome a iniciativa; isso geral- mente revela um compromisso morno com o Ágil. Um sintoma comum final: a reunião “sem problemas”, onde nenhum membro da equipe levanta obstáculos (“impedimentos” na linguagem Scrum), mesmo que a equipe não esteja manifestamente apresentando desempenho máximo; isso às vezes é uma indicação de que a cultura corporativa deixa as pessoas desconfortáveis em discutir dificuldades em um ambiente de grupo. (YIP, 2011, p. 2) Há um vídeo fantástico sobre a SCRUM Daily Meeting que recomendo fortemente que você assista. Trata-se de uma paródia, muitos de vocês provavelmente já se depa- raram com reuniões assim. Apesar de estar em inglês, eu recomendo que você acione as legendas em português caso tenha dificuldade em traduzir para acompanhar. Agile Simulation. Disponível em: https://youtu.be/q_R9wQY4G5I Sprint Review Ao final do sprint, a equipe do Scrum realiza uma revisão do sprint. Toda a equi- pe participa, bem como todas as partes interessadas convidadas pelo proprietário do produto. O objetivo da revisão do sprint é inspecionar o incremento do produto recém-cria- do e adaptar o backlog do produto, conforme necessário. No final, a equipe deve ter uma lista de produtos revisada e uma boa noção de quais itens devem ser movidos para a próximo sprint. A cerimônia de revisão do sprint durará 60 minutos . Como todas as outras cerimônias, caberá ao Scrum Master manter esse evento apertado e produtivo. D urante a revisão do sprint, o proprietário e a equipe do produto expli- cam os itens da lista de pendências concluídos. Que trabalho está agora “pronto”? O que esse incremento “pronto” oferece aos usuários? Com a equipe Scrum e as principais partes interessadas em um só lugar, a revisão do sprint é a oportunidade perfeita para falar sobre o progresso que você está fazendo no produto. Também é um ótimo momento para refletir sobre a utilidade do backlog do produto. A equipe está programada para traba- lhar na coisa mais urgente a seguir? Que mudanças precisam ser feitas no backlog do produto como resultado do trabalho concluído? Quais impedi- mentos ou novas oportunidades você descobriu durante o sprint e como eles afetam o caminho a seguir? (PROKOPETS, 2020, p. 4) Em resumo, queremos deixar a revisão do sprint positiva de que o backlog atual do produto esteja configurado para melhor usar os recursos da equipe SCRUM. A equipe deve sentir que está trabalhando em itens que agregam valor e as outras partes interessadas devem concordar. 11 UNIDADE Execução Ágil Sprint Restrospective A retrospectiva do Sprint é uma oportunidade para a equipe Scrum se inspecionar e criar um plano para melhorias a serem implementadas durante o próximo Sprint. A re- trospectiva da Sprint ocorre após a revisão da Sprint e antes do próximo planejamento da Sprint. Esta é uma reunião de no máximo três horas para Sprints de um mês. Para Sprints mais curtos, o evento geralmente é mais curto. O Scrum Master garante que o evento ocorra e que os participantes entendam seu propósito. Esta é a oportunidade para a equipe Scrum melhorar e todos os membros devem estar presentes. Durante a Retrospectiva da Sprint, a equipe discute: • O que correu bem no Sprint? • O que poderia ser melhorado? • O que nos comprometemos a melhorar no próximo Sprint? O Scrum Master incentiva a equipe Scrum a melhorar seu processo e práticas de desenvolvimento para torná-lo mais eficaz e agradável para o próximo Sprint. Durante cada Retrospectiva da Sprint, a Equipe Scrum planeja maneiras de aumentar a qualidade do produto, melhorando os processos de trabalho ou adaptando a definição de “Concluído”, se apro- priado, e não conflitando com os padrões organizacionais ou do produto. No final da Retrospectiva da Sprint, a equipe Scrum deveria ter identifica- do melhorias que serão implementadas na próxima Sprint. A implemen- tação dessas melhorias no próximo Sprint é a adaptação à inspeção da própria equipe Scrum. Embora as melhorias possam ser implementadas a qualquer momento, a Retrospectiva da Sprint oferece uma oportunidade formal para se concentrar na inspeção e adaptação. (SCRUM, 2020, p. 1) Portanto o objetivo de uma retrospectiva é: • Inspecionar como foi o último sprint em relação a pessoas, relacionamentos, processos e ferramentas; • Identificar e encomendar os principais itens que foram bem e as possíveis melhorias; • Criar um plano para melhorar a maneira como a equipe Scrum faz seu trabalho. Além disso, também é uma oportunidade para a equipe SCRUM se expressar, sendo mandatório que aprendamos a ouvi-los, afinal, eles são os principais indica- dores do sucesso da entrega do projeto. Uma retrospectiva ágil bem-feita se resume a grandes benefícios, incluindo uma equipe mais auto-organizada, melhor colabora- ção, velocidade maior e usuários finais mais felizes. Princípios Lean Aplicados em XP O Ágil foi originalmente projetado para desenvolvimento de software e ainda é amplamente utilizado em organizações de TI em todo o mundo. O Lean começou 12 13 muito antes da época do desenvolvimento de software, mas seus aplicativos modernos encontravam um lar nas organizações de TI. Há contrastes, afinal, o objetivo do Ágil é, no final das contas, tornar o processo de desenvolvimento flexível, o que é feito fornecendo iterações pequenas e frequentes. O objetivo do Lean é tornar o processo de desenvolvimento sustentável, o que é feito através da melhoria contínua dos pro- cessos. Ouvir e incorporar o feedback do cliente está no centro do Ágil e do Lean. O foco do desenvolvimento de software lean é: • E liminar o desperdício: q ualquer coisa que interfere em oferecer aos clientes o que eles realmente valorizam no momento e no local em que ele fornecerá mais valor; • Construir qualidade: sistemas de rastreamento de defeitos são filas de traba- lho parcialmente concluído, por isso devemos manter o TDD (desenvolvimento orientado a testes) e a integração contínua juntamente com reuso de código e a refatoração frequente; • Criar conhecimento: um design inicial não pode antecipar completamente a complexidade encontrada durante a implementação, por isso espere que o design evolua; • Adiar compromisso: programe decisões irreversíveis para o último momen- to responsável; • Entrega rápida: descobrir como fornecer software tão rápido que nossos clien- tes não tenham tempo para mudar de ideia; • Respeitar as pessoas: uma empresa que respeita seu pessoal desenvolve bons líderes e garante que as equipes tenham o tipo de liderança que promove o engajamento, pensando em pessoas focadas na criação de um ótimo produto. Desenvolvimento de Sistemas Utilizando Práticas de XP Associadas a Scrum Aqui vamos focar mais nas práticas de engenharia XP que utilizamos em gestão ágil conjuntamentea gestão SCRUM. • Projeto de sistema simples: devemos dar ênfase ao design apenas do necessári o para suportar a funcionalidade que está sendo implementada; • Codificação do primeiro teste: os testes de unidade foram escritos antes da cons- trução do código. Essa prática força os desenvolvedores a entender a interfac e e a funcionalidade esperada de uma classe. Os testes se acumulam ao longo da duração de um projeto, fornecendo uma biblioteca de testes de regressões; • Integração contínua: é bom termos um software que faz a integração conti- nuada do software. Uma das vantagens desse processo é que ele verifica auto- maticamente todo o código do repositório, constrói o código e executa a biblio- 13 UNIDADE Execução Ágil teca de testes. Ao criar e testar continuamente o código, a equipe do projeto pode garantir que o software base seja estável e de alta qualidade; • Reestruturação: a refatoração permite o aprimoramento incremental do design e da estrutura de classes para suportar novas funcionalidades; • Programação em pares: a equipe do projeto deverá levar a programação em pares ao extremo, fazendo todo o trabalho em pequenos grupos de dois ou três quando for o caso. Isso inclui também atividades como análise de dados e cria- ção do modelo de dados, além de programação. Importante nos atermos um pouco mais nos testes, até porque o lema “teste pri- meiro desenvolva depois” é uma prática valiosa para uma equipe Scrum. As equipes Scrum buscam excelência e produtos de ótima qualidade, então as pessoas são for- çadas a pensar no “o quê” antes de escrever o “como”. Assim, os desenvolvedores receberão feedback mais rápido sobre o código. Com o desenvolvimento do primeiro teste, os desenvolvedores são forçados a refatorar continuamente seu código e se es- forçarem pelo design mais simples. Por fim uma técnica usada no XP que balançou as estruturas de toda a área de TI, principalmente o mundo dos programadores. Base de código única: como o XP requer integração contínua e implantação diária na produção, ele exige que todo o código baseado estará no repositório central compartilhado. Isso é bem diferente do que muitas equipes estão praticando quando cada desenvolvedor codifica em suas próprias áreas de código. Resolução de Entraves e Impedimentos Eliminar entraves é papel do Scrum Master. Quais seriam as estratégias mais efi- cazes para lidar com mudanças e desafios que estão muitas vezes fora do ambiente de trabalho: • As estratégias de sucesso mais comuns envolviam reunir pessoas para resolver problemas. Embora possa parecer óbvio, ele ressalta o quanto é importante criar redes e grupos de pessoas que possam promover mudanças juntos – você não pode fazer isso sozinho; • O uso da política – construir coalizões, usar estruturas de poder exis- tentes e encontrar patrocinadores – é considerado uma estratégia bem- -sucedida em organizações com baixa pontuação em Agilidade, inde- pendentemente de seu tamanho; • À medida que as organizações se tornam mais ágeis, a política abre caminho para o uso de métricas, reunindo pessoas e usando fatos e argumentos para persuadir e impulsionar a mudança; • Membros da equipe, gerência e partes interessadas são considerados os aliados mais úteis pelos participantes. Surpreendentemente, e ao contrário do que esperávamos, outros Scrum Masters e Coaches Ágeis têm muito menos probabilidade de serem considerados aliados. Consul- tas externas raramente são consideradas aliadas úteis e/ou vale a pena construir relacionamentos com. (VERWIJS, 2019, p. 1) 14 15 Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade: Vídeos Cerimônias do Scrum https://youtu.be/6n7qHFT6MnE Leitura Lean Thinking em Desenvolvimento de Software: Estudo e Aplicação de Ferramenta para Avaliação do Lean em Software CANTANHEDE, M. A. D. Lean Thinking em Desenvolvimento de Software: Estudo e Aplicação de Ferramenta para Avaliação do Lean em Software. 2014. https://bit.ly/3kw5oJi A Aplicação das Abordagens de Gestão Lean e Ágil no Planejamento de Projetos BARQUET, A. P. et al. A Aplicação das Abordagens de Gestão Lean e Ágil no Planejamento de Projetos. https://bit.ly/2HsLRuG 15 UNIDADE Execução Ágil Referências PROKOPETS, M. As 4 cerimônias do Scrum que toda equipe deve usar. 2020. Disponível em: <https://usefyi.com/scrum-ceremonies/>. Acesso em: 10/05/2020. VERWIJS, C. Como o Scrum Masters lida com problemas fora do controle de sua equipe? 2019. Disponível em: <https://medium.com/the-liberators/how-do- -scrum-masters-deal-with-problems-outside-of-their-teams-control-25c795ef75c9>. Acesso em: 10/05/2020. YIP, J. Daily Meeting. 2011. Disponível em: <https://www.agilealliance.org/ glossary/daily-meeting/#q=~(infinite~false~filters~(postType~(~’page~’post~’ aa_book~’aa_event_session~’aa_experience_report~’aa_glossary~’aa_research_ paper~’aa_video)~tags~(~’daily*20meeting))~searchTerm~’~sort~false~sortDirectio n~’asc~page~1)>. Acesso em: 10/05/2020. Sites visitados DESENVOLVIMENTO ÁGIL. Sprint Planning Meeting. 2014. Disponível em: <https://www.desenvolvimentoagil.com.br/scrum/sprint_planning_meeting>. Acesso em: 10/05/2020. SCRUM. O que é uma Retrospectiva da Sprint? 2020. Disponível em: <https:// www.scrum.org/resources/what-is-a-sprint-retrospective>. Acesso em: 10/05/2020. 16
Compartilhar