23
Desenvolvimento Ágil de Software UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Prof.ª Adriana dos Santos Caparróz Carvalho

Desenvolvimento agil

Embed Size (px)

DESCRIPTION

Desenvolvimento Ágil de Software

Citation preview

Page 1: Desenvolvimento agil

Desenvolvimento Ágil de Software

UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SULSISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE

Prof.ª Adriana dos Santos Caparróz Carvalho

Page 2: Desenvolvimento agil

Introdução

CAOS

EXCESSO

DE PADRÕES

NOVA

ORDEM

Cada um fazia do seu jeito...Cada um fazia do seu jeito...

Software de baixa qualidadeSoftware de baixa qualidadeMal estar entre desenvolvedor e cliente.Mal estar entre desenvolvedor e cliente.então a Ordem... a Engenharia de Softwareentão a Ordem... a Engenharia de Software

Surgimento de Modelos de SoftwareSurgimento de Modelos de SoftwareModelo em Cascata, em Espiral, de Modelo em Cascata, em Espiral, de PrototipaPrototipaççãoão, , Iterativo e Incremental.Iterativo e Incremental.

••As mudanAs mudançças são as são dificeisdificeis e caras;e caras;••Baixa satisfaBaixa satisfaçção do cliente e da equipe de ão do cliente e da equipe de desenvolvimento.desenvolvimento.

Page 3: Desenvolvimento agil

Um pouco de história...

� Início do desenvolvimento de software: CAOS!�Cada um fazia do seu jeito!�Resultados

� Software de baixa qualidade� Mal estar entre desenvolvedores e clientes

Page 4: Desenvolvimento agil

Um pouco de história...

� “Necessidade de Organização: ORDEM�A busca pela Engenharia de Software�Processos Descritivos de Software

� RUP, EUP, etc...

�Resultados� Software de baixa qualidade� Mal estar entre desenvolvedores e clientes

Page 5: Desenvolvimento agil

Qual a solução?

8080

Caos

88

�� Baixa qualidade do Baixa qualidade do softwaresoftware

�� Baixa satisfaBaixa satisfaçção de ão de clientes e equipe de clientes e equipe de desenvolvimentodesenvolvimento

Ordem

Page 6: Desenvolvimento agil

Movimento Ágil

� Movimento político emergente que ataca a velha guarda e propõe mudanças revolucionárias

� Movimento iniciado por programadores experientes e consultores em desenvolvimento de software.

� Os métodos ágeis foram desenvolvidos em um esforço para vencer as fraquezas percebidas e reais da engenharia de software convencional.

Page 7: Desenvolvimento agil

Movimento Ágil

� Questionam e se opõe a uma série de mitos/práticas adotadas em abordagens tradicionais de Engenharia de Software e Gerência de Projetos.

� Manifesto Ágil:• Assinado por 17 desenvolvedores em Utah em

fevereiro/2001.

Page 8: Desenvolvimento agil

O Manifesto Ágil � “Estamos descobrindo melhores

maneiras/práticas de desenvolver software,fazendo-o e ajudando outros a fazê-lo.

Através deste trabalho passamos a valorizar:

� Indivíduos e interações mais que processos e ferramentas.� Software que funciona mais que documentação detalhada.� Colaboração do cliente mais que negociações contratuais.

� Responder às mudanças mais que seguir um plano.

� Isto é, embora haja valor nos itens do lado direito,nós valorizamos mais os do lado esquerdo.”

� http://www.agilemanifesto.org

Page 9: Desenvolvimento agil

O Manifesto Ágil

� Indivíduos e interações valem mais que processos e ferramentas�Quem desenvolve o software?�Melhores ferramentas não são segurança de

trabalho bem feito� “Um idiota com uma ferramenta ainda é um idiota”

Page 10: Desenvolvimento agil

O Manifesto Ágil

� Um software funcionando vale mais do que documentação extensa�O que um cliente gostaria de receber? O software

ou um documento explicando o software??�Clientes não entendem documentos técnicos!

Page 11: Desenvolvimento agil

O Manifesto Ágil

� A colaboração do cliente vale mais do que a negociação do contrato�Apenas os clientes podem dizer o que querem

