Você está na página 1de 16

Arquitetura de Software

Tema 03 – Métodos Ágeis de


Desenvolvimento
Bloco 1
Sérgio Eduardo Nunes
Objetivos

• Compreender os métodos ágeis de desenvolvimento de software.


• Diferenciar o desenvolvimento ágil de um desenvolvimento dirigido a planos.
• Conhecer as práticas do extreme programming.
• Conhecer o método SCRUM para desenvolvimento do software.
Conceitos Básicos

Segundo Sommerville (2011), os métodos ágeis são baseados em uma abordagem


incremental. Sua principal aplicação é em desenvolvimentos com mudanças rápidas
durante o projeto de desenvolvimento do software. Em aspectos gerais, qualquer
metodologia ágil deve possuir os princípios:
• Cliente: o envolvimento do cliente deve acontecer durante todo o projeto.
• Entrega: devem ser incrementais, de acordo com as necessidades e especificações
de requisitos.
• Pessoas: as habilidades individuais dos integrantes da equipe devem ser exploradas,
dando liberdade ao processo criativo, sem preocupação com os processos.
• Mudanças: a escolha dos métodos ágeis, tem como premissa aqueles projetos com
mudanças de requisitos, por isso seu planejamento deve ter tais previsões.
• Simplicidade: eliminar as complexidades e partir para o mais simples, tanto na
busca de soluções, quantos nos processos, mesmo que individuais.
Métodos Ágeis – Pontos de atenção

Stephens e Rosenberg (2003) apontam algumas deficiências nos métodos ágeis de


desenvolvimento de software, entre eles:
• Manter o cliente envolvido no projeto é algo muito difícil de ocorrer em termos
práticos. O cliente entende que se tem alguém cuidando do projeto de
desenvolvimento, não há mais nenhum trabalho a ser feito.
• Como uma das premissas não é focar na documentação, boa parte das soluções e
implementações estão sob domínio da equipe de desenvolvimento.
• Na fase de evolução do software deve haver um planejamento cuidadoso nas
entregas, a fim de que não comprometa as atividades do cliente.

Fonte: Imagens Online – Office 2016


Desenvolvimento Dirigido a Planos

Segundo Sommerville (2011), no


desenvolvimento dirigido a planos,
existe uma iteração entre as
atividades e os documentos
formais. Isso permite que as saídas
de um processo sejam utilizadas
como base de planejamento para
as atividades do processo posterior.

Fonte: Imagens Online – Office 2016


Dirigido a Planos X Métodos Ágeis

Fonte: elaborado pelo autor.


Arquitetura de Software
Tema 03 – Métodos Ágeis
Bloco 2
Sérgio Eduardo Nunes
Extreme Programming (XP)

Segundo Beck (2000), essa metodologia de desenvolvimento visa impulsionar as boas


práticas, permitindo um desenvolvimento iterativo, elevados a níveis extremos, daí o
nome Programação ao extremo.
• Os requisitos são colocados como cenários e conhecidos como história do usuário.
• A equipe é disposta em pares, onde são efetuados testes em cada tarefa
desenvolvida.
• Quando uma nova funcionalidade vai ser integrada ao software, os testes já foram
previamente executados.
• Todas as características inerentes aos métodos ágeis, também são utilizadas no XP.
Como o desenvolvimento incremental, o envolvimento com o cliente, a valorização
pessoal, e a rapidez de respostas as mudanças ocorridas no projeto.
Extreme Programming (XP) - Características

• O cliente e a equipe de desenvolvimento devem definir os requisitos, onde é


possível elaborar o cartão com a história do usuário.
• Após o desenvolvido do cartão de história, é possível transformar esses requisitos
em tarefas.
• Com isso, é possível que aconteçam as fases, bem como distribuir as tarefas para a
equipe de desenvolvimento.
• Dado a fase de desenvolvimento, como esse processo é desenvolvido em pares, os
testes de cada funcionalidade são feitos até que tudo esteja dentro do acordado no
levantamento de requisitos.
• O software, ou a funcionalidade, é implementado, e o usuário pode começar a
interagir com o sistema.
• Por meio da interação com o usuário são geradas saídas, que podem fazer com que
surjam novos cartões de história do usuário.
Extreme Programming (XP) - Práticas

• Fases pequenas, o que possibilita entregas constantes.


• Design simples, a fim de partir para resolução dos problemas.
• Teste de aceitação para que uma funcionalidade só seja agregada ao sistema
quando tudo estiver em perfeito funcionamento.
• Semana de 40 horas de desenvolvimento, o que possibilita boa carga de trabalho,
sem que ocorra desgaste dos integrantes da equipe.
• Programação pareada, como uma característica da metodologia.
• Desenvolvimento orientado a testes, possibilitando menor número de retrabalho.
Otimizando o tempo de desenvolvimento (40 horas semanais).
• Padronização do código, pois o trabalho é segmentado com os pares da equipe.
• Integração contínua, sendo necessário para que o cliente forneça novos cartões de
história do usuário.
SCRUM

Fonte: Imagens Online – Office 2016


SCRUM

• Inicialmente, o SCRUM foi utilizado em processos de manufatura, onde o


objetivo era acelerar o processo de desenvolvimento de novos produtos.
• O termo foi exposto para a comunidade científica em 1986, pelo professor
Hirota Takeuchi, na Universidade de Harvard.
• Entretanto, sua utilização associado ao desenvolvimento ágil tem registro em
1993, na empresa Easel Corporation, pelo desenvolvedor de software Ken
Schwaber e Sutherland.
• No ano de 1995, a metodologia denominada como SCRUM, foi apresentada na
conferência de programação orientada a objetos, sistemas, linguagens e
aplicações, no Texas (EUA).
SCRUM - Aplicação

Fonte: Imagens Online – Office 2016


SCRUM - Vantagens

• Entregas frequentes: as entregas devem ocorrer desde o início do projeto, com


apenas as funcionalidades básicas.
• Qualidade no produto: a verificação da qualidade deve ser validada tanto pela
equipe, quanto pelo cliente. É possível que isso ocorra em pequenos ciclos, pois as
entregas são constantes.
• Adaptação às mudanças bruscas: o SCRUM deve permitir que ao trocar a prioridade
dentro de um projeto, ou ainda, ter uma mudança de necessidade no
desenvolvimento, exista a possibilidade de que planejamento e equipe recebam os
direcionamentos necessários para as entregas do projeto.
• Aumento da produtividade: as entregas e validações ocorrendo em espaços curtos
de tempo, possibilitam o aumento das entregas.
• Redução dos riscos: os processos colaborativos, entre a equipe de desenvolvimento
e os clientes, possibilitam que os riscos sejam reduzidos ao longo das diversas
tarefas ligadas ao desenvolvimento de software.
Referências

• BECK, Kent; FOWLER, Martin. Planning Extreme Programming. Boston: Addison-


Wesley Professional, 2001.
• MASSARI, V. Gerenciamento Ágil de Projetos. Rio de Janeiro: Brasport, 2014.
• MATT, Stephens; Rosenberg, Doug. Extreme Programming Refactored: The case
Agnist XP. 1ª Ed. Berkeley: Apress, 2003.
• SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson, 2011.
• TELES, V. M. Extreme Programming. 1. ed. São Paulo: Novatec, 2014.

Você também pode gostar