Os principais conceitos ágeis explicados

Os principais conceitos ágeis explicados

Para quem já conhece meia dúzia de termos técnicos e está familiarizado com algumas práticas criadas a partir do desenvolvimento ágil, aprender metologias e conceitos ágeis acaba sendo mais fácil — porque há um certo domínio do conteúdo.

Mas, tanto para quem está começando do zero quanto para quem já tem um certo conhecimento no assunto, sempre surge alguma dúvida do que significa expressões como sprint review, product backlog, BDD ou TDD, e para que diabos eles servem.

Então, se você leu a série que eu fiz sobre os princípios ágeis ou outros artigos que abordam o assunto e ficou com uma ou um milhão de dúvidas sobre os termos técnicos e palavras difíceis, pode gostar do texto de hoje.

Tomei a liberdade de fazer um pequeno glossário ágil para responder suas dúvidas. Quando eu comecei a estudar agile senti falta de um conteúdo assim, por isso fiz o possível para trazer os termos mais importantes. Se você acha que eu esqueci de alguma prática ou conceito importante, sinta-se à vontade para somar ao conteúdo, comentando ali embaixo. :)

Glossário do desenvolvimento ágil

1. Product Owner (P.O.)

Para o desenvolvimento ágil, quanto mais próximo o cliente estiver do time, melhor. O P.O. (pi-ow) é o cara que garante isso. Ele exerce o papel de maior responsabilidade. É a pessoa que representa o cliente e define os itens que compõem o Backlog (2) .

Definir metas, priorizar e aprovar a qualidade do produto em desenvolvimento, procurando garantir o maior retorno ao investimento, também fazem parte das atividades do P.O.

2. Product Backlog

O Backlog é uma lista de todas as funcionalidades pensadas para um produto. Quem define esse conteúdo é o P.O. (1), durante o Sprint Planning Meeting (6).

Inicialmente, o Backlog começa com as necessidades mais básicas, mas geralmente muda com o tempo, de acordo com o aprendizado do time sobre o produto que está desenvolvendo e seus usuários (reais ou potenciais).

Manter uma lista priorizada é importante para o fluxo de produção, para dar mais visibilidade às trocas que acontecem e aos efeitos dessas mudanças. Fazem parte do Backlog tarefas técnicas ou atividades diretamente relacionadas às funcionalidades solicitadas.

3. Sprint/Iteração

Em metodologias ágeis, como o Scrum(12), o processo de desenvolvimento é dividido em ciclos de trabalho regulares com duração pré-definida. Sprint é cada um desses ciclos e ocorre em intervalos de uma a quatro semanas, sem alteração.

A cada Sprint um conjunto de requisitos é implementado. A essas implementações contínuas é dado o nome de Incrementos, que, na prática, são pequenos pedaços de produto em funcionamento.

4. Desenvolvimento iterativo e incremental

Já fiz um post introdutório sobre o desenvolvimento iterativo. Se você estiver com tempo, vale a pena dar uma olhada. Mas, resumidamente, é um processo de desenvolvimento que defende que o ciclo de vida de um software (requisitos  -> desenvolvimento  -> testes  -> implantação) deve ser reduzido ao menor tamanho possível e repetido várias vezes com entregas pequenas e regulares de software. Essa repetição cíclica e contínua é chamada de iteração. E os pequenos pedaços entregues a cada ciclo são os incrementos.

5. Daily Meeting ou Stand Up Meeting

Nada mais é do que uma reunião diária que dura poucos minutos (15, 20 minutos), com o objetivo de deixar a comunicação do time sempre ativa e entender como caminha a evolução do projeto.

Para isso, as pessoas devem, além de ouvir o que os outros dizem, responder algumas questões fundamentais sobre sua atividade. O que você fez ontem? O que você fará hoje? Há algum impedimento no seu caminho?

A ideia é que o Daily aconteça sempre no mesmo lugar e no mesmo horário. É muito comum que essa reunião aconteça pela manhã, para ajudar a estabelecer as prioridades do dia.

É importante deixar claro que essa não é uma reunião para resolver problemas. Questões levantadas no Daily devem ser tratadas por um grupo menor de pessoas, que tenham ligação direta com a solução das questões.

