desenvolvimento agil

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

Upload: renatobento

Post on 23-Dec-2015

19 views

Category:

Documents


1 download

DESCRIPTION

Desenvolvimento Ágil de Software

TRANSCRIPT

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