Processos de Desenvolvimento de Software - teoria e prática

Preview:

DESCRIPTION

Apresentação sobre processo de desenvolvimento de software

Citation preview

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!

Recommended