Glossário Ágil equipes ágeis - Capa

Ágil: Glossário e Terminologia para Equipes Ágeis

Ágil - Glossário e Terminologia Para Equipes Ágeis

A necessidade de equipes ágeis é uma realidade nas empresas e quando falamos em mudar a cultura de uma empresa para aumentar o engajamento dos colaboradores, é praticamente certo, independente do ramo da sua empresa, que você tenha pelo menos um time desenvolvendo soluções internas, produtos ou serviços na área de software. 

Equipes ágeis somente são possíveis quando começamos a entender que o tipo de gestão que estamos utilizando não é mais eficaz no mundo em que vivemos. Muitas equipes ágeis acabam utilizando vários métodos, metodologias e framework ágeis muito rapidamente, muitas vezes sem entendimento adequado.

É normal quando trabalhamos com gestão ágil e desenvolvimento ágil de software começarmos a experimentar várias práticas, métodos e frameworks, e nos depararmos com muitos termos específicos, assim não é difícil que isso cause alguma dúvida ou confusão até mesmo entre agilistas experientes.

O objetivo desse glossário e terminologia ágil é ser um local de consulta simples para esclarecer dúvidas sobre os termos mais comuns que encontramos no mundo Ágil.

Ágil

Um movimento para encontrar melhores formas de desenvolver software. Scrum e Extreme Programming são dois exemplos importantes. Outros, como Kanban ou Lean Startup não se definem tradicionalmente como Ágil, mas são baseados em valores e princípios compatíveis.

Agilidade de Negócios

Agilidade de negócios é a capacidade de uma organização de perceber mudanças interna ou externamente e responder de forma adequada para entregar valor aos clientes.

Antipadrão (Antipattern)

Antipadrões são soluções comuns para problemas comuns onde a solução é ineficaz e pode resultar em consequências indesejáveis.

ATDD - Desenvolvimento Orientado para Teste de Aceitação (Acceptance Test Driven Development)

Prática de desenvolvimento de software orientada primeiramente a testes, na qual os critérios de aceitação para novas funcionalidades são criados como testes automatizados. Os testes de falha são construídos para passar conforme o desenvolvimento prossegue e os critérios de aceitação são atendidos.

Auto-organização

O princípio de gestão de que as equipes organizam seu trabalho de forma autônoma. A auto-organização acontece dentro de limites e contra objetivos determinados. As equipes escolhem a melhor forma de realizar seu trabalho, em vez de serem dirigidas por outras pessoas fora da equipe.

Backlog

Um backlog é uma lista ordenada de itens que representam tudo o que pode ser necessário para entregar um resultado específico. Existem diferentes tipos de pendências, dependendo do tipo de item que contêm e da abordagem que está sendo usada.

Backlog do Produto

Uma lista ordenada do trabalho a ser feito para criar, manter e sustentar um produto. É gerenciado pelo Product Owner.

Backlog Grooming

A preparação do backlog é quando o product owner e a equipe refinam o backlog regularmente para garantir que o backlog contenha os itens apropriados, que eles sejam priorizados e que os itens no topo do backlog estejam prontos para entrega.

BDD - Desenvolvimento Orientado a Comportamento (Behavior Driven Development)

BDD é uma prática em que os membros da equipe discutem o comportamento esperado de um sistema para construir uma compreensão compartilhada da funcionalidade esperada.

Burn-down Chart

Um gráfico que mostra a quantidade de trabalho que permanece no backlog para ser feita. O tempo é mostrado no eixo horizontal e o trabalho restante no eixo vertical. Conforme o tempo avança e os itens são retirados do backlog e concluídos, pode-se esperar que uma linha de base mostrando o trabalho restante caia.

A quantidade de trabalho pode ser avaliada de várias maneiras, como pontos da história do usuário ou horas de tarefa. O trabalho remanescente em Sprint Backlogs e Product Backlogs pode ser comunicado por meio de um gráfico burn-down.

Burn-up Chart

Um gráfico que mostra a quantidade de trabalho que foi concluído. O tempo é mostrado no eixo horizontal e o trabalho concluído no eixo vertical. À medida que o tempo avança e os itens são retirados da lista de pendências e concluídos, pode esperar que uma linha de base mostrando o trabalho realizado cresça.

