Desenvolvimento Ágil

Table of Contents

1 Metodologia ágil

Começou com o Manifesto Ágil (https://agilemanfesto.org), cujos valores são:

  • Pessoas e interações valem mais do que processos e ferramentas.
  • Software funcional vale mais do que documentacão extensa.
  • Colaboração com o cliente vale mais do que negociação de contrato.
  • Resposta a mudanças vale mais do que seguir um plano.

Note que vale mais não quer dizer substitui.

1.1 Princípios

Lá são definidos 12 princípios, resumidos aqui:

  1. Nossa maior prioridade é satisfazer o cliente pela entrega contínua e rápida de software valioso.
  2. Mudanças são sempre bem vindas, mesmo na parte final do desenvolvimento.
  3. Entregar software funcional frequentemente, em intervalos de poucas semanas a poucos meses, favorecendo intervalos mais curtos.
  4. Negociantes e desenvolvedores devem trabalhar juntos e diariamente durante o projeto.
  5. O projeto dese ser feito com indivíduos motivados.
  6. A melhor forma de comunicação é face a face.
  7. Software funcional é a principal medida de progresso.
  8. O ritmo de desenvolvimento deve ser constante.
  9. Atenção contínua à excelência técnica e bom projeto.
  10. Simplicidade é essencial.1
  11. As melhores arquiteturas, requisitos e projetos surgem de times auto-organizados.
  12. Reflexões e ajustes devem ocorrer em intervalos regulares.

2 Scrum

Scrum é um framework, um conjunto de diretrizes indicando como construir um projeto baseado no manifesto ágil. Embora idealizado para desenvolvimento de software, pode ser usado em outras situações também.

2.1 Sprint

A base de Scrum é o centro do ciclo de desenvolvimento, chamado de Sprint. A sprint deve ser bem curta, tipicamente de 2 semanas a um mês no máximo. Ao final de cada sprint uma nova versão do projeto deve ser entregue, mesmo que seja apenas a adição de uma característica ou correção de alguns bugs.

Cada sprint é composta pelas seguintes tarefas:

Planejamento
É uma reunião onde se decide o que será feito no restante do ciclo.
Reunião diária
Acontece todos os dias e é bem curta (15 minutos). Serve para sincronizar os trabalhos e decidir as metas do dia.
Desenvolvimento
Quebrado em tarefas diárias.
Revisão
Reunião ao final da sprint para verificar os incrementos feitos e ajustar os alvos.
Retrospectiva
É uma reunião entre sprints para definir melhorias e ajustes de procedimento.

2.2 Backlog

As tarefas são mantidas em uma lista, chamada backlog. Em cada sprint algumas são retiradas para serem executadas e eventualmente outras são colocadas.

2.2.1 Kanban

Uma boa forma de gerenciar as tarefas é o Kanban, criado pela Toyota. Nele, são colocadas várias listas, começando pelo backlog. As outras podem ser:

  1. A fazer
  2. Fazendo
  3. Concluída
  4. Entregue

As tarefas são movidas de uma lista para a seguinte, mostrando claramente o andamento do projeto. A lista "entregue" indica que a tarefa já passou pelo crivo do cliente.

Simple_Task_Kanban.jpg

Existem várias ferramentas online para implementar o Kanban e variações. Uma bastante popular e simples de usar é o Trello https://trello.com, gratuito para o uso básico, que já é mais do que suficiente para a maioria dos projetos.

2.3 Papéis

Existem 3 papéis (roles) fundamentais no Scrum. Estes papéis não são necessariamente fixos e podem mudar de uma sprint para a seguinte. Aliás, isso é até recomendado. Manterei alguns termos em inglês por serem padronizados:

ScrumMaster
É quem mantém o andamento do processo, organizando as reuniões, verificando e resolvendo impedimentos e organizando as atividades.
Product Owner
É quem gerencia o backlog e é responsável por deixar as tarefas bem claras.
Team
O time deve ser pequeno2 e deve conter todos os especialistas necessários. No nosso caso, é o time de desenvolvimento, composto por programadores. Poderia incluir web-designers por exemplo.

O time se auto-organiza e as tarefas são delegadas. A programação deve ser feita aos pares, com uma pessoa codificando e a outra verificando e corrigindo em tempo real.

Footnotes:

1

Neste contexto, simplicidade é a arte de maximizar a quantidade de trabalho feita.

2

Uma pizza deveria ser suficiente para todos comerem pelo menos um pedaço ou quase, ou seja, de 4 a 9 pessoas. Esta regra não é fixa.

Author: Marco Dimas Gubitoso

Created: 2019-05-02 qui 14:57

Emacs 25.2.2 (Org mode 8.2.10)

Validate