29
Processos de Software Ganhando agilidade e entregando software de forma iterativa e participativa

UnP Eng. Software - Aula 5

Embed Size (px)

DESCRIPTION

Esta apresentação representa a introdução a metodologias ágeis e métodos iterativos e incrementais.

Citation preview

Page 1: UnP Eng. Software - Aula 5

Processos de SoftwareGanhando agilidade e entregando software de forma iterativa e participativa

Page 2: UnP Eng. Software - Aula 5

©2010 - Hélio Medeiros

Quem SOU ?

Hélio MedeirosAnalista de Sistemas

SINFO - UFRN

Blog: http://heliomedeiros.comEmail: [email protected]

Page 3: UnP Eng. Software - Aula 5

QUE TAL UM NOVO MODELO ?PRONTO PARA A PROPOSTA !!!

©2010 - Hélio Medeiros

Page 4: UnP Eng. Software - Aula 5

MENOS STRESS !!!

©2010 - Hélio Medeiros

Page 5: UnP Eng. Software - Aula 5

COM ENTREGAS REPETÍVEIS

©2010 - Hélio Medeiros

PRAZOS CERTOS

Page 6: UnP Eng. Software - Aula 5

QUE REALMENTE FUNCIONEM !

©2010 - Hélio Medeiros

Page 7: UnP Eng. Software - Aula 5

QUE CONDIZEM COM AS NECESSIDADES

©2010 - Hélio Medeiros

Page 8: UnP Eng. Software - Aula 5

DE FORMA ÁGIL E PRODUTIVA

©2010 - Hélio Medeiros

Page 9: UnP Eng. Software - Aula 5

Nossa Aula

Parte 1 - Ganhando Velocidade

Parte 2 - Manifesto Ágil

Parte 3 - Modelo iterativo

Parte 4 - Dúvidas

©2010 - Hélio Medeiros

Page 10: UnP Eng. Software - Aula 5

©2010 - Hélio Medeiros

1 Ganhando velocidade

Page 11: UnP Eng. Software - Aula 5

Um estado mental, não um conjunto de documentos, passos e técnicas;

Uma atitude, não um processo;

Um ambiente, não uma metodologia;

Desenvolvimento iterativo;

Entrega de produtos com valor para o negócio, mais rápido e continuamente;

Garantir progresso real;

Abraçar mudanças;

Boa comunicação entre os membros;

Melhor comunicação entre negócios e TI;

Qualidade desde o início;

Introdução às abordagens ágeisOs princípios

©2010 - Hélio Medeiros

Page 12: UnP Eng. Software - Aula 5

Um estado mental, não um conjunto de documentos, passos e técnicas;

Uma atitude, não um processo;

Um ambiente, não uma metodologia;

Desenvolvimento iterativo;

Entrega de produtos com valor para o negócio, mais rápido e continuamente;

Garantir progresso real;

Abraçar mudanças;

Boa comunicação entre os membros;

Melhor comunicação entre negócios e TI;

Qualidade desde o início;

Introdução às abordagens ágeisOs princípios

©2010 - Hélio Medeiros

Page 13: UnP Eng. Software - Aula 5

Introdução às abordagens ágeisO que é agilidade?

Jim HighsmithUm dos principais escritores sobre

AGILE e criador da ASD.

“Agilidade é a habilidade para criar e responder à mudança, para lucar num ambiente turbulento de

negócios.”

“Agilidade é a habilidade para equilibrar flexibilidade e estabilidade.”

©2010 - Hélio Medeiros

Page 14: UnP Eng. Software - Aula 5

Introdução às abordagens ágeisO que NÃO é agilidade?

©2010 - Hélio Medeiros

http://www.youtube.com/watch?v=RzToNo7A-94

Page 15: UnP Eng. Software - Aula 5

©2010 - Hélio Medeiros

2 Manifesto Ágil

Page 16: UnP Eng. Software - Aula 5

O manifesto diz:“Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através desse trabalho, passamos a valorizar:

Introdução às abordagens ágeisO manifesto Ágil

Indivíduos e a interação entre eles mais que processos e ferramentas

Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.”

http://agilemanifesto.org

Produto em funcionamento mais que documentação abrangenteColaboração com o cliente mais que negociação de contratos

Responder a mudanças mais que seguir um plano

©2010 - Hélio Medeiros

Page 17: UnP Eng. Software - Aula 5

Indivíduos e a interação entre eles mais que processos e ferramentas

Processos fornecem direcionamento e suporte, e ferramentas produtividade, mas sem as pessoas certas, que possuam satisfatório conhecimento técnico e habilidades para formar equipe altamente eficaz, todos os processos e ferramentas irrão falhar;

Bons processos devem auxiliar o time mais que ditar as ações de seus membros;

Processos devem se adaptar ao time, e não o inverso;

Processos e ferramentas são úteis, mas quando decisões tiverem que ser tomadas, estas serão feitas de acordo com a capacidade e conhecimento de seu time;

Introdução às abordagens ágeisDecifrando o manifesto

Agile Project Management - Jim Highsmith©2010 - Hélio Medeiros

Page 18: UnP Eng. Software - Aula 5

Produto em funcionamento mais que documentação abrangente

Troque a entrega de documentação e artefatos por versões iterativas de um produto real que será útil para o cliente;

Documentos não funcionam. Produtos sim;

No entanto, produtos funcionando não excluem a necessidade de documentação. Documentos auxiliam a comunicação e colaboração, facilitam a transferência de conhecimento e preservam informações históricas. Não estamos dizendo que documentação não é importante, mas apenas que é menos importante que o produto funcionando;