A quantidade de trabalho pode ser avaliada de várias maneiras, como pontos da história do usuário ou horas de tarefa. A quantidade de trabalho considerada dentro do escopo também pode ser plotada como uma linha; pode-se esperar que o burn-up se aproxime dessa linha quando o trabalho for concluído.

Critérios de Aceitação

São critérios pelos quais um item de trabalho (história de usuário) pode ser julgado como tendo sido implementado e testado com sucesso. Uma história está “pronta” quando todos os critérios passam no teste; por outro lado, uma história não está “pronta” se algum critério falhar no teste. Os Critérios de Aceitação são recursos testáveis discretos relacionados às condições de satisfação que quando atendidas, agregam valor ao negócio.

Daily Meeting

Evento diário com limite de tempo de 15 minutos, ou menos, para que a Equipe de Desenvolvimento planeje o próximo dia de trabalho de desenvolvimento durante uma Sprint. As atualizações são refletidas no Sprint Backlog.

Daily Scrum - ágil para equipes ágeis

Desenvolvimento Ágil

O desenvolvimento ágil é uma estrutura conceitual e abordagem para o desenvolvimento de software com base nos princípios do Manifesto Ágil. O termo é um “guarda-chuva” para uma série de metodologias específicas baseadas em técnicas de desenvolvimento iterativo, onde os requisitos e os produtos evoluem por meio da colaboração entre equipes multifuncionais e auto-organizadas. As metodologias ágeis mais populares incluem: Extreme Programming (XP), Scrum, Crystal, Dynamic Systems Development (DSDM), Lean Development e Feature Driven Development (FDD).

Desenvolvimento Incremental

Em um contexto Ágil, o Desenvolvimento Incremental ocorre quando cada versão sucessiva de um produto pode ser usada e cada uma se baseia na versão anterior, adicionando funcionalidade visível ao usuário.

Desenvolvimento de Cliente

O desenvolvimento do cliente é uma estrutura de quatro etapas que fornece uma maneira de usar uma abordagem científica para validar suposições sobre seu produto e negócio.

Desenvolvimento Iterativo

Os projetos ágeis são iterativos na medida em que permitem intencionalmente “repetir” as atividades de desenvolvimento de software e, potencialmente, “revisitar” os mesmos produtos de trabalho (a refatoração é um bom exemplo).

Estimativa Relativa

A estimativa relativa consiste em estimar tarefas ou histórias de usuários por comparação ou agrupamento de itens de dificuldade equivalente.

Equipe Multifuncional (Cross-functional Team)

Equipes ágeis compostas por membros com todas as habilidades funcionais e especialidades necessárias para concluir um projeto do início ao fim.

Épico (Epic)

Épicos são histórias de usuário que representam itens grandes demais ou sem detalhes suficientes para serem desenvolvidos. Pode ser quebrado em histórias menores.

Estimativa

No desenvolvimento de software, uma “estimativa” é a avaliação do esforço necessário para realizar uma determinada tarefa de desenvolvimento; isso é geralmente expresso em termos de duração.

Extreme Programming (XP)

Extreme Programming (XP) é uma estrutura ágil de desenvolvimento de software que visa produzir software de alta qualidade e maior qualidade de vida para a equipe de desenvolvimento. XP é a mais específica das estruturas ágeis em relação às práticas de engenharia apropriadas para o desenvolvimento de software.

Facilitação

Um facilitador é uma pessoa que escolhe ou recebe a função explícita de conduzir uma reunião sem influenciar diretamente no resultado da mesma.

Guia Scrum

A definição de Scrum, escrita e fornecida por  Ken Schwaber e Jeff Sutherland, co-criadores do Scrum. Esta definição consiste nas funções, eventos, artefatos do Scrum e as regras que os unem.

Integração Contínua

Integração contínua é a prática de mesclar alterações de código em um repositório compartilhado várias vezes ao dia para liberar uma versão do produto a qualquer momento. Isso requer um procedimento de integração reproduzível e automatizado.

Incremento

Um software funcional que se soma aos incrementos criados anteriormente, onde a soma de todos os ncrementos – como um todo – forma um produto.

Implantação Contínua

