Processos de Software
Ganhando agilidade e entregando software de
forma iterativa e participativa
Quem SOU ?



    Hélio Medeiros
        Analista de Sistemas
          SINFO - UFRN




   Blog: http://heliomedeiros.com
Email: helio.cabralmedeiros@gmail.com   ©2010 - Hélio Medeiros
QUE TAL UM NOVO MODELO ?
     PRONTO PARA A PROPOSTA !!!



                                  ©2010 - Hélio Medeiros
RES S !!!
 ENO S ST
M


                     ©2010 - Hélio Medeiros
COM ENT REGAS REPETÍVEIS

           PRAZOS CERTOS

                           ©2010 - Hélio Medeiros
QUE REALME NTE FUNCIONEM !




                       ©2010 - Hélio Medeiros
ONDIZEM COM AS NECESSIDADES
QUE C



                          ©2010 - Hélio Medeiros
DE FORMA ÁGIL E PRODUTIVA


                       ©2010 - Hélio Medeiros
Nossa Aula

Parte 1 - Ganhando Velocidade
Parte 2 - Manifesto Ágil
Parte 3 - Modelo iterativo
Parte 4 - Dúvidas




                                ©2010 - Hélio Medeiros
1   Ganhando velocidade




               ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
Os princípios

  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;
                                                            ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
Os princípios

  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;
                                                            ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
O que é agilidade?



                                     “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.”

    Jim Highsmith
Um dos principais escritores sobre
    AGILE e criador da ASD.




                                                                         ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
O que NÃO é agilidade?




       http://www.youtube.com/watch?v=RzToNo7A-94
                                               ©2010 - Hélio Medeiros
2   Manifesto Ágil




                 ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
   O manifesto Ágil

     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:


Indivíduos e a interação entre eles mais que processos e ferramentas
  Produto 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

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

                                                                http://agilemanifesto.org
                                                                     ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
Decifrando o manifesto


  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;

                                       Agile Project Management - Jim Highsmith
                                                                 ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
Decifrando o manifesto


  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;


                                        Agile Project Management - Jim Highsmith
                                                                  ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
Decifrando o manifesto


  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;




                                         Agile Project Management - Jim Highsmith
                                                                      ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
Decifrando o manifesto


  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.
                                         Agile Project Management - Jim Highsmith
                                                                   ©2010 - Hélio Medeiros
3   Desenvolvimento
    Iterativo




               ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
Desenvolvimento iterativo


  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;




                                                         ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
Desenvolvimento iterativo


                                Produto

    release 1 release 2 release 3              ... release n
               novo release a cada X meses



      iteração 1   iteração 2     iteração 3   iteração 4   ...
                   novo iteracao a cada X semanas


                                                              ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
Desenvolvimento iterativo

                                              O Release 1 terá as seguintes
     Produto                                  funcionalidades:

                                              - Funcionalidade A    - Funcionalidade G
                                              - Funcionalidade B    - Funcionalidade H
     release 1                                - Funcionalidade C    - Funcionalidade I
                                              - Funcionalidade D    - Funcionalidade J
                                              - Funcionalidade E    - Funcionalidade L
                                              - Funcionalidade F    - Funcionalidade Z




       iteração 1   iteração 2   iteração 3    iteração 4          ...
                     Func. B
        Func. A                   Func. C        Func. D
                     Func. F
        Func. E                   Func. H        Func. I
                     Func. J
        Func. G                   Func. L
                     Func. Z
                                                                    ©2010 - Hélio Medeiros
Introdução às abordagens ágeis
O ciclo de vida de projetos ágeis

                                         Exploração
   Visão



                                       Funcionalidades Prontas
                     Especulação

                                         Adaptação
  Visão do Produto



                                    Fechamento
                                                                    Produto
                                                      ©2010 - Hélio Medeiros   Final
Introdução às abordagens ágeis
As abordagens ágeis


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

  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
Introdução às abordagens ágeis
      Sucesso 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 Deemer
Chief Product Officer, CSM
    Yahoo! Bangalore -
       25/07/2006



  “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”             Jeff De Luca
                                                                        Gerente de Projeto neste famoso projeto
                                                                            do United Overseas Bank, em
                                                                                      Cingapura
                                                                               ©2010 - Hélio Medeiros
4   Perguntas ???




                ©2010 - Hélio Medeiros
OBRIGADO !!

Hélio Cabral Medeiros
helio.cabralmedeiros@gmail.com
http://heliomedeiros.com


                                 ©2010 - Hélio Medeiros

