Posted by SCRUMstudy® on September 07, 2024
Categories: Agile Continuous Integration Iterative Development Product Development
As Práticas Ágeis Scrum abrangem um conjunto de princípios e metodologias concebidas para melhorar a colaboração, a flexibilidade e a capacidade de resposta nas equipas de desenvolvimento de software. Estas práticas são parte integrante da estrutura Scrum e são implementadas de forma iterativa e incremental ao longo do processo de desenvolvimento.
As Agile Master Practices encapsulam princípios e metodologias essenciais para uma gestão ágil de projetos eficaz. Estas práticas abrangem uma abordagem dinâmica à execução de projetos, enfatizando a colaboração, a adaptabilidade e a melhoria contínua. As principais práticas incluem a promoção da comunicação aberta dentro de equipas multifuncionais, a promoção de ciclos de desenvolvimento iterativos e a adoção da mudança como catalisador para a inovação. Além disso, as Agile Master Practices defendem processos de tomada de decisão transparentes, capacitando as equipas para se auto-organizarem e apropriarem dos resultados do projeto.
As práticas Scrum ágeis abrangem um conjunto de princípios e metodologias que visam promover a flexibilidade, a colaboração e a melhoria contínua na gestão de projetos. As principais práticas incluem ciclos de desenvolvimento iterativos conhecidos como sprints, normalmente com uma duração de duas a quatro semanas, durante os quais as equipas entregam peças incrementais de software funcional.
O “Esboço do conteúdo do exame de profissional certificado Agile do PMI” do Project Management Institute organiza as tarefas que os profissionais realizam quando trabalham no ambiente Agile em seis domínios. O seu exame não testa especificamente os domínios, pelo que aprender o agrupamento de ferramentas e técnicas, conhecimentos e competências não será diretamente aplicável à língua do teste. No entanto, esta forma organizacional de olhar para as ferramentas e tarefas Agile foi feita para ajudar os profissionais a aprender e compreender melhor o Agile.
Os seis domínios do Agile são:
Entrega orientada pelo valor
A criação de valor está no centro de qualquer projeto, e os métodos Agile são concebidos com o objetivo principal de acrescentar valor a um projeto de trabalhador do conhecimento. Ao mesmo tempo que maximiza o valor, o Agile também possui ferramentas e técnicas para minimizar os riscos que podem corroer o valor. Os métodos ágeis também dão importância às prioridades do cliente e são concebidos para entregar primeiro elementos que tenham o maior valor para o cliente.
Avaliando valor –.
Valor do planeamento – Criamos um estatuto detalhando o âmbito, o objetivo e outros atributos do projeto. Em seguida, utilizamos ferramentas como a priorização valorizada pelo cliente, a priorização relativa e o backlog ajustado ao risco enquanto preparamos a lista de prioridades. Qual o valor de planeamento, avaliamos também os custos de contratação do projeto.
Entregar valor – Depois de planearmos como vamos entregar valor, focamo-nos em eliminar todas as atividades que não acrescentam valor. Podemos usar task frames e Kanban para agendar o backlog. Limitar o trabalho em curso (WIP) reduz o potencial de retrabalho e mantém o projeto a funcionar sem problemas.
Confirmar valor – Executámos tarefas e criámos valor mas era isso que o cliente pretendia? Temos de confirmar o valor que estamos a entregar para saber isso. Demonstramos protótipos, simulamos funcionalidades para ajudar o cliente a testar o produto e ver como funciona.
Rastrear e reportar valor – Não basta apenas entregarmos valor. É importante acompanhar regularmente a taxa de entrega de valor para que possa ser comunicada às partes interessadas do negócio. Os fluxogramas cumulativos e os gráficos burn down são uma forma fácil e informativa de avaliar o desenvolvimento do projeto.
Envolvimento das partes interessadas
As partes interessadas num projeto podem ser qualquer pessoa que possa impactar negativa ou positivamente um projeto. Podem ser representantes comerciais, clientes, o gestor de projeto, a equipa de desenvolvimento ou fornecedores externos que contribuem direta ou indiretamente para o projeto. O envolvimento das partes interessadas torna-se importante, porque o desenvolvimento de software envolve a criação de produtos intangíveis e a equipa deve ter uma compreensão precisa dos requisitos do cliente.
Os projetos ágeis estão sujeitos a constantes alterações, o que torna essencial que seja estabelecido um canal de comunicação claro e estável. Todas as partes interessadas devem estar envolvidas no projeto para garantir que este se mantém no caminho certo. As equipas podem utilizar ferramentas como wireframes, user stories, backlog de user stories e personas para verificar a sua compreensão dos requisitos do cliente.
A comunicação face a face é o método de comunicação preferido em projetos ágeis. Fornecem o máximo de informações no menor tempo possível. Os radiadores de informação, como os gráficos de burn down, os diagramas de fluxo cumulativos e os gráficos de rastreio de velocidade, permitem-nos determinar o progresso do projeto, que pode ser comunicado a todas as partes interessadas.
As competências interpessoais desempenham um papel importante no envolvimento com as partes interessadas. As competências interpessoais, como a negociação e a escuta ativa, são necessárias ao lidar com os clientes. É também essencial que estejamos familiarizados com a implementação de competências transversais, tais como métodos de facilitação, modelos de decisão participativos e resolução de conflitos que se preocupam principalmente com a gestão de equipas.
Quando falamos em gestão de equipas, as nossas competências de liderança desempenham um papel crucial. A liderança servidora é uma forma extremamente eficaz de liderar equipas. Um líder servidor incentiva a equipa a destacar-se, removendo quaisquer obstáculos, motivando e recompensando o desempenho da equipa.
Aumentando o desempenho da equipa
O terceiro domínio do Agile trata do aumento das práticas de desempenho da equipa. No desenvolvimento de software, os “fatores pessoais” incorrem nos custos mais elevados. Por conseguinte, é extremamente importante obtermos o maior retorno sobre o desempenho.
O processo de formação de uma equipa é um dos determinantes do sucesso de um projeto. A construção de uma equipa passa pelas fases de formação (identificar potenciais membros da equipa e reuni-los), tempestade (a equipa colabora e apresenta ideias), normalização (as equipas formam regras e normalizam os seus padrões de trabalho) e desempenho (a equipa trabalha em conjunto). Durante cada uma destas fases, é importante que o líder saiba quando desempenhar um papel de apoio ou de direção. Por exemplo, durante a fase de tempestade, os conflitos podem ser frequentes e o líder terá de intervir para ajudar os membros da equipa a desenvolver metodologias para os resolver.
Para obter o melhor de uma equipa, esta deve ser auto-organizada e autodirigida. Permitir que as equipas sejam auto-organizadas e autodirigidas permite que os membros da equipa gerenciem tarefas complexas por conta própria e descubram a melhor forma de as completar. Isto capitaliza a experiência e o talento combinados da equipa.
Existem diversas atividades que podem ajudar uma equipa a aumentar o seu desempenho em projetos Agile. As reuniões stand-up diárias são uma forma rápida de comunicar o estado de desempenho da equipa e identificar problemas atuais e potenciais. Para superar os problemas e melhorar continuamente, as equipas podem ter de ser orientadas em diferentes fases. Durante eventos como reuniões de planeamento de iteração ou retrospetivas, as equipas podem ter de ser treinadas ao nível do grupo e pode ser fornecida orientação para membros individuais da equipa quando a iteração estiver em curso.
As sessões de brainstorming podem ser utilizadas pelas equipas para resolver problemas, melhorar e inovar processos. Uma vez que a comunicação presencial é a forma ideal de comunicação em projetos Agile, é importante que a equipa esteja localizada numa área comum com espaço para quadros brancos e outros radiadores de informação.
Planeamento Adaptativo
Uma vez que o planeamento extensivo antes da realização do projeto pode ser complicado e muitas vezes não acrescenta qualquer valor real, o Agile exige uma abordagem adaptativa ao planeamento. O planeamento adaptativo envolve a criação de um plano básico e a sua atualização à medida que o projeto avança. O planeamento adaptativo exige que os profissionais mantenham uma estreita colaboração com o cliente para compreender as suas necessidades com maior precisão. Os jogos colaborativos, como recordar o futuro, podar a árvore do produto, comprar um recurso e ganhar dinheiro, podem ser utilizados para ajudar a equipa de desenvolvimento a compreender melhor os requisitos do cliente.
Para fazer entregas atempadas, os membros da equipa devem calcular as suas estimativas com a maior precisão possível, tendo em conta todos os desvios e restrições. O Wideband Delphi e o Ideal Time são algumas das técnicas que podem ajudar as equipas a chegar a uma estimativa precisa. Ao estimar o custo do projecto, os números devem ser apresentados em intervalos, pois parecem mais credíveis do que números precisos que possam ter um ar de falsa confiança.
O planeamento de iteração e lançamento é uma parte vital do planeamento adaptativo. Os releases são pacotes de funcionalidades que podem ser entregues a um cliente. Ao planear um lançamento, o proprietário/gestor do produto, a equipa de desenvolvimento e o Agile Expert podem utilizar um gráfico de velocidade para determinar quantas características podem ser concluídas pela equipa num determinado momento. Ao planear iterações, é importante ter uma lista de prioridades fixa no início da sessão de planeamento. Os membros da equipa têm a palavra final sobre a quantidade de trabalho que pode ser concluída, enquanto o proprietário do produto tem a palavra final sobre a prioridade dos itens incluídos na iteração. A disponibilidade dos membros da equipa precisa de ser tida em conta ao planear as iterações.
Detecção e resolução de problemas
Um ditado comum é: “Um ponto no tempo poupa nove”, e isto não podia ser mais adequado para explicar como os métodos ágeis lidam com os problemas. Se forem ignorados, os problemas podem ter um efeito devastador no projeto, pois não só aumentam a carga de retrabalho; fazem com que a equipa fique para trás nos seus planos. É um duplo golpe para a equipa quando isto acontece, pois consome o dobro dos recursos. As práticas ágeis ajudam a detetar problemas o mais cedo possível e a corrigi-los enquanto ainda são pequenos.
Detetar problemas é o primeiro passo para os resolver. As reuniões diárias de stand-up são uma excelente forma de identificar quaisquer problemas que os membros da equipa estejam a enfrentar. As equipas também podem acompanhar os problemas calculando os tempos de ciclo das tarefas. Se o tempo de ciclo for demasiado elevado, pode indicar um problema potencial ou que a equipa realizou mais trabalho do que pode concluir. Limitar o trabalho em curso pode ajudar a monitorizar melhor o cronograma do projeto e a acompanhar os problemas com mais facilidade. Apesar dos nossos melhores esforços, alguns defeitos podem chegar ao produto final. Os defeitos escapados são os mais caros de corrigir. As equipas podem rastrear defeitos escapados num gráfico para analisar tendências. Isto pode ajudar a refinar os processos de controlo de qualidade.
Alistair Cockburn descreve “modos de falha e alternativas” que estão relacionados com o aspeto humano do desempenho. Cockburn diz que as pessoas falham porque podem ser inconsistentes ao seguir uma técnica, são criaturas de hábitos e preferem inventar novas formas do que modificar métodos fiáveis ??existentes. Para combater os “modos de falha”, Cockburn aconselha que as equipas devem inculcar disciplina, receber feedback regularmente e atribuir tarefas com base nas personalidades de cada membro da equipa.
Resolver os problemas identificados é o passo seguinte. A integração contínua de novo código, à medida que é desenvolvido, num repositório pode ajudar a ultrapassar os problemas que encontramos com a integração. Validar o progresso em intervalos frequentes e em diferentes níveis pode ajudar-nos a ter a certeza de que o nosso trabalho está livre de erros.
No desenvolvimento de software, as técnicas normalmente utilizadas são o Desenvolvimento Orientado a Testes (TDD) e o Desenvolvimento Orientado a Testes de Aceitação (ATDD). Estes métodos envolvem principalmente a escrita dos testes antes de qualquer código ser escrito. Os códigos são escritos até passarem nos testes. Os códigos podem então ser “refactorizados”, se necessário, o que implica refinar o design sem alterar o seu comportamento.
Melhoria Contínua
Os novos insights e aprendizagens obtidos num projeto tradicional são normalmente recolhidos no final do ciclo do projeto. Estes insights podem não ser de grande ajuda no próximo projeto, a menos que os dois sejam muito semelhantes. Esta aprendizagem poderia ter tido mais valor se tivesse sido utilizada no projeto em que foi aprendida. A metodologia ágil procura melhorar continuamente ao longo do projeto e incentiva a aplicação de lições ao processo de desenvolvimento à medida que o aprendemos. As retrospetivas no final de cada iteração disponibilizam as lições aprendidas para a iteração seguinte.
Uma retrospetiva dura normalmente cerca de duas horas, durante as quais a equipa recolhe dados sobre os diferentes desafios que enfrentou e as várias lições aprendidas ao resolvê-los. A aprendizagem é analisada para ver se existem padrões subjacentes ou quaisquer insights. Munida destes padrões e insights, a equipa planeia a próxima iteração.
Como parte da melhoria contínua, os membros da equipa devem ser encorajados a partilhar o conhecimento que adquirem com outros membros da equipa. Uma das razões pelas quais a colocation é enfatizada nos projetos Agile é porque fornece uma plataforma para a partilha de conhecimento através da comunicação face a face. Para incentivar a partilha de conhecimento, a velocidade da equipa pode ser monitorizada ao nível da equipa, em vez de a medir a nível individual, para que os membros da equipa fiquem motivados para se ajudarem uns aos outros.
Poderemos ser obrigados a adaptar as práticas ágeis às nossas necessidades; no entanto, é preciso ter cuidado ao fazê-lo. As práticas ágeis foram elaboradas numa delicada teia de práticas interdependentes e perturbadoras podem afetar outras práticas. Devemos ser adeptos do uso de práticas ágeis antes de fazer qualquer modificação. Por vezes, pode ser tentador culpar as ferramentas se o nosso trabalho não estiver a correr de acordo, quando o verdadeiro problema reside em nós. Devemos examinar cuidadosamente os nossos motivos para mudar as práticas antes de fazermos quaisquer alterações.