Semana 05: Introdução ao Manifesto Ágil e ao Scrum

O Manifesto Ágil surgiu como uma resposta à necessidade de métodos mais flexíveis e adaptativos no desenvolvimento de software. Criado por 17 especialistas, ele se baseia em princípios fundamentais que priorizam indivíduos e interações, software funcionando, colaboração com o cliente e respostas rápidas a mudanças. Esses valores são essenciais para a criação de software que realmente atenda às necessidades dos clientes, focando na entrega contínua de valor.

O Scrum, um dos métodos ágeis mais populares, organiza o desenvolvimento em Sprints – ciclos curtos de trabalho que geralmente duram de duas a quatro semanas. Durante esse período, as equipes trabalham de forma colaborativa e autogerenciável para entregar um produto funcional que pode ser revisado e aprimorado continuamente.

Aprofundando no Manifesto Ágil

O Manifesto Ágil é composto por quatro valores fundamentais e doze princípios que guiam o desenvolvimento ágil de software. Esses valores e princípios enfatizam a importância das pessoas, a entrega contínua de software funcional, a colaboração com o cliente e a flexibilidade para responder a mudanças.

Os valores do Manifesto Ágil são:

Principais valores do Manifesto Ágil

  1. Indivíduos e interações mais que processos e ferramentas: O foco é nas pessoas e na comunicação entre elas, pois isso facilita a resolução de problemas e promove a inovação.
  2. Software em funcionamento mais que documentação abrangente: A entrega de software que funciona é a principal medida de sucesso, com documentação suficiente para apoiar o desenvolvimento sem sobrecarregar o processo.
  3. Colaboração com o cliente mais que negociação de contratos: Envolver o cliente durante todo o desenvolvimento permite que as necessidades sejam atendidas de forma mais eficaz e que o produto entregue agregue valor real.
  4. Responder a mudanças mais que seguir um plano: Projetos de software são dinâmicos, e é essencial adaptar-se rapidamente a mudanças para manter a relevância e a competitividade.

Os 12 Princípios do Manifesto Ágil

Além dos valores, o Manifesto Ágil inclui doze princípios que orientam as práticas ágeis:

  1. Satisfazer o cliente com entregas contínuas de software de valor.
  2. Receber bem as mudanças de requisitos, mesmo tardiamente no desenvolvimento.
  3. Entregar software funcional com frequência, de semanas a meses.
  4. Promover a colaboração contínua entre a equipe de negócios e a de desenvolvimento.
  5. Construir projetos em torno de indivíduos motivados, fornecendo o ambiente e suporte necessário.
  6. A comunicação mais eficiente é cara a cara.
  7. Software funcionando é a medida primária de progresso.
  8. Promover o desenvolvimento sustentável, com ritmo constante.
  9. Atenção contínua à excelência técnica e bom design aumenta a agilidade.
  10. Simplicidade é essencial.
  11. As melhores arquiteturas, requisitos e projetos emergem de equipes auto-organizáveis.
  12. Refletir regularmente sobre como se tornar mais eficaz e ajustar comportamentos de acordo.

Implementando o Scrum

O Scrum, como um framework ágil, coloca esses valores e princípios em prática por meio de Sprints, reuniões regulares como o Sprint Planning, Daily Scrum, Sprint Review, e Sprint Retrospective. Cada Sprint resulta em um incremento do produto, que deve ser potencialmente utilizável e entregar valor ao cliente.

O Scrum define papéis claros: Product Owner, Scrum Master e Equipe de Desenvolvimento. Cada um tem responsabilidades específicas, garantindo que o projeto avance de maneira eficiente e organizada.

Processo Scrum

Essa abordagem permite que as equipes respondam rapidamente a mudanças, mantenham uma comunicação aberta e contínua, e entreguem software que atenda às necessidades reais dos clientes.

Extreme Programming (XP)

Além do Scrum, outra metodologia ágil amplamente utilizada é o Extreme Programming (XP). O XP se concentra em melhorar a qualidade do software e a capacidade de resposta às mudanças dos clientes por meio de práticas técnicas específicas. É conhecido por sua ênfase em feedback constante, comunicação intensiva e entrega contínua de software de alta qualidade.

Algumas das práticas-chave do XP incluem:

Principais práticas
  1. Programação em Par: Dois programadores trabalham juntos em uma única estação de trabalho. Um escreve o código enquanto o outro revisa cada linha à medida que é escrita, proporcionando revisões de código contínuas.
  2. Testes Automatizados: Antes que qualquer código seja escrito, os testes são desenvolvidos para definir o comportamento esperado. Isso assegura que o software funciona conforme o esperado desde o início.
  3. Refatoração: O código é continuamente melhorado e simplificado, sem adicionar novas funcionalidades, para manter a base de código limpa e eficiente.
  4. Integração Contínua: O código é integrado ao repositório principal várias vezes ao dia, com testes automatizados executados a cada integração, garantindo que o software permaneça em um estado funcional.
  5. Pequenas Entregas: O trabalho é dividido em pequenas iterações, com entregas frequentes de software funcional ao cliente.

Práticas com Scrum

Recentemente, realizamos duas práticas que exemplificam a aplicação do Scrum:

Prática 1: Desenhando uma Casa

Em um pedaço de papel, cada participante foi instruído a desenhar uma casa. No entanto, o objetivo era que todos perguntassem ao professor (que representava o cliente) o que deveria ser incluído na casa. Ninguém fez isso. Esse exercício destacou a importância de manter a satisfação do cliente ao entender e atender às suas necessidades desde o início.

Prática 2: Produção de Aviões de Papel

Nesta prática, aplicamos o método Scrum para a produção de aviões de papel. Tínhamos duas Sprints para entregar o produto, e o professor atuou como o Product Owner (PO). Ele definiu que os aviões deveriam ter 2 portas, 2 janelas para a cabine, 12 janelas e logos nas asas e no corpo do avião, além de mostrar o escopo detalhado de onde cada item deveria ser posicionado.

Nossa equipe organizou-se com um Scrum Master que dividiu as funções:

  • Um membro ficou responsável por montar os aviões de papel.
  • Outro desenhou as janelas e portas.
  • Um terceiro desenhou as logos.
Linha de Produção dos Aviões:

Na primeira Sprint, a equipe estimou a entrega de 5 aviões, mas superamos a meta, entregando 6. Na segunda Sprint, a estimativa foi de 6 aviões, mas conseguimos entregar 10.