200 likes | 328 Views
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
E N D
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 • 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
Organizações • Prejuízos da imaturidade • Problemas se repetem em todo projeto... • Trabalho excessivo e stressante • Compromissos • Organizaçõ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.
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
Organizações • Escala • Quanto maior, mais complexo... • Medida: LOC • Agravantes • 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
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...
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
Organizações • Vantagens da Construção em estágios • Prazos reduzidos para fornecer produto • Redução da incerteza de requisitos • Possibilidade 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.
Organização • Desvantagens da construção em estágios • Divisão em partes deve ser planejada • Não é simples integrar diversas partes • Estrutura de testes provisória • Testar funcionalidades possivelmente incompletas • Desenvolvimento de um estágio • Pode iniciar-se antes do anterior ser aceito • Problema: Difícil gerência de diversas versões
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
Organizações • Organizações imaturas... • Cometem erros clássicos Pessoas Processos Tecnologias
Organizações • Erros relativos ao produto • Introdução de características interessantes mas dispensáveis. • Adição descontrolada de requisitos • Desenvolvimento orientado a pesquisa • Erros relativos ao processo • Esperdício de tempo no início do projeto • Pressões causadas por prazos otimistas • Planejamento insuficiente • Falta de controle gerencial.
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
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
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
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
Melhoria de Processos • Benefícios • Requisito correto é 50 a 200 x mais barato • Desenho correto é 10 x mais barato • Refazer 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%
Melhoria de Processos • Para evitar o fracasso da melhoria... • Apoio da administração da empresa • Gerentes de projeto devem participar • Todos devem estar envolvidos • Investimentos significativos • Divisão da melhoria em etapas definidas.
Melhoria de Processos • Para continuar depois do sucesso... • Grupo cuja função é melhorar os processos • Estrutura organizacional adequada • Desenvolvimento de padrões, modelos, exemplos, etc... • Treinamento • Mecanismos de controle e verificação • Modelo para melhoria de processos • Modelo IDEAL • Desenvolvido pela Carnegie-Mellon University