20
Melhoria de Processos de Software Análise de Sistemas de Software Prof. Rodrigo Ribeiro

Melhoria de Processos de Software

  • Upload
    olwen

  • View
    45

  • Download
    0

Embed Size (px)

DESCRIPTION

Melhoria de Processos de Software. Análise de Sistemas de Software Prof. Rodrigo Ribeiro. Organizações. Maturidade das organizações Sintomas da imaturidade Projetos não são definidos com clareza Desenvolvimento disfarçado de manutenção Pessoas sem treinamento necessário - PowerPoint PPT Presentation

Citation preview

Page 1: Melhoria de Processos de Software

Melhoria de Processos de Software

Análise de Sistemas de SoftwareProf. Rodrigo Ribeiro

Page 2: Melhoria de Processos de Software

Organizações Maturidade das organizações

Sintomas da imaturidade Projetos não são definidos com clareza Desenvolvimento disfarçado de manutenção Pessoas sem treinamento necessário Sem regras para recrutamento, treinamento Não há comunicação entre as pessoas Ferramentas não ajudam ou não sabem usá-las Processo muito burocrático

Na prática, acaba não sendo seguido Gerentes são os primeiros a não seguir processo

Page 3: Melhoria de Processos de Software

Organizações Prejuízos da imaturidade

Problemas se repetem em todo projeto...Trabalho excessivo e stressante

CompromissosOrganizações imaturas

Assumem compromissos não realistas Desejam assumir compromissos, mas não sabem estimar Outras possuem técnicas para estimar, mas não dados.

Page 4: Melhoria de Processos de Software

Organizações Sem processos definidos...

O controle de projetos é confuso Prazos não dão tempo para pensar Na falta de opção...

Força bruta! Apelo místico

Magia Balas de prata

Gurus Assumem muitos compromisso e depois...

Heróis Com esforço próprio tentam concertar tudo. Problema: Um dia eles chegam ao seu limite

Page 5: Melhoria de Processos de Software

Organizações Escala

Quanto maior, mais complexo...Medida: LOCAgravantes

Falta de documentação do código Programas tem vida muito longa Ausência de desenho torna código frágil Software é um castelo de cartas Hardware, outros softwares, dados, operação Leigos não aceitam a importância da engenharia

de software

Page 6: Melhoria de Processos de Software

Organizações Comunicação

Tamanho da equipe é um problema Comunicação difícil.

Desorganização completa - Pior caso: O(n2) Hierarquia

Muitas pessoas no nível gerencial Comunicação lenta

Problemas de distorção “Telefone sem fio” Possível solução: documentar!

Para grandes projetos... Padrões Controle de qualidade Gestão de configurações Treinamento de desenvolvedores...

Page 7: Melhoria de Processos de Software

OrganizaçõesEscala LOC Como ser feitoMuito pequena

Até 100 Um bom programador pode fazer intuitivamente

pequena Até 1.000 Um bom programador consegue fazer com processos informais

média Até 10.000 Um bom programador consegue fazer com processos definidos

Grande Até 100.000 Uma equipe consegue fazer com processos definidos

Muito grande

Até 1.000.000 Uma organização consegue fazer com processos definidos

Múltipla Mais de 1.000.000

Conjunto de organizações cooperantes

Page 8: Melhoria de Processos de Software

Organizações Construção em estágios

Solução para produtos complexos Desenvolvimento de versões

Similar à entrega incremental Cada nova versão é o resultado de um projeto

Liberação Resultado intermediário na produção de uma versão Mas o que implementar? Determinado pelos usuários. Cada liberação

É avaliada por usuários Fornecimento de feedback para desenvolvedores

Page 9: Melhoria de Processos de Software

Organizações Vantagens da Construção em estágios

Prazos reduzidos para fornecer produtoRedução da incerteza de requisitosPossibilidade de atender as ordens de prioridade Redução da incerteza do desenho

A cada versão ou liberação Problemas são levantados pelos usuários Desenho elaborado com base em experiências anteriores.

