PDS – Teoria e PráticaRalph J. R. Filho
Objetivos
Esclarecer a importância do processo de desenvolvimento de software bem como explicar suas aplicabilidades e a participação das pessoas
Conteúdo
Primeiros Passos Visão Geral Tipos de PDS
Tradicionais▪ RUP, Cascata
Ágeis▪ SCRUM, XP
Primeiros Passos
Processo Conjunto de passos e instruções para
executar determinadas atividades Desenvolvimento
Criação ou manutenção de um produto ou serviço
Software Conjunto de código-fonte e
documentação
Primeiros Passos
Um processo de desenvolvimento de software (PDS) é um conjunto de atividades, disciplinas e papéis que prescreve práticas para se conceber, gerenciar, desenvolver, testar e implantar um software
As atividades do PDS possuem entradas, saídas, ferramentas e técnicas que estão ligadas a artefatos criados ou alterados durante sua execução
Crise do Software
Os primeiros PDS's surgiram nos anos 70 impulsionados pela crise do software que ocorreu nos anos 60
Os projetos de software dos anos iniciais apresentavam diversos problemas Altos investimentos, sem visibilidade Excesso de falhas (bugs) Requisitos mal compreendidos Quase impossível de manter após pronto
Visão Geral
Visão Geral
“Any fool can write code that a computer can understand. Good programers write code that humans can understand”
Martin Fowler
Alguns Objetivos
Visão de Projeto Aplicação de boas práticas Indicadores de qualidade Definição de papéis ligados ao plano
de carreira e às atividades executadas
Alguns Objetivos
Visão de Projeto Saber sobre o progresso das atividades,
impedimentos, atrasos, dependências, relacionamentos, custos, riscos
Poder organizar/planejar com maior eficiência as tarefas que irão compor cada etapa de um desenvolvimento
Alguns Objetivos
Alguns Objetivos
Indicadores de qualidade Identificar acuracidade de estimativas Comparar projetos Alinhar objetivos dos projetos com os
objetivos estratégicos da empresa Identificar esforço com defeitos e
retrabalhos Mapear desempenho de recursos
humanos
Alguns Objetivos
Alguns Objetivos
20%
50%
20%
10%
Disciplinas
RequisitosDesenvolvimentoNegóciosTestes
Alguns Objetivos
Aplicação de boas práticas Modelos de documentos a serem
utilizados para agregar valor ao software Lições aprendidas com projetos
anteriores descritos como guias Estrutura de papéis adequada à política
da empresa Estrutura de fases e disciplinas
adequada à natureza dos projetos da empresa
Primeiros Passos
O que é? Papel Disciplina Artefato
Primeiros Passos - Papéis
• Administrador de Rede
• Analista de Qualidade• Analista de Requisitos• Analista de Negócios• Analista de Testes• Arquiteto de Software• Consultor• Desenvolvedor• Gerente de
Configuração• Gerente de Projetos• Testador• ...
Cada papel tem sua importância, disciplina, artefatos associados e atividades pré-definidas
Primeiros Passos - Disciplina
• Análise e projeto de software
• Desenvolvimento de software
• Gerência de Configuração
• Gerência de Requisitos• Gerência de Projetos• Implantação• Modelagem de Negócios• Teste de Software
Categorização de processos que são, teoricamente, independente dos demais
Primeiros Passos - Artefato
• Ator• Burndown chart• Caso de Teste• Caso de Uso• Código fonte• E-mail• Glossário• Plano de iteração• Requisito
• Exemplo:• Coleção de Requisitos
• Caso de Uso• Regra de
Negócio
Documento ou elemento pertencente a este, que deve ser criado ou alterado
Primeiros Passos - Artefato
Visão Geral
Visão Geral
Organizações bem estruturadas usam PDS em seu ambiente, sempre buscando melhoria
O PDS possui um conjunto de regras e elementos que são criados e refinados ao passar do tempo
Visão Geral
Pessoas que desempenham o papel de Analista de Qualidade focam seu trabalho em definir, manter, ensinar e auditar o PDS
Algumas empresas possuem um setor de qualidade
O conhecimento das pessoas que usam o PDS na prática é fundamental para o refinamento dos processos
Visão Geral
Visão Geral
Visão Geral
Visão Geral
Uma página web é um bom caminho para centralizar o PDS. Ele deve ser de acesso a todos na empresa
Cada pessoa, de acordo com seus papéis, executa as atividades conforme o PDS e pode dar sugestões de melhorias bem como indagar sobre elementos que não concorda ou que tem dúvidas
Visão Geral
É importante conhecer o PDS como um todo! Conhecer o seu papel na empresa Descobrir e trilhar caminhos de carreira Estudar e aplicar as melhores práticas
Visão Geral
Ferramentas são utilizadas pelas pessoas que fazem o PDS acontecer. Através do uso delas as tarefas são executadas, os documentos arquivados e as informações mantidas
Exemplos: MS Project, CVS, Eclipse, IBM Rational Suite, Thunderbird
Visão Geral
O PDS deve evitar referir-se a ferramentas diretamente, ou fazer isso de forma independente, porquê as ferramentas devem oferecer suporte ao PDS, e não o contrário
O PDS deve englobar as diferentes naturezas dos projetos que a organização executa
Visão Geral - RUP
Visão Geral
Atualmente existem diversos modelos de PDS no mercado
O PDS ideal é aquele que atende aos tipos de projetos que a organização executa
Customização de modelos é normal
Modelos de PDS
Tradicionais Possuem uma grande quantidade de papéis,
disciplinas e fases. Chamados desta forma por serem precursores ou serem baseados nestes. Lembram etapas de um processo fabril (Fábrica de Software)
Ágeis Conceito criado nos anos 90 com o pretexto
de que os tradicionais não atendiam determinadas naturezas de projetos (web) e que eram excessivamente burocráticos
Modelos de PDS
Tradicionais Cascata RUP
Ágeis SCRUM XP
Cascata
Modelo Cascata Primeiro PDS formalizado, anos 70 Processo sequencial e estático, é simples
de ser aplicado e controlado Várias empresas utilizam atualmente Originou-se em empresas da área
industrial, de manufatura e construção
Cascata
Cascata
O modelo Cascata “puro” prescreve que só é possível avançar para uma próxima fase depois que a fase anterior estiver 100% concluída
Existem variações deste modelo
Cascata
Cascata
Cascata
Quais as vantagens? Quais as desvantagens?
RUP
IBM Rational Unified Process Usa a abordagem O.O. e UML na sua
documentação Organizado em fases e disciplinas inclui
guias de boas práticas e templates Possui um vasto conjunto de papéis e
documentos, abrange a elaboração de softwares de alta complexidade
RUP
RUP
RUP
RUP
RUP
RUP
RUP
Principais documentos
RUP
RUP
RUP
RUP
Quais as vantagens? Quais as desvantagens?
RUP
Visite http://www.wthreex.com
Ágeis
SCRUM, XP Porquê está em evidência? Toyota, Honda, HP Inovação Web A abordagem humanitária em
detrimento dos processos bem elaborados
Ágeis
Princípios Indivíduos e iterações melhor que: processos e ferramentas Software funcionando melhor que: documentação compreensiva Cooperação do cliente melhor que: negociar contrato Resposta à mudanças melhor que: seguir planos
Cuidado com a interpretação dos itens acima
O case Toyota
Mais de 300 mil colaboradores A maior empresa automotiva em
produção e vendas
O case Toyota
Toyota-way Pensamento longo prazo como base
para decisões gerenciais Processo para soluções de problemas Adicionar valor à organização através do
desenvolvimento das pessoas Solução de problemas na raiz direciona
ao aprendizado organizacional
O case Toyota
Respeito aos seres humanos e melhoria contínua Desafio Kaizen Trabalho em equipe
Os ágeis basearam-se neste modelo
Ágeis
Ciclo de vida ágil
XP
Extreme programming Práticas ágeis voltadas para o
desenvolvimento de software
XP
XP - Metáforas
XP - Metáforas
XP - Metáforas
XP - Metáforas
XP - Metáforas
Ok, pode-se entender o significado nos desenhos, mas... precisa ser tão feio? Em alguns casos precisa ser feito de
forma rápida Mantem-se estes rascunhos?
Sim, fotos de quadros também são aceitas como documentação.
Lembre-se que Sw funcionando é melhor que docs
bonitos
XP
Planejamento com a participação da equipe
Requisitos priorizados pelo cliente Desenvolvimento orientado à testes
XP – outras práticas
Programação em par
XP – outras práticas
Refactoring Sacrifício da qualidade interna que
posteriormente é resgatada O funcionamento do sw não pode ser
comprometido Refactoring é aplicação de boas práticas
de codificação em um segundo momento porque no momento do desenvolvimento havia pouco tempo disponível
XP – outras práticas
Código coletivo Integração contínua Participação ativa do cliente
XP – cenário ideal
Mudanças constantes Equipes pequenas, experientes e
maduras Requisitos pouco conhecidos
XP
Quais as vantagens? Quais as desvantagens?
SCRUM
Framework ágil voltado ao gerenciamento de projetos
Foca em planejamento de iterações curtas, envolvimento do cliente e equipes multifuncionais e auto-organizáveis
SCRUM
SCRUM
... equipes Scrum fazem um pouco de cada coisa, todo o tempo.
Requerimentos Projeto Código Teste
Ao invés de completar uma coisa por vez...
SCRUM
Change
SCRUM
Papéis Dono do Produto (prioriza, aceita ou
rejeita soluções) SCRUM Master (garante a execução do
processo durante o desenvolvimento, resolve impedimentos)
Equipe (de 6 a 9 pessoas, multifuncional e auto-organizável)
SCRUM - Planejamento
Quero que os usuários do portal possam planejar suas férias, escolhendo itinerários online.
Quero que os usuários do portal possam planejar suas férias, escolhendo itinerários online.
Modelagem (8 horas)Codificar interface (4)Escrever textos (4)Codificar a classe foo (6)Atualizar testes de performance (4)
SCRUM - Reunião
SCRUM - Acompanhamento
O que fizeste ontem?O que fizeste ontem?
O que vais fazer hoje?O que vais fazer hoje?
Há algum obstáculo?Há algum obstáculo?
1
2
3
SCRUM – Cerimônias finais
Retrospectiva de Sprint O que funciona o que não funciona
Revisão de Sprint Resultados obtidos
WTH is sprint anyway?
SCRUM
Artefatos Product Backlog Sprint Backlog Burndown chart
SCRUM - Burndown
SCRUM - Burndown
SCRUM
Quais as vantagens? Quais as desvantagens?
PDS
Qual o melhor? O que diferencia um artesão de um
operário? Os dois paradigmas de modelos
podem ser combinados? Documentação é necessária? Até
que ponto?
Evitar
Modelo constrói-conserta (caos)
PDS
Toyota-way, seção 2 O processo correto trará os resultados
corretos▪ Foco nas pessoas▪ Aproximação do cliente▪ Qualidade interna e externa▪ Evitar processos engessados, aplicar melhoria
contínua
PDS
O que mais tem a ver com isso CMMI, MPS.BR, PMI (PMBOK), ISO
Perguntas?
Obrigado!
Top Related