(não somos adivinhos!)�Eles nunca acertam da 1ª vez!�Contrato é importante

� Direitos e deveres

�Contrato não substitui a comunicação

Page 12: Desenvolvimento agil

O Manifesto Ágil

� Responder a mudanças vale mais do que seguir um plano�As pessoas mudam de prioridade!�O ambiente, as necessidades mudam�Plano de Projeto é essencial, mas deve ser

maleável

Page 13: Desenvolvimento agil

O Manifesto Ágil

� Objetivo: satisfazer o cliente entregando, rapidamente e com freqüência, sistemas com algum valor.�Entregar versões funcionais em prazos curtos.

�Estar preparado para requisitos mutantes.

�Pessoal de negócios e desenvolvedores juntos.

�Troca de informações através de conversas diretas.

Page 14: Desenvolvimento agil

O que é agilidade?

� Agilidade é a habilidade tanto para criar quanto

para responder à mudança, de forma a obter lucro

em um ambiente turbulento de negócios.

� Mais do que simplesmente diminuir a quantidade de documentação e de processos, também são aspectos importantes da agilidade:� o foco nas pessoas e suas interações;� a capacitação de indivíduos para tomar decisões

rapidamente;� a adaptação de seus próprios processos.

Page 15: Desenvolvimento agil

12 Princípios da Aliança Ágil

� Nossa maior prioridade é satisfazer o cliente desde o início por meio de entrega contínua de software valioso.

� Modificações de requisitos são bem-vindas, mesmo que tardias no desenvolvimento.

� Entrega de software funcionando freqüentemente no menor espaço de tempo.

Page 16: Desenvolvimento agil

12 Princípios da Aliança Ágil

� O pessoal de negócio e os desenvolvedores devem trabalhar juntos diariamente durante todo o projeto.

� Construção de projetos em torno de indivíduos motivados.

� O método mais efetivo de levar informação para uma equipe de desenvolvimento é por meio da conversa face a face.

Page 17: Desenvolvimento agil

12 Princípios da Aliança Ágil

� Software funcionando é a principal medida de progresso.

� Processos ágeis promovem desenvolvimento sustentável.

� Atenção contínua à excelência técnica e ao bom projeto facilitam a agilidade.

Page 18: Desenvolvimento agil

12 Princípios da Aliança Ágil

� Simplicidade: a arte de maximizar a qualidade de trabalho efetuado.

� As melhores arquiteturas, requisitos e projetos surgem de equipes auto-organizadas.

� Em intervalos regulares, a equipe reflete sobre como se tornar mais efetiva, então sintoniza e ajusta adequadamente seu comportamento

Page 19: Desenvolvimento agil

Suposições-chave do processo ágil

� É difícil prever quais requisitos de software vão persistir e quais serão modificados.

� Para muitos tipos de software, o projeto e a construção são intercalados.

� Análise, projeto, construção e testes não são tão previsíveis como gostaríamos.

Page 20: Desenvolvimento agil

Um processo ágil, portanto, deve ser

� Adaptável.�Mas a adaptação contínua sem progresso

realiza pouco. Assim,

� Deve ser adaptado incrementalmente.�Abordagem iterativa: o cliente a avalia o

incremento de software regularmente, fornece o feedback necessário à equipe de software e influencia as adaptações do processo feitas para acomodar o feedback.

Page 21: Desenvolvimento agil

Modelos Ágeis de Processo

� Há muitas semelhanças (em filosofia e prática) entre as abordagens de desenvolvimento ágil.

� É preciso enfatizar as características que tornam cada método singular.

� Todos os modelos ágeis satisfazem (em maior ou menor grau) o Manifesto para o Desenvolvimento Ágil.

Page 22: Desenvolvimento agil

Modelos Ágeis de Processo

� Scrum� Dynamic Systems Development Method – DSDM� Adaptive Software Development - ASD� Crystal� Feature-Driven Development - FDD� Extreme Programming - XP� Rational Unified Process - RUP � Open Source Software Development� Pragmatic Programming

Page 23: Desenvolvimento agil

Modelos Ágeis de Processo

� Qual a filosofia do modelo?� Como se organiza a prática do modelo?� Quais as atividades de “arcabouço”?� Ferramentas� Métricas� Aplicações