6. Sprint Planning Meeting

Com o Backlog (2) pronto, é feita uma reunião para escolher as histórias (itens da lista) com prioridade mais alta para o desenvolvimento. Essas histórias são quebradas em pequenas tarefas, que serão executadas durante o Sprint (3).

No Sprint Planning Meeting, o P.O. tem a função de ajudar a definir e priorizar as histórias. Mas também é interessante quando o P.O. participa da reunião para auxiliar nas quebras de tarefas, pois, nessa etapa, podem surgir algumas dúvidas que só ele consegue responder com segurança.

7. Sprint Retrospective

Reunião que ocorre ao final de cada Sprint (3) e serve para identificar o que funcionou bem durante o ciclo, o que pode ser melhorado e que ações serão adotadas para melhorar.

8. Sprint Review Meeting

Reunião para mostrar o que foi feito durante o Sprint (3). Geralmente, é uma apresentação que tem o formato de um demo das novas funcionalidades.

Algumas Sprint Reviews reúnem usuários e time de desenvolvimento na mesma sala. A ideia nessa configuração é criar um ambiente propício para críticas produtivas, que ajudem a melhorar o produto em construção.

Durante o Sprint Review, o projeto é avaliado em relação ao objetivo geral do Sprint, determinado durante o Sprint Planning Meeting (6).

9. Release planning

É um plano de ação criado no início de cada projeto, baseado nas expectativas do cliente e no histórico de desenvolvimento do produto.

Como não é possível que o time conheça tudo no início, o Release Plan não precisa ser detalhado. Mas é interessante que aborde a quantidade e a duração dos Sprints (3), o número de pessoas ou times que participarão do projeto, a quantidade de entregas (releases), o valor a ser entregue em cada release e a data de liberação de cada um deles.

10. Deploy

Deploy ou Deployment significa instalar aplicações em um servidor e disponibilizá-las para o usuário. Da próxima vez que você ouvir alguém dizendo que vai “deployar”, já sabe do que se trata.

11. Extreme Programming (XP)

É uma metodologia de desenvolvimento ágil de software para pequenos e médios times, que ajuda a criar sistemas em menos tempo, com mais qualidade e economia.

Assim como o Manifesto Ágil, essa metodologia também tem seus próprios valores e princípios.

12. Scrum

É uma metodologia popular de desenvolvimento ágil para gestão e planejamento de projetos de software. Segue os valores e princípios do Manifesto Ágil.

13. Scrum Master

É a pessoa responsável por garantir que o time respeite e siga os valores e as práticas da metodologia Scrum (12). É uma função geralmente exercida por um gerente de projeto ou por um líder técnico, mas pode ser qualquer integrante da equipe com habilidade para gerenciamento e liderança.

Outra preocupação do Scrum Master é cuidar para que o time não se comprometa com tarefas que não é capaz de realizar durante um Sprint (3). O Scrum Master também atua como facilitador do Daily Meeting (5), sendo a pessoa responsável por tirar do caminho os obstáculos levantados durante essas reuniões.

14. Test Driven Development (TDD)

É o desenvolvimento orientado por testes. O que, na prática, significa escrever um caso de teste antes de programar a real implementação.
O ciclo de desenvolvimento com o TDD acontece em três passos:

  1. Criar um teste e observá-lo falhar;
  2. Escrever um código suficientemente simples para o teste passar;
  3. Refatorar para remover duplicidade.

Você deve estar se perguntando o que é “refatorar”. Bom, refatoração é o processo de modificar um sistema de software para melhorar a estrutura interna do código sem alterar seu comportamento externo.

15. Behaviour Driven Development (BDD)

O Desenvolvimento Guiado por Comportamento (BDD) é uma técnica de desenvolvimento ágil que encoraja a colaboração entre desenvolvedores, pessoas responsáveis pela qualidade, não técnicas e de negócios em um projeto de software.

16. Continuous Delivery (Entrega Contínua)

Ao aplicar práticas e técnicas de Continuous Delivery, os times de desenvolvimento entregam novas versões de software de maneira contínua, reduzindo o tempo do ciclo de vida da implantação de funcionalidades e trazendo mais agilidade para os negócios.

Next Post:
Previous Post: