Gestão
   Desenvo     do
          l vi m e n t
                      o
        W EB

          28 horas

Prof. Joaq
           uim Lope
                    s Júnior
Professor
             Joaquim Lopes Júnior
            joaquim@4yousee.com
                @joaquimlopes
Mestre e Bacharel em Ciência da Computação pela UFMG
   cuja dissertação abordou aspectos de gestão ágil de
 desenvolvimento de software, é diretor da F6 Sistemas
onde coordena projetos de software 3 camadas, coordena
 e ministra treinamentos com foco em melhores práticas
  para desenvolvimento para WEB na PHPrime Training.
Entre 2006 e 2010 trabalhou como consultor para a UFMG
   em projetos de desenvolvimento de software para o
                 governo de Minas Gerais.
Objetivos da Disciplina
Discutir aspectos tradicionais e ágeis de gestão
 de desenvolvimento de softwares
  Oferecer ferramentas para tomada de decisão a
   respeito de quais técnicas utilizar em cada
   contexto
Entender as necessidades específicas para
 gestão de projetos WEB
Conhecer os níveis de maturidade dos modelos
 CMMI e MPS.BR, e as suas recomendações
 relacionadas a gestão de projetos
Objetivos da Disciplina
Discutir as peculiaridades do
 desenvolvimento na velocidade da internet

Conhecimento de PMBOK e Certificações
 Scrum Master e PMP

Utilizar ferrametnas de apoio a gestão para
 internet.
Ementa
Por que se investir tempo em gestão do desenvolvimento?
Gestão de desenvolvimento segundo as abordagens
tradicionais: espiral e cascata. Abordagens ágeis para gestão
do desenvolvimento de aplicações: SCRUM e práticas do
método Extreme Programming. Recomendações de gestão
dos modelos CMMI e MPS.BR aplicadas ao Desenvolvimento
WEB. Ferramentas de apoio a Gestão de Desenvolvimento
WEB. PMIBOK. Frameworks e Gestão de configurações. Mini-
projeto e estudo de caso.
Conteúdo Programático
Aula 1 – Introdução
 O que a WEB tem de diferente?
 Classificação do tipo de projeto: sob-demanda,
  SaaS, Rede Social, portal, etc.
 Influência do Modelo de Negócio na gestão
Conteúdo Programático
Aula 2 – Modelos Tradicionais de Gestão de
 Desenvolvimento
  Fases do Projeto
  Ciclo de Vida
  Gestão de Requisitos
  Gestão de Qualidade
  Gestão de Riscoss
Conteúdo Programático
Aula 3 – Métodos Ágeis :: Scrum
 Introdução a Métodos Ágeis
      Fundamentos do Manifesto Ágil
  O que é o Scrum
  Contextos para aplicação do Scrum
  Elementos do Scrum
    Definições Básicas
    Papéis

    Artefatos

    Práticas

    Meetings - Reuniões
Conteúdo Programático
Aulas 3 e 4 – Métodos Ágeis :: Extreme
 Programming
  O que é o XP?
  Diferença entre Scrum e XP :: aproveite o melhor
   de cada método
  Contextos para aplicação do XP
  Elementos do XP
    Valores
    Práticas

  Desafios para adoção de métodos ágeis
  Estudo de caso
Conteúdo Programático
Aula 5 – Modelos de Maturidade CMMI e MPS.BR
 Introdução aos modelos de maturidade
 Objetivos dos modelos de maturidade
 Níveis de Maturidade
 Análise das recomendações relacionadas a gestão
  de projeto
 Relação dos objetivos desses modelos e suas
  recomendações com as práticas de gestão
  tradicionais e ágeis
Conteúdo Programático
Aula 6 – Certificações
 ScrumMaster
 PMP – Project Management Professional
Conteúdo Programático
Aula 6 – Tendências
 Management 3.0
Conteúdo Programático
Aula 7 – Laboratório :: Frameworks e Gestão de
 Configurações
  Trac / Redmine
  Análise de Frameworks
    Comunidade ativa
    Modelo MVC

    Design Pattern OO

    Design Patter ORM

    Compatibilidade com Múltiplos Bds – frameworks de Bds.

    Templates

    Segurança e Caching

    Facilidade para se trabalhar com Ajax

    Compatibilidade com versões mais atuais da linguagem
