Desenvolvimento agil
-
Upload
renatobento -
Category
Documents
-
view
19 -
download
1
description
Transcript of 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
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.
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
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
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
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.
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.
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
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”
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!
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
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
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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