A implantação contínua visa reduzir o tempo decorrido entre a gravação de uma linha de código e a disponibilização desse código aos usuários em produção. Para alcançar a implantação contínua, a equipe conta com uma infraestrutura que automatiza e instrumenta as várias etapas que levam à implantação, de modo que, após cada integração que atenda com sucesso a esses critérios de lançamento, o aplicativo ativo seja atualizado com o novo código.

Inspecionar e Adaptar

Um conceito ágil em que as equipes avaliam um projeto olhando para o produto, ouvindo o feedback uns dos outros e, por fim, melhorando o processo ou mudando o curso.

Integração

“Integração” refere-se a quaisquer esforços ainda necessários para uma equipe de projeto entregar um produto adequado para lançamento como um todo funcional.

INVEST

A sigla INVEST significa um conjunto de critérios usados ​​para avaliar a qualidade de uma história de usuário. Se a história não atender a um desses critérios, a equipe pode querer reformulá-la.

Iteração

Uma iteração é uma caixa de tempo durante a qual o desenvolvimento ocorre. A duração pode variar de projeto para projeto e geralmente é fixa.

Kanban

O Método Kanban é um meio de projetar, gerenciar e melhorar o fluxo para o trabalho do conhecimento e permite que as equipes ágeis comecem de onde estão para impulsionar a mudança evolutiva.

Lead Time

Lead Time é o tempo entre o pedido do cliente e a entrega. No desenvolvimento de software, também pode ser o tempo entre o momento do requisito solicitado até o seu cumprimento.

Manifesto Ágil

Um Manifesto para Desenvolvimento Ágil de Software é um documento histórico escrito em fevereiro de 2001 em um resort de esqui em Utah. A reunião foi realizada para discutir diferentes abordagens para o desenvolvimento de software leve, responsivo e adaptável. O Manifesto representa seu melhor pensamento combinado. É composto por duas partes: quatro declarações de valores e doze princípios. Aqui estão as quatro declarações de valor do Manifesto: 

“Estamos descobrindo melhores maneiras de desenvolver software fazendo isso e ajudando outros a fazê-lo. Por meio desse trabalho, valorizamos:

  • Indivíduos e interações sobre processos e ferramentas
  • Software que funciona sobre uma documentação completa
  • Colaboração com o  cliente sobre negociações de contrato
  • Responder à mudança sobre seguir um plano
Ou seja, embora haja valor nos itens à direita, valorizamos mais os itens à esquerda ”.

Modelagem Ágil

Modelagem Ágil é uma metodologia baseada em prática para modelagem e documentação de sistemas baseados em software. Pretende ser uma coleção de valores, princípios e práticas para modelagem de software que podem ser aplicados em um projeto de desenvolvimento de software de uma maneira mais flexível do que os métodos tradicionais de modelagem.

MVP - Produto Mínimo Viável (Minimum Viable Product)

Um Produto Mínimo Viável é a “versão de um novo produto que permite a uma equipe coletar o máximo de aprendizado validado sobre os clientes com o mínimo esforço”.

Mob Programming

Mob Programming é uma abordagem de desenvolvimento de software em que toda a equipe trabalha na mesma coisa, ao mesmo tempo, no mesmo espaço e no mesmo computador.

Programação Em Par

A programação em par consiste em dois programadores que compartilham uma única estação de trabalho (uma tela, teclado e mouse entre o par).

PDCA

As quatro etapas de um ciclo de melhoria contínua popularizado por W. Edward Deming.

  • Planeje (Plan) – Defina o problema, métodos para medi-lo e obtenha suporte de gerenciamento para fases futuras.
  • Faça (Do) – faça os testes e protótipos para entender o problema, estabelecer as causas raízes e investigar alternativas.
  • Verifique (Check) – analisa os resultados do estágio “fazer” para determinar se uma solução resolve efetivamente o problema sem quebrar mais nada.
  • Aja (Act) – Implementar totalmente a solução identificada.

Personas

Personas são biografias sintéticas de usuários fictícios do futuro produto.

Planning Poker

Uma abordagem de estimativa usada por equipes ágeis. Cada membro da equipe “joga” uma carta com um valor numérico correspondente a uma estimativa de pontos para uma história de usuário.

Pontos (em estimativas)

As equipes ágeis geralmente preferem expressar estimativas em unidades diferentes das consagradas “horas-homem”. Possivelmente, a unidade mais difundida é “pontos da história”.