Conteúdo Programático
Aula 8 – Laboratório :: Frameworks de
 Desenvolvimento – Critérios de escolha
  Design Patterns
    MVC
    OO

    ORM

  Compatibilidade com Bds
  Templates
  Segurança e Caching
  Trabalho com Ajax
Introdução
O que a WEB tem de diferente?

  Competição desenfreada


  Ciclos de Vida Curtos


  Entregar valor cada vez mais rápido
Introdução
O que a WEB tem de diferente?

  Problemas devido a ciclos de vida curtos
      Qualidade

  Modelos de maturidade e melhoramento de
   processos
    Tratam de processos disciplinados e estáveis
    Ciclos de vida mais longos
Introdução


    A INTERNET precisa de equilíbrio entre
 flexibilidade e metodologia disciplinada
Introdução


Grandes corporações que iniciaram utilização de
               métodos ágeis:

             Microsoft e Nestcape
Introdução
Cenário de desenvolvimento para internet

  Rush-to-market. Corrida acelerada para
   entregar cada vez mais rápido

  Facilidade de Implantação (Deploy)
Introdução
Cenário de desenvolvimento para internet

  Mercado diferenciado
    Novos  grupos de usuários
    Novas perspectivas e ferramentas:
     integração com mapas, redes sociais,
     dispositivos móveis.

  Falta de experiência
Introdução
Cenário de desenvolvimento para internet

  Qualidade Negociável
    Velocidade   x Erros aceitáveis
Introdução
Desenvolvimento em paralelo
    Linhade Montagem para desenvolvimento
    de software

    Todas as fases do desenvolvimento
    ocorrem ao mesmo tempo, em releases
    diferentes

    Pode-seiniciar o desenvolvimento de
    partes antes de se conhecer o todo
Introdução
Liberações Mais Frequentes
    Usuários estão acostumados a receber
     novidades com muita frequência. Isso faz
     parte da definição de “bom”

    Entregue um conjunto menor de features,
     mas entregue sempre
Introdução
Liberações Mais Frequentes
  Gestão Fluída de Requisitos
     Requisitos   são adiados para releases
      próximos

     Requisitos podem ser inseridos de
      “última hora” para atender ao mercado

     Diminuição dos impactos do adiamento
      porque a próxima versão não demora
Introdução
Dependência de Ferramentas

  Codificação – IDEs e Frameworks


  Testes automatizados


  Build automatizado
Introdução
Clientes “infiltrados”
  Para se desenvolver rápido é necessário
   feedback
    Rápido

    De qualidade

    Features, Prazos e Custos



  No mundo tradicional - agendamentos
     Reuniões

     Comitês
Introdução
Clientes “infiltrados”
  Facilita lidar com requisitos voláteis e confusos,
   com dificuldade de priorizar

  Priorização para se criar os releases seguintes


  Maior envolvimento permite menos esforços
   com gestão de requisitos
    Melhor agrupamento de requisitos p/ releases
Introdução
Arquitetura Estável
  Reúso de componentes
  Padrão de comportamento dos
   componentes
  Ex.: Modelo MVC


Arquitetura comum ainda entre diferentes
 projetos.
Introdução
Reutilização de componentes
  Não reinvente a roda
  Utilize orientação a objetos (escolha a
   linguagem certa)
  Cuide bem das interfaces dos componentes
    Teste-as muito bem
    Cada componente bom é uma economia
     no futuro
Introdução
Ignore a manutenção
  Depende do foco
    Hotsites
            x Portais x Sistemas de
    Informação

  Documentação enxuta
Introdução
Ajuste a metologia diariamente

  Tenha práticas de avaliação da metodologia


  Ajuste para ganhar mais velocidade e
   qualidade

  Recomenda-se utilizar um processo padrão
   não muito rígido
    Cada projeto estende esse processo
Introdução
Dificuldades de Gerenciamento de Software


  Intangível
   A   ponte demorando a ser construída você vê

  Não padrões de processo
    Muitas   pontes já foram criadas ao longo de séculos

  Projetos grandes não têm características que se
   repetem
