Estudo empírico da metodologia do desenvolvimento ágil de software
Desenvolvimento ágil de software
-
Upload
diogenesaraujo -
Category
Education
-
view
752 -
download
0
description
Transcript of Desenvolvimento ágil de software
Desenvolvimento Ágil de Software
Diógenes Walison de Araujo
@diogeneswaraujo
#AgiDC
Desenvolvimento de software é um
knowledge work
PlanejamentoNegociaçãoPriorização
AnáliseProgramação
TesteImplantação
SuporteManutenção
PesquisaEvoluçãoCriação
Incerteza é inevitável em projetos de software
Desenvolvimento de software é processo inventivo e com
alto índice de mudança
Modelo Cascata (Waterfall)
Limitações
Exige a definição em detalhes dosrequisitos nos estágios inicias doprocesso, dificultando a resposta amudança
Dificuldade de apresentar o estadoatual do projeto para cliente, versão dosistema somente nos estágios finais doprocesso
Ciclo bloqueante
Pontos Fortes
Documentação produzida em cada fase do ciclo
Modelo evolucionário e iterativo
Pontos Fortes
AdaptativoEntregas rápidas para o clienteEngajamento dos usuários do sistema no processo de desenvolvimentoFeedback contínuo
Limitações
Não suporta contratos baseado em especificaçãoMudança contínua no software
Metodologias tradicionais
EVO – Evolutionary Project Management
UP – Unified Process
RUP – Rational Unified Process
Estrutura das metodologias
Ciclo de Vida
Atividades
Artefatos
Pápeis
Boas práticas
Porque novas abordagens ?
Burocrática e prescritiva
Abordagem preditiva
Documentação abrangente
Orientado a processo
Orientado a ferramenta
Eliminar desperdício
Utilizar maior parte do tempo para o
desenvolvimento e teste do software
Responder rapidamentea mudança
Novos Métodos
DSDM - Dynamic Solutions Delivery Model
XP – Extreme Programming
Adaptive Software Development
Scrum
Crystal
FDD - Feature Driven Development
Lean Development
Kanban
Movimento Ágil de Desenvolvimento de Software
- Fevereiro 2001, Utah – USA
- Representantes de XP, Scrum, DSDM, ASD, Crystal, FDD, Pragmatic Programming
- Alternativas para processos dirigidos ao documentação extensiva e processos rigorosos
- Manifesto Ágil e Princípios Ágil
Manifesto para Desenvolvimento Ágil de Software
Indivíduos e interações mais que processos e ferramentas
Software em funcionamento mais que documentação abrangente
Colaboração com o cliente mais que negociação de contratos
Responder a mudanças mais que seguir um plano
12 Princípios do Manifesto Ágil#1 Satisfazer o cliente através da entrega
contínua e adiantada de software com valor agregado
#2 Mudanças nos requisitos são bem-vindas, mesmo tardiamente no desenvolvimento
#3 Entregar frequentemente software funcionando
#4 Pessoas de negócio e desenvolvedores devem trabalhar em conjunto por todo o
projeto
#5 Construa projetos em torno de indivíduos motivados
#6 O método mais eficiente e eficaz de transmitir informações é através de conversa
face a face
#7 Software funcionando é a medida primária de progresso
#8 Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um
ritmo constante
#9 Contínua atenção à excelência técnica e bom design
#10 Simplicidade é essencial
#11 As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis
#12 Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então
refina e ajusta seu comportamento de acordo
Práticas Ágeis
By Samuel Crescêncio
Métodos ágeis são
adaptivos ao
invés de preditivo
Métodos ágeis são orientados a pessoas ao invés de orientado a
processo
Agilidade é a habilidadede criar e responder a
mudança,afim de produzir ganhos
em um ambiente de negócio
Para se tornar Ágilé preciso :
TransparênciaComunicação
GestãoAlinhamentoAprendizado
Perguntas
Ser ágil depende de
Obrigado !
Referências
Agile and Iterative Development: A Manager’s Guide, Craig Larman
Agile Software Development Ecosystems, Jim Highsmith
Software Engineering , 8ed, Ian Sommerville
Software Engineering – A Practitioners Approach, 6ed, Roger Presman
http://agilemanifesto.org/
http://martinfowler.com/articles/newMethodology.html
http://prezi.com/w6pjte9n4bsq/the-lean-pyramid/
http://www.softwareresults.us/2010/02/software-development-knowledge-work.html