Este documento fornece um resumo de três frases ou menos sobre a gestão do desenvolvimento de software para a web:
1) A internet requer equilíbrio entre flexibilidade e metodologia disciplinada devido à competição, ciclos de vida curtos e necessidade de entregar valor rapidamente.
2) Métodos ágeis como Scrum e Extreme Programming são mais adequados do que modelos tradicionais devido à necessidade de feedback frequente do cliente e liberações frequentes.
3) Projetos para a web diferem em seu escopo e requisitos depend
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
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
4. 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.
5. 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.
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 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
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
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 a WEB tem de diferente?
Competição desenfreada
Ciclos de Vida Curtos
Entregar valor cada vez mais rápido
16. 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
17. Introdução
A INTERNET precisa de equilíbrio entre
flexibilidade e metodologia disciplinada
19. 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)
20. 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
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
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
31. 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
32. 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
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