Product Owner

Papel no Scrum responsável por maximizar o valor de um produto, principalmente gerenciando e expressando incrementalmente as expectativas funcionais e de negócios de um produto para as equipes de desenvolvimento.

Scrum Revisão

Quadro Kanban

Um Quadro Kanban é uma ferramenta de fluxo de trabalho visual que consiste em várias colunas. Cada coluna representa um estágio diferente no processo de fluxo de trabalho. 

Ramificação (Branching)

Ramificação é a duplicação de objetos sob controle de revisão (como um arquivo de código-fonte ou uma árvore de diretório) de forma que os objetos recém-criados tenham inicialmente o mesmo conteúdo que o original, mas podem evoluir independentemente do original. A ramificação pode assumir duas formas, estática ou dinâmica. 

Em ramos estáticos, as operações de cópia e label são usadas para duplicar um determinado ramo. A duplicata então pode evoluir de forma independente. 

Com ramificações dinâmicas, geralmente implementadas em fluxos, apenas a operação de label é usada para sinalizar o ponto no tempo em que um fluxo divergiu de seu fluxo pai. Ambos os formulários de ramificação suportam alguma forma de mesclagem, para que as alterações de código feitas em uma ramificação possam ser reintegradas em outra ramificação, como é típico em processos de desenvolvimento paralelos.

Refinamento de Backlog

A atividade em uma Sprint por meio da qual o Product Owner e as equipes de desenvolvimento adicionam granularidade ao Backlog do Produto.

Refatoração

Refatorar consiste em melhorar a estrutura interna do código-fonte de um programa existente, preservando seu comportamento externo.

Regra de Simplicidade

Regra de simplicidade é um conjunto de critérios, em ordem de prioridade, proposto por Kent Beck para julgar se algum código-fonte é “simples o suficiente”.

Retrospectiva de Marco

Uma Retrospectiva Milestone é uma análise detalhada de uma equipe dos eventos significativos do projeto após um determinado período de tempo ou no final do projeto.

Ritmo Sustentável

Equipes ágeis almejam um ritmo de trabalho que seja capaz de ser sustentado indefinidamente.

Scrum

Uma estrutura para apoiar equipes no desenvolvimento de produtos complexos. Scrum consiste em equipes ágeis Scrum e suas funções, eventos, artefatos e regras associados, conforme definido no Scrum GuideTM.

Scrum Board (Quadro Scrum)

Um quadro físico para o time Scrum visualizar as informações, frequentemente usado para gerenciar o Sprint Backlog. Scrum boards são uma implementação opcional dentro do Scrum para tornar as informações visíveis.

Quadro Scrum

Scrum Master

Papel dentro de um Time Scrum responsável por orientar, treinar, ensinar e auxiliar o time em uma compreensão e uso adequados do Scrum.

Scrum Master-min

Sprint

A sprint é um período de tempo onde um trabalho específico deve ser executado concluído e preparado para uma posterior revisão. Uma nova sprint se inicia imediatamente após a conclusão da sprint anterior, sendo assim, não é possível dar inicio a outra em paralelo. As sprints geralmente duram de uma a três semanas.

Sprint Backlog (Backlog da Sprint)

Uma visão geral do trabalho de desenvolvimento para realizar o objetivo de um Sprint, normalmente uma previsão de funcionalidade e o trabalho necessário para entregar essa funcionalidade. Gerenciado pela Equipe de Desenvolvimento.

Scrum Backlog-min

Sprint Goal (Meta da Sprint)

Uma breve expressão do propósito de um Sprint, geralmente um problema de negócios que é abordado. A funcionalidade pode ser ajustada durante o Sprint para atingir o objetivo.

Scrum Sprint

Sprint Planning (Planejamento da Sprint)

Evento com limite de tempo de 8 horas ou menos para iniciar uma Sprint. Ele serve para o Time Scrum inspecionar o trabalho do Backlog do Produto que é mais valioso para ser feito em seguida e projetar esse trabalho no Backlog do Sprint.

Scrum - Planejamento

Sprint Retrospective (Retrospectiva de Sprint)