UnP Eng. Software - Aula 5

  • 1.
    Processos de Software Ganhandoagilidade e entregando software de forma iterativa e participativa
  • 2.
    Quem SOU ? Hélio Medeiros Analista de Sistemas SINFO - UFRN Blog: http://heliomedeiros.com Email: helio.cabralmedeiros@gmail.com ©2010 - Hélio Medeiros
  • 3.
    QUE TAL UMNOVO MODELO ? PRONTO PARA A PROPOSTA !!! ©2010 - Hélio Medeiros
  • 4.
    RES S !!! ENO S ST M ©2010 - Hélio Medeiros
  • 5.
    COM ENT REGASREPETÍVEIS PRAZOS CERTOS ©2010 - Hélio Medeiros
  • 6.
    QUE REALME NTEFUNCIONEM ! ©2010 - Hélio Medeiros
  • 7.
    ONDIZEM COM ASNECESSIDADES QUE C ©2010 - Hélio Medeiros
  • 8.
    DE FORMA ÁGILE PRODUTIVA ©2010 - Hélio Medeiros
  • 9.
    Nossa Aula Parte 1- Ganhando Velocidade Parte 2 - Manifesto Ágil Parte 3 - Modelo iterativo Parte 4 - Dúvidas ©2010 - Hélio Medeiros
  • 10.
    1 Ganhando velocidade ©2010 - Hélio Medeiros
  • 11.
    Introdução às abordagenságeis Os princípios 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; ©2010 - Hélio Medeiros
  • 12.
    Introdução às abordagenságeis Os princípios 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; ©2010 - Hélio Medeiros
  • 13.
    Introdução às abordagenságeis O que é agilidade? “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.” Jim Highsmith Um dos principais escritores sobre AGILE e criador da ASD. ©2010 - Hélio Medeiros
  • 14.
    Introdução às abordagenságeis O que NÃO é agilidade? http://www.youtube.com/watch?v=RzToNo7A-94 ©2010 - Hélio Medeiros
  • 15.
    2 Manifesto Ágil ©2010 - Hélio Medeiros
  • 16.
    Introdução às abordagenságeis O manifesto Ágil 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: Indivíduos e a interação entre eles mais que processos e ferramentas Produto 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 Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.” http://agilemanifesto.org ©2010 - Hélio Medeiros
  • 17.
    Introdução às abordagenságeis Decifrando o manifesto 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; Agile Project Management - Jim Highsmith ©2010 - Hélio Medeiros
  • 18.
    Introdução às abordagenságeis Decifrando o manifesto 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; Agile Project Management - Jim Highsmith ©2010 - Hélio Medeiros
  • 19.
    Introdução às abordagenságeis Decifrando o manifesto 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; Agile Project Management - Jim Highsmith ©2010 - Hélio Medeiros
  • 20.
    Introdução às abordagenságeis Decifrando o manifesto 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. Agile Project Management - Jim Highsmith ©2010 - Hélio Medeiros
  • 21.
    3 Desenvolvimento Iterativo ©2010 - Hélio Medeiros
  • 22.
    Introdução às abordagenságeis Desenvolvimento iterativo 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; ©2010 - Hélio Medeiros
  • 23.
    Introdução às abordagenságeis Desenvolvimento iterativo Produto release 1 release 2 release 3 ... release n novo release a cada X meses iteração 1 iteração 2 iteração 3 iteração 4 ... novo iteracao a cada X semanas ©2010 - Hélio Medeiros
  • 24.
    Introdução às abordagenságeis Desenvolvimento iterativo O Release 1 terá as seguintes Produto funcionalidades: - Funcionalidade A - Funcionalidade G - Funcionalidade B - Funcionalidade H release 1 - Funcionalidade C - Funcionalidade I - Funcionalidade D - Funcionalidade J - Funcionalidade E - Funcionalidade L - Funcionalidade F - Funcionalidade Z iteração 1 iteração 2 iteração 3 iteração 4 ... Func. B Func. A Func. C Func. D Func. F Func. E Func. H Func. I Func. J Func. G Func. L Func. Z ©2010 - Hélio Medeiros
  • 25.
    Introdução às abordagenságeis O ciclo de vida de projetos ágeis Exploração Visão Funcionalidades Prontas Especulação Adaptação Visão do Produto Fechamento Produto ©2010 - Hélio Medeiros Final
  • 26.
    Introdução às abordagenságeis As abordagens ágeis As abordagens ágeis mais difundidas e praticadas com sucesso são: 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
  • 27.
    Introdução às abordagenságeis Sucesso 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 Deemer Chief Product Officer, CSM Yahoo! Bangalore - 25/07/2006 “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” Jeff De Luca Gerente de Projeto neste famoso projeto do United Overseas Bank, em Cingapura ©2010 - Hélio Medeiros
  • 28.
    4 Perguntas ??? ©2010 - Hélio Medeiros
  • 29.
    OBRIGADO !! Hélio CabralMedeiros helio.cabralmedeiros@gmail.com http://heliomedeiros.com ©2010 - Hélio Medeiros