Prévia do material em texto
6 - Métodos Ágeis Nos dias 11, 12 e 13 de fevereiro do ano de 2001, dezessete pessoas com larga experiência em desenvolvimento de software, porém, cansados das metodologias tradicionais de desenvolvimento, dentre elas a principal que era o modelo em cascata, se reuniram em um resort de esqui em Utah. Todos eles acreditavam que havia uma necessidade crescente se criar uma alternativa aos processos de desenvolvimento antiquados, pesados e orientados a documentação (HIGHSMITH, 2001). O grupo se autodenominou “The Agile Alliance” e, daquela reunião nasceu o "Manifesto Ágil", um breve documento baseado em 4 valores e 12 princípios para o desenvolvimento ágil de software. Mas, atenção: o ágil em si não nasceu naquela época, antes disso, muitos outros profissionais de desenvolvimento de software vinham aplicando técnicas que, posteriormente, compuseram os princípios ágeis. O que ocorreu em fevereiro de 2001 foi a concretização daquelas ideias que alguns desenvolvedores já aplicavam, além da escrita de tal manifesto. Estudo de caso Observe o caso da empresa Toyota: O impulso para a manufatura enxuta (Lean Manufacturing) se origina do Sistema Toyota de Produção, que é frequentemente chamado de Produção Just-In-Time (JIT). A Toyota Company tornou-se bem-sucedida após à Segunda Guerra Mundial, quando os donos de fábricas japonesas adotaram uma série de técnicas americanas de produção e qualidade. As técnicas de fabricação de Henry Ford e as ideias do Controle Estatístico de Qualidade de Edwards Deming tornaram-se a base do processo de produção da Toyota. Ao contrário da indústria automotiva americana, a Toyota incentivou os funcionários a fazer parte do processo de produção. A empresa introduziu os círculos de qualidade, que eram um grupo de trabalhadores que se reuniam para discutir a melhoria do local de trabalho. Os membros do círculo de qualidade fazem apresentações à gerência sobre a qualidade da produção. A Toyota desenvolveu um conjunto de procedimentos que reduziu o tempo necessário para configuração e trocas. Ao contrário da produção da Ford, a Toyota desenvolveu a fabricação em lotes menores e isso exigia um conjunto de processos que reduziam os tempos de configuração e troca. O procedimento resultante foi Single Minute Exchange of Die (SMED). Existem sete etapas usadas no método SMED para a transição, incluindo a racionalização das atividades externas e internas. Os desenvolvimentos feitos pela Toyota foram adotados por outros fabricantes japoneses, mas nenhum teve tanto sucesso. Na década de 1980, as empresas americanas começaram a adotar alguns dos processos desenvolvidos pela Toyota e deram a eles nomes como Continuous Flow Manufacturing (CFM), World Class Manufacturing (WCM) e Stockless Production… Melhorias no manuseio de materiais, estoque e qualidade levam a uma operação de fabricação mais bem-sucedida. Se os itens forem produzidos no prazo e entregues a um cliente na data de entrega, a satisfação do cliente aumentará. O mesmo acontece se os itens enviados ao cliente forem de um padrão de qualidade superior. Isso reduzirá a incidência de reparos, devoluções e reclamações de clientes. Em última análise, seus processos de manufatura enxuta precisam apoiar sua empresa para entregar a seus clientes o que esses clientes desejam, quando esses clientes desejam - e conseguir isso reduzindo custos. Essa não é apenas a definição de cadeia de suprimentos otimizada, mas o princípio no centro da manufatura enxuta. Fonte 1: PORTAL DA INDUSTRIA. O que é Lean Manufacturing ou Manufatura enxuta?. Disponível em: https://www.portaldaindustria.com.br/industria-de-a-z/lean-manufacturing-manufatura-enxuta/. Acesso em: 02 jul. 2022. Fonte 2: MELHORIA NA PRÁTICA. A história e o futuro da gestão Lean. Disponível em: https://melhorianapratica.com.br/gestao-lean-historia-e-futuro/. Acesso em: 02 jul. 2022. Continue na leitura deste conteúdo para compreender a relação entre Lean e Metodologia Ágil. · · · · · · · Ao final deste conteúdo, você será capaz de: · selecionar os princípios e práticas do desenvolvimento ágil. · aplicar o desenvolvimento ágil com frameworks atuais, de acordo com seus artefatos. Definindo desenvolvimento ágil de software O desenvolvimento ágil de software refere-se a métodos e práticas que fornecem valor de forma rápida, eficiente e consistente aos clientes no que se refere ao ciclo de vida de desenvolvimento de software. A capacidade de construir e reagir à mudança é chamada de Agile. É um método para enfrentar e, em última análise, ter sucesso em um ambiente de desenvolvimento incerto e turbulento. Dentro do modelo de desenvolvimento de software Agile, equipes auto-organizadas e multifuncionais trabalham juntas para construir e implantar soluções. O Agile divide enormes tarefas de desenvolvimento de software em partes menores e mais gerenciáveis chamadas iterações. Ele difere de outras metodologias de desenvolvimento de software, pois se concentra principalmente nas pessoas que executam o trabalho e na cooperação, colaboração e comunicação entre elas. As soluções surgem, então, da colaboração entre equipes multifuncionais auto-organizadas que usam as melhores técnicas disponíveis. Figura 1 | Desenvolvimento ágil Ao invés de escrever um aplicativo extenso e abrangente, o método Agile envolve dividir os aplicativos de software em partes menores e mais gerenciáveis. Essas partes são construídas, testadas e implantadas em iterações. As iterações são períodos curtos de tempo limitado durante os quais é possível alterar os recursos e a funcionalidade do aplicativo. Mais importante ainda, é possível implementar essas alterações rapidamente. Resumidamente, a abordagem ágil promove a adaptabilidade, o desenvolvimento evolutivo e a entrega, bem como uma abordagem iterativa com prazo determinado e uma resposta rápida à mudança. Ela promove planejamento adaptativo, crescimento evolutivo, entrega antecipada e melhoria contínua. · · · · · · · Por esses motivos, o Agile substituiu a cascata como a metodologia de desenvolvimento preferida na maioria das empresas. Manifesto Ágil Como apresentado no início desta unidade, profissionais de software de várias origens se reuniram para formar a Agile Alliance, que criou o Manifesto Ágil (AGILEMANIFESTO, 2022). Esse manifesto é formado por um conjunto de quatro valores que incentiva a colocar as pessoas antes dos processos, lançar o software rapidamente, colaborar com os clientes e ajustar os planos conforme necessário. Leia os quatro valores do Manifesto ágil no recurso abaixo: *Clique nas abas para interagir com o conteúdo.* Recurso lista interativa: · Indivíduos e interações sobre processos e ferramentas · Não importa quão bem pesquisado seja seu processo e suas ferramentas de alta tecnologia, é a equipe com a qual você trabalha e a maneira como você trabalha em conjunto que determina o sucesso. Sua equipe e sua capacidade de se comunicar de forma eficaz e eficiente são mais valiosas do que os processos que seguem ou as ferramentas que você usa. · Software funcionando sobre documentação abrangente Os processos tradicionais de desenvolvimento de produtos, geralmente, exigiam extensa documentação antes que uma única linha de código fosse escrita. Sob a filosofia ágil, colocar o software nas mãos dos clientes é a maior prioridade. Afinal, como você vai melhorar seu produto se não o colocar em prática e coletar feedback de usuários reais? Embora esse valor destaque a importância de enviar software em vez de deixar a documentação ser um gargalo, é importante observar que a documentação em si não é uma coisa ruim... contanto que você não exagere. · Colaboração do cliente sobre a negociação do contrato A filosofia ágil destaca a importância das práticas de desenvolvimento de produtos centradas no cliente sobre as abordagens centradas no produto. Embora os contratos sempre tenham seu lugar nos negócios, uma lista das coisas que você está oferecendo ao seu cliente não substitui a comunicação real com eles sobre quais são suas necessidades e onde estãoseus desafios. Os processos tradicionais centrados no produto permitiam que os contratos ditassem o que era entregue no final, o que deixava muito espaço para expectativas incompatíveis. A filosofia ágil (e muitos dos processos formalizados que surgiram dela) incentivam a construção de um ciclo contínuo de feedback do cliente nos ciclos de desenvolvimento. · Responder à mudança ao invés de seguir um plano Um benefício importante da metodologia ágil é que ela incentiva a revisão e a reformulação frequentes dos planos atuais com base em novas informações que a equipe está coletando e analisando continuamente. O roadmap do produto, então, não é mais um documento estático, mas uma estratégia dinâmica. Os gerentes de produto em ambientes ágeis precisarão aprender a apresentar seus roteiros dinâmicos às partes interessadas de maneira transparente que reflita a probabilidade de mudança com base em novos aprendizados. Embora os 12 princípios ágeis e os 4 valores para o ágil forneçam orientação útil para aqueles que desejam praticar o desenvolvimento ágil de software, eles não são um conjunto de regras. Compreender os conceitos da metodologia ágil é um diferencial para a carreira no mercado de trabalho. Desse modo, a leitura a seguir é uma excelente oportunidade para se preparar e atuar profissionalmente com esta metodologia. Estudo Guiado Leia da página 81 a 85 do livro Engenharia de Software Clique no link e leia o livro PRESSMAN, Roger S.; MAXIM, Bruce R. Engenharia de software. Porto Alegre: Grupo A, 2021. E-book. ISBN 9786558040118. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9786558040118/. Acesso em: 03 set. 2024. O "Manifesto Ágil" não descreve nenhum processo, procedimento ou prática recomendada para ágil, e isso é intencional. Os criadores não se propuseram a desenvolver uma estrutura ou metodologia rígida. No lugar disso, eles criaram uma mentalidade filosófica para o desenvolvimento de software. Frameworks ágeis Um framework ágil é uma abordagem específica para planejar, gerenciar e executar o trabalho. Os frameworks, geralmente, se enquadram em duas categorias: estruturas projetadas para equipes e estruturas projetadas para ajudar as organizações a praticar o desenvolvimento ágil em escala, em várias equipes. Não existe um único framework ágil que seja o melhor. A melhor abordagem para a equipe ou organização dependerá de vários fatores, incluindo o setor, maturidade ágil, número de equipes ágil e metas para ágil em sua organização. Os principais frameworks e abordagens ágeis estão relacionados a seguir: Scrum Scrum é um dos frameworks ágeis mais conhecidos para equipes. O Guia do Scrum define Scrum como sendo uma estrutura dentro da qual as pessoas podem resolver problemas adaptativos complexos, enquanto entregam de forma produtiva e criativa produtos do mais alto valor possível. (SUTHERLAND, 2013). A partir da leitura a seguir, é possível conhecer melhor o Scrum, um dos principais e mais utilizado framework do mercado. Estudo Guiado Leia da página 95 a 96 do livro Engenharia de Software Clique no link e leia o livro PRESSMAN, Roger S.; MAXIM, Bruce R. Engenharia de software. Porto Alegre: Grupo A, 2021. E-book. ISBN 9786558040118. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9786558040118/. Acesso em: 03 set. 2024. Por definição, o Scrum pretende ser leve e fácil de entender. Alguns diriam, no entanto, que é difícil de dominar. O elemento mais reconhecível do Scrum é o uso de iterações time-boxed: as equipes Scrum operam em períodos de tempo definidos, chamados sprints, geralmente com duração de duas a quatro semanas. Operar em sprints permite que as equipes entreguem de forma rápida e previsível, mantendo a agilidade para dinamizar conforme necessário. XP Extreme Programming (ou XP) é outra estrutura ágil de nível de equipe com raízes no desenvolvimento de software. Assim como a maioria das abordagens ágeis, o XP permite lançamentos frequentes em sprints de desenvolvimento curtos que incentivam mudanças quando necessário. Para compreender um pouco mais do XP e se preparar para oportunidades no mercado de trabalho, é importante ler o capítulo a seguir, que foi separado especialmente para conceituar este framework. Estudo Guiado Leia da página 87 a 89 do livro Engenharia de Software Clique no link e leia o livro PRESSMAN, Roger S.; MAXIM, Bruce R. Engenharia de software. Porto Alegre: Grupo A, 2021. E-book. ISBN 9786558040118. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9786558040118/. Acesso em: 03 set. 2024. O XP é menos regimentado do que muitas estruturas ágeis e segue um conjunto de valores ao invés de etapas. Os valores centrais do XP incluem a simplicidade, a comunicação, o feedback consistente e o respeito. O Extreme Programing exige que os desenvolvedores primeiro planejem e compreendam as histórias de usuários do cliente – suas descrições informais de recursos e requisitos de recursos. Kanban Kanban é uma palavra japonesa e significa “sinal visual” ou “cartão”. Embora as raízes do Kanban estejam na fabricação, esse framework ágil tem sido amplamente aplicado ao desenvolvimento de software e outros tipos de trabalho de conhecimento. A metodologia utiliza quadros físicos ou digitais para representar o processo único de uma equipe ou organização. Os elementos essenciais do Kanban são os seguintes: · Os itens de trabalho são representados por cartões em um quadro Kanban, como notas adesivas em um quadro branco. · Cada etapa do processo é representada por uma linha ou coluna vertical. A versão mais básica de um processo é “To Do”, “Doing” e “Done”. · Os cartões são então movidos da esquerda para a direita no quadro para mostrar onde cada item de trabalho está no processo. · Os cartões podem conter muitas informações sobre a tarefa, incluindo status, datas de vencimento, quem está atribuído ao cartão, entre outros. Ao fornecer visibilidade compartilhada, o Kanban permite que as equipes colaborem de forma mais eficaz e operem com maior agilidade. Kanban é frequentemente usado como uma ferramenta por equipes Lean e Ágil, e pode ser incorporado a outros frameworks ágeis. Lean e Scrum Tanto o Lean quanto o Scrum se concentram em melhorar métodos e técnicas de gerenciamento de projetos desatualizados. Ambos são frameworks projetados para ajudar a melhorar sua taxa de sucesso. Mas eles adotaram abordagens distintamente diferentes sobre como resolver o problema. Como visto anteriormente, o Scrum é um framework em que você divide projetos maiores em sprints de 1 a 4 semanas e trabalha em uma equipe Scrum de 3 a 9 pessoas. O objetivo do Scrum é reduzir e repetir o ciclo de produção. Você planeja, testa e revisa seu produto com clientes reais várias vezes, em vez de uma vez no final. Isso cria um ciclo de feedback que orienta seu produto na direção certa e permite que você envie produtos mais rapidamente. A metodologia Lean, por outro lado, é mais uma filosofia ou um conjunto de princípios orientadores – não um framework. O principal princípio Lean é a redução de desperdícios por meio da melhoria contínua dos seus processos. Muito parecido com o método Ágil, muitas vezes é referido como uma metodologia de gerenciamento de projetos. Mas é a mentalidade geral por trás de diferentes frameworks ao invés da receita de "como fazer", como Scrum. A figura a seguir ilustra a relação entre Lean, Ágil e Scrum. Figura 1 | Lean, Agile, Scrum Cabe observar que Lean, que é proveniente do Lean Manufacturing da Toyota, é a base do Ágil, podendo ser aplicado em várias áreas do negócio. O modelo ágil está contido no Lean e trata-se de um conjunto de valores e princípios. Por fim, temos o ágil, um framework que é um conjunto de práticas, papéis, eventos, artefatos e regras elaborados para orientar a equipe na execução do projeto. Os métodos ágeis são mais do que um conjunto de regras ou procedimentos, é uma forma de pensar, quase uma filosofia. Basicamente, os métodos ágeis são baseados em 3 aspectos principais: · foco no cliente (que deve ser constantementeconsultado); · trabalhando com pequenos avanços incrementais, chamados de iterações; · testando o progresso e a validação antes de prosseguir. Por fim, é possível afirmar que o pensamento ágil se propõe a organizar os esforços produtivos para gerar valor antecipadamente, facilitar a aderência às mudanças de requisitos e manter uma visibilidade constante e precisa durante a execução de um projeto. Como resultado desse pensamento, as organizações são capazes de reduzir significativamente o risco associado ao desenvolvimento de produtos e maximizar o retorno do investimento. Videoaula Chegamos ao fim deste conteúdo! Confira a seguir, uma breve síntese do que estudamos aqui. image4.png image1.jpeg image2.png image3.jpeg