Page 10: Melhoria de Processos de Software

Organização Desvantagens da construção em estágios

Divisão em partes deve ser planejada Não é simples integrar diversas partesEstrutura de testes provisória

Testar funcionalidades possivelmente incompletasDesenvolvimento de um estágio

Pode iniciar-se antes do anterior ser aceito Problema: Difícil gerência de diversas versões

Page 11: Melhoria de Processos de Software

Organizações Riscos

Com base em 4.000 projetos... 70% dos projetos sofre de instabilidade de requisitos

Requisitos crescem em média 1% ao mês... Pelo menos 50% dos projetos...

São executados com níveis de produtividade baixos. Pelo menos 25% dos software de prateleira

Apresentam níveis de defeitos acima do razoável Produtos feitos sobre pressão tem 4X mais defeitos 50% de grandes projetos estouram orçamento e prazos 2/3 de grandes projetos são cancelados antes do final Atritos entre TI e gerência ocorrem em + de 30% das

empresas

Page 12: Melhoria de Processos de Software

Organizações Organizações imaturas...

Cometem erros clássicos

Pessoas

TecnologiasProcessos

Page 13: Melhoria de Processos de Software

Organizações Erros relativos ao produto

Introdução de características interessantes mas dispensáveis.

Adição descontrolada de requisitosDesenvolvimento orientado a pesquisa

Erros relativos ao processoEsperdício de tempo no início do projetoPressões causadas por prazos otimistasPlanejamento insuficienteFalta de controle gerencial.

Page 14: Melhoria de Processos de Software

Organização Erros de processo(continuação)

Abandono dos planos para cumprir prazos Codificação desenfreada Estratégia “Guerra do vietnã”

Erros de pessoas Falta de participação na etapa de requisitos Atritos entre desenvolvedores e usuários Falta de motivação

Erros de tecnologia Balas de prata Mudança de ferramentas no meio do projeto Falta de automação de atividades

Page 15: Melhoria de Processos de Software

Melhoria de Processos Motivação

Onde investir Tecnologia? Pessoas? Processos?

Antes de efetivamente usar um processo A organização deve ser capacitada para isso

Treinamento Problema

Custo elevado em treinamento

Page 16: Melhoria de Processos de Software

Melhoria de Processos Organizações imaturas

Processos informais Só existe na cabeça das pessoas...

Processo definido Possui documentação detalhada

O que é feito? Quando? Por quem? O que usa e produz?

Como documentar? Texto Tabelas fluxogramas

Page 17: Melhoria de Processos de Software

Melhoria de Processos Alguns mal entendidos...

Qualidade de software pode ser medida... Qualidade, em software, é algo subjetivo

Problemas de produção de software são técnicos Não! Tecnologia não resolve tudo! Balas de prata.

Problemas são causados por deficiência de pessoas...

Erros de pessoas se devem a... Informações imprecisas Métodos e padrões mal definidos Falta de treinamento Não sabem seguir os procedimentos

Page 18: Melhoria de Processos de Software

Melhoria de Processos Benefícios

Requisito correto é 50 a 200 x mais barato Desenho correto é 10 x mais baratoRefazer defeitos leva de 40% a 50%Cada hora gasta em prevenção de defeitos

representa de 3 a 10 horas a menos de correção.

Reusar artefatos de qualidade proporciona um retorno de 4375%

Page 19: Melhoria de Processos de Software

Melhoria de Processos Para evitar o fracasso da melhoria...

Apoio da administração da empresaGerentes de projeto devem participarTodos devem estar envolvidos Investimentos significativosDivisão da melhoria em etapas definidas.

Page 20: Melhoria de Processos de Software

Melhoria de Processos Para continuar depois do sucesso...

Grupo cuja função é melhorar os processosEstrutura organizacional adequadaDesenvolvimento de padrões, modelos,

exemplos, etc...TreinamentoMecanismos de controle e verificação

Modelo para melhoria de processosModelo IDEAL

Desenvolvido pela Carnegie-Mellon University