Fábricas de Software Momentos de Reflexão Thayssa Águila da Rocha Carvalho Mestranda em Ciências da Computação Área de Pesquisa: Engenharia de Software Assunto da Pesquisa: Fábrica de Software [email protected] Orientador / Co-orientador Alexandre Vasconcelos ([email protected]) Jones Albuquerque ([email protected]) Conteúdo Motivação Fábricas convencionais Relembrando a produção de software “Novos” conceitos para a Produção de Software Fábrica de Software? Tipos de Fábrica Propostas de Modelos Momento de reflexão Bibliografia Motivação Fábricas Convencionais Situação Inicial - Produção artesanal – – – Dependia de grandes esforços individuais Qualidade variável Imprevisível Motivações do Meio – – – Necessidade de aumento da produção – população Novas formas de geração de energia Sindicalização das Fábricas Fábricas Convencionais Introdução de novos conceitos – – – – – – – Divisão do trabalho Necessidades!!! Fluxos progressivos Intercambialidade dos componentes Padronização dos processos Melhoria dos processos Automação do processo Movimento de qualidade Relembrando a Produção de Software Anos 60-70 artesanal, processos proprietários, waterfall Anos 70-80 Anos 80-90 artesanal, processos proprietários, essencial/estruturada Fáb. de Soft., CMM, essencial estruturada Anos 90-00 Fáb. de Soft, Outsourcing, PMI, RUP, UML E agora? SPL, XP, OS, ...? “Novos” conceitos para a Produção de Software Fábrica de software => difundido e utilizado Outsourcing => Redução de custos Conceito de SPL => Pesquisas... Movimento de QUALIDADE e melhoria contínua Certificações Automação! Necessidade + Oportunidade Fábrica de Software? Vem sendo abordada e estudada desde 1960 “um processo fabril constitui-se na produção de produtos em massa, incluindo operações centralizadas de larga escala, tarefas simples e padronizadas, controles padronizados, trabalhadores especializados, mas com poucas habilidades, divisão de trabalho, mecanização e automação do processo”, Cusumano (1989) Fábrica de Software? Fernandes (2004) apresenta fábricas de software como “Um processo estruturado, controlado e melhorado de forma contínua, considerando abordagens de engenharia industrial, orientado para o atendimento a múltiplas demandas de natureza e escopo distintas, visando à geração de produtos de software, conforme os requerimentos documentados dos usuários e/ou clientes, da forma mais produtiva e econômica possível”. Fábrica de Software? Palavras chave em operações de Fábrica de Software – – – – – – – – – Produção em larga escala Qualidade Modularização Utilização de ferramentas (automação fabril) Linhas de produção Linhas de produto Reuso sistemático Componentes Controle e gerenciamento Fábrica de Software? E continua! – – – – – – – – Processo padronizado Capacidade de atendimento planejada Plataforma de desenvolvimento automatizada Rigoroso controle de alocação PCP sistematizado Controle de qualidade e metas com controle estatísticos e identificação de defeitos Metas de desempenho Melhoria contínua do processo Fábrica de Software? Negócio Rentável? – – – – Manter demanda contínua fazendo uso do máximo possível da capacidade; Automação dos Processos Gestão do Conhecimento Mão de obra qualificada, mas barata Fábrica de Software? Será que sou uma fábrica de software? – Controle da Produção – Identificar a Capacidade Instalada Processo para planejamento e controle da produção OS’s padrões para a Fábrica Processos Processos distintos para demandas de natureza diferente Processo Definido e Padrão (métodos, técnicas e ferramentas) Deve controlar de forma contínua os seus processos Fábrica de Software? Será que sou uma fábrica de software? – Gerenciamento – Forte gerenciamento da Interface com o cliente (recebimento demanda e entrega dos produtos) Métodos Padrões de estimativas baseados em históricos Tempos padrões de atendimento de acordo com: tecnologia, tamanho e domínio da demanda. Controle do status das múltiplas demandas e possibilidade de rastreamento da execução de cada demanda Deve possuir mecanismos de apuração, apropriação e controle de custos Deve possuir Absoluto controle sobre os Níveis de Serviço Recursos Humanos Os recursos humanos devem ser controlados e alinhados ao tipo de demanda – natureza e complexidade O controle dos recursos humanos deve ser a nível de alocação, disponibilidade, necessidade futura Os recursos humanos devem estar treinados para as tarefas Fábrica de Software? Será que sou uma fábrica de software? – Suporte Deve possuir processos de atendimento Deve possuir mecanismos que garantam a qualidade do produto Deve possuir mecanismos de medição de atributos da sua operação Ambiente de Hard/Soft da fabrica deve ser estável e estar alinhado à necessidade de seus clientes Possuir biblioteca de itens com os itens de software gerados por todas as demandas Tipos de Fábrica - Evolução do Modelo de Fernandes Propostas de Modelos Cada um propõe a sua... Requisitos mínimos x ideal Depende do enfoque FERRAMENTAS PRODUÇÃO LEGENDA Documentos / Informações QUALIDADE DO PROCESSO Propostas de Modelos Informações QUALIDADE DO PRODUTO VENDA E PRÉ-VENDA QUALIDADE DO PROCESSO ESPECIFICAÇÃO DO PROJETO HOMOLOGAÇÃO A CONSTRUÇÃO HOMOLOGAÇÃO B IMPLANTAÇÃO MODELAGEM DE NEGÓCIOS Proposta Thayssa 2003 GERÊNCIA DE PROJETOS SUPORTE / MANUTENÇÃO QUALIDADE DO PROCESSO GERÊNCIA DE CONFIGURAÇÃO E MUDANÇAS ATENDIMENTO AO CLIENTE CLIENTE CALL CENTER SUPORTE Comunidade de Desenvolvedores Externos ORGANIZAÇÃO OPENGADGETS Propostas de Modelos Comitê Gestor DIRETOR Gerente da Fábrica Área 1 Gerente Comercial Proposta OpenGadgets 2004 Modelo Geral Fábrica Interface de comunicação com a Fábrica Suporte Organizacional Área 2 ... Planejamento e Acompanhamento Desenvolvimento Pré-Venda CCB Área n Manutenção e Suporte ao cliente GERENTE DA FÁBRICA GERENTE COMERCIAL CLIENTE* Propostas de Modelos *O cliente está definido como usuário final e desenvolvedores colaboradores MANUTENÇÃO E SUPORTE CORREÇÃO FÁBRICA PRÉ-VENDA RELEASE ANÁLISE DE NEGÓCIOS ATENDIMENTO CALL CENTER / SUPORTE Proposta OpenGadgets 2004 Modelo de Produção detalhado PLANEJAMENTO E ACOMPANHAMENTO SQA SCM CCB SPM CCB DESENVOLVIMENTO IMPLANTAÇÃO TESTES IMPLEMENTAÇÃO PROJETO REQUISITOS Propostas de Modelos Proposta Fernandes Momentos de Reflexão... Por que não existe um padrão? Uma forma de certificar?? É possível institucionalizar software??? É possível “Fabricar” software???? Temos Capital Humano pra isso????? ...??????????????????? Bibliografia Fernandes, A. A. "O CMMI no Contexto de Uma Operação de Fábrica de Software". Disponível em: http://www.prizm.com.br/CMMI%20e%20F%E1brica%20de%20Software.pdf, 2005a Fernandes, A. A. "Afinal, o que é uma Fábrica de Software?". SPIN São Paulo.Disponível em: http://www.spinsp.com/fabrica.pdf, 2005b Fernandes, A. A. e Teixeira, D. d. S. "Fábrica de Software: Implantação e gestão de Operações". São Paulo: Atlas, 2004 Veloso, F., Botelho, A. J. J., Tschang Ted et al. "Slicing The Knowledge-Based Economy In Brazil, China And India: A Tale Of Three Software Industries". Massachusetts Institute of Technology.Disponível em: http://www.softex.br/media/mit_final2.pdf, 2005 Meira, S. e Albuquerque, J. "IN953 - Software Engineering: Building Open Source Software Factories". Disponível pela internet em http://www.cin.ufpe.br/~in953, 2005 Corrêa, H. L. "Teoria Geral da Administração: abordagem histórica da gestão de produção e operações". São Paulo: Atlas, 2003