Evento com caixa de tempo de 3 horas ou menos para encerrar uma Sprint. Ele serve para equipes ágeis Scrum inspecionarem o Sprint anterior e planejarem melhorias a serem implementadas durante o próximo Sprint.

Sprint Review (Revisão de Sprint)

Evento com caixa de tempo de 4 horas, ou menos, para concluir o trabalho de desenvolvimento de um Sprint. Serve para o Time Scrum e as partes interessadas inspecionar o incremento do produto resultante da Sprint, avaliar o impacto do trabalho realizado no progresso geral e atualizar o backlog do produto a fim de maximizar o valor do próximo período.

Stakeholder

Uma pessoa externa ao time com um interesse específico e conhecimento de um produto que é necessário para a descoberta incremental.

Task Board (Quadro de Tarefas)

A forma mais básica de um quadro de tarefas é dividida em três colunas denominadas “Para Fazer”, “Fazendo” e “Feito”. Os cartões são colocados nas colunas para refletir o status atual dessa tarefa.

TDD - Test Driven Development (Desenvolvimento Orientado a Testes)

“Desenvolvimento orientado a testes” é um estilo de programação em que três atividades estão intimamente ligadas: codificação, teste (na forma de escrever testes de unidade) e design (na forma de refatoração).

Teste Exploratório

O teste exploratório é, mais do que estritamente falando, uma “prática”, um estilo ou abordagem para testar o software que muitas vezes é contrastado com o “teste com script”.

Time Scrum

Equipes ágeis, auto-organizadas e compostas por um Dono do Produto, Equipe de Desenvolvimento e Scrum Master.

Timebox (Caixa de Tempo)

Um timebox é um período de tempo previamente acordado durante o qual uma pessoa ou uma equipe trabalha constantemente para a conclusão de algum objetivo.

Testes de Aceitação

Um teste de aceitação é uma descrição formal do comportamento de um produto de software, geralmente expressa como um exemplo ou cenário de uso. Uma série de notações e abordagens diferentes foram propostas para tais exemplos ou cenários. Em muitos casos, o objetivo é que seja possível automatizar a execução de tais testes por uma ferramenta de software, podem ser feitos ad-hoc pela própria equipe de desenvolvimento.

Teste de Unidade

Um teste de unidade é um pequeno fragmento de programa escrito e mantido pelos desenvolvedores da equipe do produto, que executa uma parte restrita do código-fonte do produto e verifica os resultados.

Teste de Usabilidade

O teste de usabilidade é uma técnica empírica exploratória para responder a perguntas como “Como um usuário final responderia ao nosso software em condições realistas?”

User Stories (Histórias de Usuários)

Em consulta com o cliente ou Product Owner, a equipe divide o trabalho a ser feito em incrementos funcionais chamados de “histórias de usuário”.

Valores Scrum

Um conjunto de valores e qualidades fundamentais que sustentam o framework Scrum em equipes ágeis de desenvolvimento de software; compromisso, foco, abertura, respeito e coragem.

Velocidade

Uma indicação opcional, mas frequentemente usada, da quantidade média de Backlog do Produto realizado durante uma Sprint, rastreado pelo Time de Desenvolvimento para uso dentro do Time Scrum.

XP (Extreme Programming)

“Extreme Programming”, uma forma de implementação muito utilizada em equipes ágeis de desenvolvimento de software e se concentra na produção da situação de codificação mais simples para os requisitos do aplicativo e inclui práticas como programação em pares, design incremental e integração contínua.

Waterfall (Cascata)

Chamamos de formato cascata quando o projeto é concluído em etapas sequenciais distintas, passo a passo, até finalmente chegar na mão dos usuários ou clientes. Esse tipo de processo normalmente resulta em grandes atrasos de planejamento, é lento, e muitas vezes resulta em um produto que as pessoas não querem ou não estão dispostas a pagar.

Conclusão

Esses são apenas alguns dos termos mais comuns utilizados pelas equipes ágeis. Independente de você estar trabalhando em uma equipe ágil de desenvolvimento de software ou sendo parte da gestão de uma equipe ágil, vários desses termos vão surgir no seu dia a dia, pode acreditar.

Vou adicionar mais termos conforme for necessário, espero que você tenha gostado do conteúdo e das dicas.

Um grande abraço, e até a próxima.

Contribuição de:

× Fale com a gente!