Introdução
Tipos de Projeto
 SaaS
    Comprometimento com updates e correção de
     bugs
 Redes Sociais
    Agilidade e tratamento de volume

 Portais
    Vários públicos utilizando

 Sob-demanda
    Cliente bem definido

    Possível especificar plataforma

Aula01 introducao

  • 1.
    Gestão Desenvo do l vi m e n t o W EB 28 horas Prof. Joaq uim Lope s Júnior
  • 2.
    Professor Joaquim Lopes Júnior joaquim@4yousee.com @joaquimlopes Mestre e Bacharel em Ciência da Computação pela UFMG cuja dissertação abordou aspectos de gestão ágil de desenvolvimento de software, é diretor da F6 Sistemas onde coordena projetos de software 3 camadas, coordena e ministra treinamentos com foco em melhores práticas para desenvolvimento para WEB na PHPrime Training. Entre 2006 e 2010 trabalhou como consultor para a UFMG em projetos de desenvolvimento de software para o governo de Minas Gerais.
  • 3.
    Objetivos da Disciplina Discutiraspectos tradicionais e ágeis de gestão de desenvolvimento de softwares Oferecer ferramentas para tomada de decisão a respeito de quais técnicas utilizar em cada contexto Entender as necessidades específicas para gestão de projetos WEB Conhecer os níveis de maturidade dos modelos CMMI e MPS.BR, e as suas recomendações relacionadas a gestão de projetos
  • 4.
    Objetivos da Disciplina Discutiras peculiaridades do desenvolvimento na velocidade da internet Conhecimento de PMBOK e Certificações Scrum Master e PMP Utilizar ferrametnas de apoio a gestão para internet.
  • 5.
    Ementa Por que seinvestir tempo em gestão do desenvolvimento? Gestão de desenvolvimento segundo as abordagens tradicionais: espiral e cascata. Abordagens ágeis para gestão do desenvolvimento de aplicações: SCRUM e práticas do método Extreme Programming. Recomendações de gestão dos modelos CMMI e MPS.BR aplicadas ao Desenvolvimento WEB. Ferramentas de apoio a Gestão de Desenvolvimento WEB. PMIBOK. Frameworks e Gestão de configurações. Mini- projeto e estudo de caso.
  • 6.
    Conteúdo Programático Aula 1– Introdução O que a WEB tem de diferente? Classificação do tipo de projeto: sob-demanda, SaaS, Rede Social, portal, etc. Influência do Modelo de Negócio na gestão
  • 7.
    Conteúdo Programático Aula 2– Modelos Tradicionais de Gestão de Desenvolvimento Fases do Projeto Ciclo de Vida Gestão de Requisitos Gestão de Qualidade Gestão de Riscoss
  • 8.
    Conteúdo Programático Aula 3– Métodos Ágeis :: Scrum Introdução a Métodos Ágeis  Fundamentos do Manifesto Ágil O que é o Scrum Contextos para aplicação do Scrum Elementos do Scrum  Definições Básicas  Papéis  Artefatos  Práticas  Meetings - Reuniões
  • 9.
    Conteúdo Programático Aulas 3e 4 – Métodos Ágeis :: Extreme Programming O que é o XP? Diferença entre Scrum e XP :: aproveite o melhor de cada método Contextos para aplicação do XP Elementos do XP  Valores  Práticas Desafios para adoção de métodos ágeis Estudo de caso
  • 10.
    Conteúdo Programático Aula 5– Modelos de Maturidade CMMI e MPS.BR Introdução aos modelos de maturidade Objetivos dos modelos de maturidade Níveis de Maturidade Análise das recomendações relacionadas a gestão de projeto Relação dos objetivos desses modelos e suas recomendações com as práticas de gestão tradicionais e ágeis
  • 11.
    Conteúdo Programático Aula 6– Certificações ScrumMaster PMP – Project Management Professional
  • 12.
    Conteúdo Programático Aula 6– Tendências Management 3.0
  • 13.
    Conteúdo Programático Aula 7– Laboratório :: Frameworks e Gestão de Configurações Trac / Redmine Análise de Frameworks  Comunidade ativa  Modelo MVC  Design Pattern OO  Design Patter ORM  Compatibilidade com Múltiplos Bds – frameworks de Bds.  Templates  Segurança e Caching  Facilidade para se trabalhar com Ajax  Compatibilidade com versões mais atuais da linguagem
  • 14.
    Conteúdo Programático Aula 8– Laboratório :: Frameworks de Desenvolvimento – Critérios de escolha Design Patterns  MVC  OO  ORM Compatibilidade com Bds Templates Segurança e Caching Trabalho com Ajax
  • 15.
    Introdução O que aWEB tem de diferente? Competição desenfreada Ciclos de Vida Curtos Entregar valor cada vez mais rápido
  • 16.
    Introdução O que aWEB tem de diferente? Problemas devido a ciclos de vida curtos  Qualidade Modelos de maturidade e melhoramento de processos  Tratam de processos disciplinados e estáveis  Ciclos de vida mais longos
  • 17.
    Introdução A INTERNET precisa de equilíbrio entre flexibilidade e metodologia disciplinada
  • 18.
    Introdução Grandes corporações queiniciaram utilização de métodos ágeis: Microsoft e Nestcape
  • 19.
    Introdução Cenário de desenvolvimentopara internet Rush-to-market. Corrida acelerada para entregar cada vez mais rápido Facilidade de Implantação (Deploy)
  • 20.
    Introdução Cenário de desenvolvimentopara internet Mercado diferenciado  Novos grupos de usuários  Novas perspectivas e ferramentas: integração com mapas, redes sociais, dispositivos móveis. Falta de experiência
  • 21.
    Introdução Cenário de desenvolvimentopara internet Qualidade Negociável  Velocidade x Erros aceitáveis
  • 22.
    Introdução Desenvolvimento em paralelo  Linhade Montagem para desenvolvimento de software  Todas as fases do desenvolvimento ocorrem ao mesmo tempo, em releases diferentes  Pode-seiniciar o desenvolvimento de partes antes de se conhecer o todo
  • 23.
    Introdução Liberações Mais Frequentes  Usuários estão acostumados a receber novidades com muita frequência. Isso faz parte da definição de “bom”  Entregue um conjunto menor de features, mas entregue sempre
  • 24.
    Introdução Liberações Mais Frequentes Gestão Fluída de Requisitos Requisitos são adiados para releases próximos Requisitos podem ser inseridos de “última hora” para atender ao mercado Diminuição dos impactos do adiamento porque a próxima versão não demora
  • 25.
    Introdução Dependência de Ferramentas Codificação – IDEs e Frameworks Testes automatizados Build automatizado
  • 26.
    Introdução Clientes “infiltrados” Para se desenvolver rápido é necessário feedback  Rápido  De qualidade  Features, Prazos e Custos No mundo tradicional - agendamentos  Reuniões  Comitês
  • 27.
    Introdução Clientes “infiltrados” Facilita lidar com requisitos voláteis e confusos, com dificuldade de priorizar Priorização para se criar os releases seguintes Maior envolvimento permite menos esforços com gestão de requisitos  Melhor agrupamento de requisitos p/ releases
  • 28.
    Introdução Arquitetura Estável Reúso de componentes Padrão de comportamento dos componentes Ex.: Modelo MVC Arquitetura comum ainda entre diferentes projetos.
  • 29.
    Introdução Reutilização de componentes Não reinvente a roda Utilize orientação a objetos (escolha a linguagem certa) Cuide bem das interfaces dos componentes  Teste-as muito bem  Cada componente bom é uma economia no futuro
  • 30.
    Introdução Ignore a manutenção Depende do foco  Hotsites x Portais x Sistemas de Informação Documentação enxuta
  • 31.
    Introdução Ajuste a metologiadiariamente Tenha práticas de avaliação da metodologia Ajuste para ganhar mais velocidade e qualidade Recomenda-se utilizar um processo padrão não muito rígido  Cada projeto estende esse processo
  • 32.
    Introdução Dificuldades de Gerenciamentode Software Intangível A ponte demorando a ser construída você vê Não padrões de processo  Muitas pontes já foram criadas ao longo de séculos Projetos grandes não têm características que se repetem
  • 33.
    Introdução Tipos de Projeto SaaS  Comprometimento com updates e correção de bugs Redes Sociais  Agilidade e tratamento de volume Portais  Vários públicos utilizando Sob-demanda  Cliente bem definido  Possível especificar plataforma