Documentação não deve substituir a interação;

Introdução às abordagens ágeisDecifrando o manifesto

Agile Project Management - Jim Highsmith©2010 - Hélio Medeiros

Page 19: UnP Eng. Software - Aula 5

Colaboração com o cliente mais que negociação de contratos

Em projetos ágeis, clientes e gerentes de produto são os guias;

A meta de um time em projeto ágeis é entregar valor para o cliente;

Clientes definem o que é valor;

Introdução às abordagens ágeisDecifrando o manifesto

Agile Project Management - Jim Highsmith©2010 - Hélio Medeiros

Page 20: UnP Eng. Software - Aula 5

Responder a mudanças mais que seguir um plano

Todos os projetos são conhecidos e desconhecidos, certos e incertos, portanto todos estes devem ter um balanceamento entre planejamento e mudanças;

Evite a “Síndrome de Nostradamus”. Existem certos níveis de abstração desnecessários.

Projetos baseados na exploração são caracterizados por um processo com ênfase em formar uma “ante-visão” e então explorá-la dentro de uma vis˜åo, e n˜åo de um plano detalhado.

Rob Austin e Lee Diven citam em Artful Making que o lema “Planeje o trabalho, e trabalhe o plano” os levou ao fracasso em um projeto de TI que envolveu mais de $125 milhões.

Introdução às abordagens ágeisDecifrando o manifesto

Agile Project Management - Jim Highsmith©2010 - Hélio Medeiros

Page 21: UnP Eng. Software - Aula 5

©2010 - Hélio Medeiros

3 Desenvolvimento Iterativo

Page 22: UnP Eng. Software - Aula 5

Uma interação é um “pacote de tempo” que possui um custo fixo e um conjunto de funcionalidades que pode variar;

As funcionalidades que farão parte de uma iteração são priorizadas pelo cliente;

Iterações podem perder funcionalidades, mas nunca datas;

Cliente entende que prioridades no “final da lista” podem ficar de fora da iteração;

Flexibilidade está nas funcionalidades, não no prazo ou no custo;

Introdução às abordagens ágeisDesenvolvimento iterativo

©2010 - Hélio Medeiros

Page 23: UnP Eng. Software - Aula 5

Introdução às abordagens ágeisDesenvolvimento iterativo

Produto

novo release a cada X meses

release 1 release 2 release 3 ... release n

novo iteracao a cada X semanas

iteração 1 iteração 2 iteração 3 iteração 4 ...

©2010 - Hélio Medeiros

Page 24: UnP Eng. Software - Aula 5

Introdução às abordagens ágeisDesenvolvimento iterativo

Produto

release 1

iteração 1 iteração 2 iteração 3 iteração 4 ...Func. AFunc. EFunc. G

Func. BFunc. FFunc. JFunc. Z

Func. CFunc. HFunc. L

Func. DFunc. I

O Release 1 terá as seguintes funcionalidades:

- Funcionalidade A- Funcionalidade B- Funcionalidade C- Funcionalidade D- Funcionalidade E- Funcionalidade F

- Funcionalidade G- Funcionalidade H- Funcionalidade I- Funcionalidade J- Funcionalidade L- Funcionalidade Z

©2010 - Hélio Medeiros

Page 25: UnP Eng. Software - Aula 5

Introdução às abordagens ágeisO ciclo de vida de projetos ágeis

Visão

Especulação

Adaptação

Exploração

Fechamento

Visão do Produto

Funcionalidades Prontas

Produto Final©2010 - Hélio Medeiros

Page 26: UnP Eng. Software - Aula 5

As abordagens ágeis mais difundidas e praticadas com sucesso são:

Introdução às abordagens ágeisAs abordagens ágeis

Scrum: É uma abordagem ágil para o gerenciamento de projetos. Fornece práticas que ajudam gerentes a tornar mais dinâmico e gerenciável o ambiente

de desenvolvimento de software.

XP (eXtreme Programming): É uma abordagem ágil para a engenharia de projetos. Como o nome diz, extremamente focada no desenvolvimento, e tem

como principal característica a programação em par

FDD (Feature-Driven Development): É uma abordagem ágil para a engenharia de projetos. Defende o desenvolvimento de um modelo abrangente no início

do projeto pelo qual as funcionalidades do sistema serão descobertas e desenvolvidas.

©2010 - Hélio Medeiros

Page 27: UnP Eng. Software - Aula 5

Introdução às abordagens ágeisSucesso com Agile

“O Yahoo! usa Scrum há mais de 22 meses, e possui uma média de 500 colaboradores usando Scrum nos Estados Unidos, Europa e Índia. Scrum vem sendo usado com sucesso em projetos como o Yahoo! Podcasts e outros”

Pete DeemerChief Product Officer, CSM

Yahoo! Bangalore - 25/07/2006

Jeff De LucaGerente de Projeto neste famoso projeto

do United Overseas Bank, em Cingapura

“Quando assumimos o projeto, ele possuía mais de 3.500 use-cases, que haviam levado dois anos de consultoria para serem desenvolvidos. O projeto estava fadado ao fracasso e considerado impossível. Após 15 meses utilizando as práticas da FDD já havíamos entregado 2.000 feautures com uma equipe de 50 pessoas”

©2010 - Hélio Medeiros

Page 28: UnP Eng. Software - Aula 5

©2010 - Hélio Medeiros

4 Perguntas ???

Page 29: UnP Eng. Software - Aula 5

OBRIGADO !!

©2010 - Hélio Medeiros

Hélio Cabral [email protected]://heliomedeiros.com