Fábricas de Software Prof. Jones Albuquerque slide 1 de 116 ROTEIRO 1. Conceitos, idéias e mitos 2. Processos e Casos de sucesso e falha 3. Oficina de Montagem de Fábricas 4. Venda de Software slide 2 de 116 communications applications services infrastructure slide 3 de 116 communications software applications applications services middleware infrastructure hardware + op sys slide 4 de 116 [zysman stack] BUSINESS communications PROCESSES applications applications services software infrastructure computing + communications slide 5 de 116 seu negócio é uma comunidade! Silvio Meira slide 6 de 116 http://headrush.typepad.com/creating_passionate_users/2007/03/user_community_.html slide 7 de 116 comunidade desenvolve [novos] produtos e serviços slide 8 de 116 desenvolvimento de software em indústria, comunidades acadêmicas e científicas uma fábrica de software? Uma comunidade de software... slide 9 de 116 um típico laboratório de desenvolvimento... slide 10 de 116 Produção de Software: histórico • 60´s Fábrica de Software • 70´s Kanbam • 70´s Just In Time • 80´s SIGMA • 90´s CMM • 00´s Fábrica de Software... de novo! • 10´s Fábrica de Componentes? slide 11 de 116 Fonte: sixsigmatutorial.com factories X Business X OSS development... • • • • • • conjunções e intersecções métodos e ferramentas processo modelos licenças vendas slide 12 de 116 Free Software Projects • • • • • Nascem como iniciativa isolada e particular Usuários são codesenvolvedores Divulgação “boca-a-boca” Teste massificado pelos usuários Gerência de versões é complexa e “bem-definida” slide 13 de 116 SW livre e a monark? No Natal de 1964, a bicicleta Monark na sala, em Arcoverde, não era mais nem tanta surpresa assim. Eu tinha infernizado a vida de Seu Inácio meses a fio e ele, para se livrar da perseguição, talvez fosse capaz de me comprar um Sherman M4, daqueles que o exército brasileiro usou até o fim dos anos 70. O fato é que lá estava a bike de gente grande, muito diferente daquela de "minino" que eu tinha até a véspera, agora herança de meus irmãos. Depois de desfilar meu novo status para a vizinhança, as próximas providências foram tirar o bagageiro e instalar uns retrovisores... muito mais pra eu me ver pedalando do que para vigiar o tráfego. E, como fevereiro vinha por ali, fazer uma sirene, com barbante, borracha de câmara de ar e uma lata de óleo Salada, pra zoar no carnaval. Minha bicicleta, minhas modificações, meus adicionais, a Monark nunca teve uma satisfação, nem nunca me cobrou. slide 14 de 116 http://www.no.com.br/revista/noticia/54475/atual Open Source Projects • (Sun apr 22 20:18:32 BRT 2007) 189,827 projects! • • • • • • • • • • • • • • • • • • Communications (18979) Database (7090) Desktop Environment (3843) Education (5076) Formats and Protocols (3014) Games/Entertainment (17723) Internet (29002) Multimedia (15900) Office/Business (9960) Other/Nonlisted Topic (2620) Printing (526) Religion and Philosophy (341) Scientific/Engineering (15436) Security (3350) Sociology (442) Software Development (29007) System (23545) Text Editors (3275) slide 15 de 116 231,649 projects nov 29 BRT 2007! 268,668 projects apr 24 BRT 2008! 273,633 projects mai 15 BRT 2008! http://sourceforge.net/ sourceforge.net •2005 jun 100K •2006 apr 134K •2007 apr 189K •2008 apr 269K 300 250 200 150 Série1 100 50 0 2004 2005 2006 2007 2008 2009 273,633 projects mai 15 BRT 2008!!! slide 16 de 116 fábricas de software princípios conceitos ilusões Fonte: www.cs.ucla.edu slide 17 de 116 fábrica de software na prática • Operação profissional • Processo de desenvolvimento transparente • Retorno rápido ao cliente • Alta produtividade • Ferramentas e processos padronizados • Alta qualidade • Dados históricos, previsibilidade e análise de risco • Reusabilidade de código slide 18 de 116 [1968 G&E, R. W. Berner] [2003 IEEE Computer Vol.36 Num.3, B. Boehm] [2005 IEEE Software Vol. 22 Num 2, PostModern SW Design] e o mercado? • http://mshiltonj.com/software_wars/ slide 19 de 116 slide 20 de 116 slide 21 de 116 slide 22 de 116 Cathedral and Bazaar e Desenvolvimento de Software segundo Eric Raymond, 1997 • Alguns projetos são como Cathedrals – altamente centralizados em poucas pessoas que decidem projeto e implementação – para fazer parte deve-se aceitar as definições Fonte: http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ slide 23 de 116 Outros são como Bazaars (SW livre) Sem planejamento detalhado mas orientados! • Linux Kernel (www.linux.org): “hierarchical” – Linus Torvalds, “The Benevolent Dictator” • APACHE Foundation (www.apache.org): “meritocracy” – Para fazer parte você deve ter colaborado continuamente em projetos da fundação • GCC (gcc.gnu.org): “steering Commitee” slide 24 de 116 Conceitos “The factory is an organization inhabited by people engaged in a common effort, work is organized one way or the other, standardization is used for coordination and formalization, and systematization is important, but there will be several options for the design of a particular software factory” [Aaen, Botcher, Mathiassen, Software Factories, 1997] http://www.cs.auc.dk/~larsm/Dr_Techn/Volume_II/17.pdf slide 25 de 116 • fábricas de software: 4 estratégias... Japonesa (1981,1987) – SWB – Software Work Bench • Européia (1991,1992) – ISDE – Integrated Software Development Environment • Norte-Americana – experiência produção (1989,1993) • Norte-Americana – níveis de maturidade (1990,1993) slide 26 de 116 ...considerações... “The four approaches are important contributions towards this goal. At the same time the approaches individually may lead to unfortunate illusions. Learning from the relative strengths and weaknesses between the approaches may help us avoid becoming victims of these illusions” slide 27 de 116 [Aaen, Botcher, Mathiassen, Software Factories, 1997] http://www.cs.auc.dk/~larsm/Dr_Techn/Volume_II/17.pdf ...e ilusões... fábrica de software ≠ produção em massa padronização, formalização, especialização, controle ≠ produção de software com qualidade o que fazer? Fonte: www.icb.ufmg.br slide 28 de 116 Discussion ... open source communities versus Software Factories • personal time and autonomy ... freelancers ... project-oriented • ... there are several avenues for future research – ... to refine the proposed framework and validate it empirically slide 29 de 116 e as comunidades híbridas? A Framework for creating hybrid-open source software communities Srinarayan Sharma et. al. Info Systems (2002), 12. slide 30 de 116 FONTE: http://www.blackwell-synergy.com/doi/pdf/10.1046/j.1365-2575.2002.00116.x Introdução • “OSS model is a fundamentally new and revolutionary way to develop software” • “organizations are having difficulty building a business model around the open source paradigm” • “not all OSS initiatives have been successful” • • “a Framework for creating Hybrid-OSS communities!!!” slide 31 de 116 o modelo de OSS - Open-Source Software • Três dimensões – Estrutura, processo e cultura Division of labour Co-ordination mechanisms structure culture Eletronic communication Multicultural community Distribution od decisionmaking Informal structure Values: reciprocity, gift giving, reputation, ideology Political structure Core assumptions Organizational boundaries Legitimate basis of authority process Fonte: Info Systems (2002), 12. slide 32 de 116 o que “sabemos” aqui? • TODO o pressman ou sommerville (Software Engineering) • ou seja: – requisitos, especificações, refinamento, validação e verificação, métodos, técnicas, linguagens e ferramentas, componentes, reutilização, manutenção, modelagem de processos, qualidade, reengenharia,, verificação, validação e teste... além de programação JAVA++!... – {faltaria o quê?} slide 33 de 116 ROTEIRO 1. Conceitos, idéias e mitos 2. Processos e Casos de sucesso e falha 3. Oficina de Montagem de Fábricas 4. Venda de Software slide 34 de 116 building a software factory... [Making the software factory work... 1990-1999] 1. to define a detailed software development process 2. staff members were given extensive training in the new process 3. process specification separated from process execution 4. data collection and analysis 1. 2. 3. 4. 5. interviews software process assesments process attributes for each project configuration management system project tracking data http://ieeexplore.ieee.org/iel5/7313/19776/00 915539.pdf slide 35 de 116 Lições aprendidas • “separating function of process engineer from developer” • “job rotation between process engineering and product development” slide 36 de 116 Fonte: www.everest2006.com.br Framework para construção de fábricas de software uma proposta 1. 2. 3. 4. 5. 6. ... processo x equipe ... requisitos x arquitetura ... métricas x incerteza ... ferramentas x processo ... Comunidade x produto ... ?? processo para definição de atividades, Precisamos de um ferramentas, técnicas, artefatos... slide 37 de 116 Processo de Software É o que as pessoas fazem, utilizando procedimentos, métodos e ferramentas, para adquirir, desenvolver, manter e melhorar software e produtos associados Objetivos Entradas ATIVIDADES Recursos e Infraestrutura slide 38 de 116 Saídas Por que usar modelos? • • • • • • Repositório das melhores práticas da Engenharia de Software (SWEBOK, CMMI, Exemplo: ISO15504, ISO9000,PMBOK) BOLO PRESTÍGIO DA TIA RÔ Modelo Referência para escrever e estabelecer processos Define “o quê“ deve ser feito, não o “como” Cobertura tipo brigadeiro Exemplo: Fazer bolo de chocolate comdecobertura Independente da tecnologia ser utilizada • Ingredientes: 1 um lata a leite condensado, 1 colher manteiga, 4 colheres de chocolate de brigadeiro ejárecheio Diversas empresas utilizaram de comcreme sucesso de coco, sem utilizar • Modo de fazer: xxxx batedeira. • de fundamentais Conhecimento Os Massa modelos definem de processos para básicaum deconjunto bolo universalÁreas •Engenharia Quais os ingredientes ???? • Ingredientes: 4 ovos, colheres água, 3 xícaras de de Software e um 16 roteiro racionaldepara avaliação e melhoria de •cada Que atividades?? farinha, 3 xícaras de açucar, 1 colher de pó royal processo • Mododevo de fazer: xxxx • Como proceder?? Recheio • Ingredientes: 1 lata de leite condensado, 1 lata de creme de leite, 1 vidro de leite de coco, 150g de coco • Modo de fazer: xxxx slide 39 de 116 Exemplo de modelo: CMMI ÁREAS DE PROCESSO RSKM: Gestão de Risco OPF: Foco no Processo QPM: Gestão Quantitativa de Projeto Organizacional REQM: Gestão de Requisitos OPD: Definição do Processo RD: Desenvolvimento de Requisitos Organizacional TS: Solução Técnica OT: Treinamento Organizacional PI: Integração de Produto OPP: Desempenho do Processo VER: Verificação Organizacional VAL: Validação OID: Inovação e Melhoria CM: Gestão de Configuração Organizacional PPQA: Garantia da Qualidade PP: Planejamento de Projeto de Processo e Produto PMC: Acompanhamento e MA: Medição e Análise Controle de Projeto DAR: Análise de Decisão e Resolução SAM: Gestão de Acordos CAR: Análise de Causa e com Fornecedores Resolução IPM: Gestão Integrada de Projeto slide 40 de 116 Exemplo de modelo: CMMI - REQM Gerenciar os requisitos Obter Entendimento dos Requisitos Requisitos Identificar Inconsistências entre Trabalho do Projeto e Requisitos Obter Comprometimento para os Requisitos Gerenciar Mudanças Requisitos Manter Rastreamento Bidirecional Requisitos Matriz de Rastreabilidade ou Sistema de Acompanhamento de Requisitos slide 41 de 116 Principais Modelos de Capacidade de Processo • ISO/IEC 15504 (SPICE) : Software Engineering: Process Assessment (Engenharia de Software: Avaliação de Processo) – SPICE: Software Process Improvement Capability dEtermination • CMMI : Capability Maturity Model Integration (Modelo Integrado de Maturidade da Capacidade) • MR-MPS: Modelo de Referência do Projeto MPS-BR • Há outros ? slide 42 de 116 Processos, guias, modelos... um mundo! slide 43 de 116 o PROCESSO é complexo! slide 44 de 116 (c) MERX LLC o processo é complexo... Ex.: Ampla F á E l a r b o b r i a d o : O J S - f o S e d a c R e v t i s ã o r a t i f i c n e I d q s a d n a m e s m a s s o e p s a i d d n e d s a r e á n e i m c e h n e d p e t a o c a l i d a V r r i t o o Prospecção o o ã ç a m r o f 0 e s t i s ã c s s o e / l a s c r n L í t e D R U C d e r T é i u q E p r e G t e n d e e e p e G e r r n e t P n e r t o e s s l i a r c i a g l o o a u Q e e n c e T e c m o C e d s o a l i d d e s o T é d í L 2 e p i u q E e d í L 1 e e r T é q E i u n e d p G i c n c s o s o i c n c n c i c s o s o o p o ? t j e o r P e d e t n e r e r e G S f r e r s t a j e e c a o r P t i n r t o f t o e r t a i p c R D T q e c P R O D R T ? K O N R D s e c f a s o r i t t e i s i n u r a r G p G s e O l i d e a V r a l C e D P i n s R P T p e c a f r e t i n r a t j e o r P S ? O R P u q e l i e G R G R r o t e i r D C R E A o ã ç i t i s u q e n p G s a c G l C N I ã o t M e s e u r s l a c G i t i s v r a d n e g t a n e s r e p a r a o ã ç i t a l i c e u / o s i t o i s u q r e A a r e V - i D c G p m e a B A C : o i r o t l d o i c í n a v Prospecção I u s o r p A - R n o C a M G , L M l p m A P J , B A C : a d e r a w N S R D Contrato Proposta r d e e C r t i n r a i s i t o i s c , s M e v e R u q e e c f a o s u R C U M E M é T r P r i a a i c n c P e d r P j e R D R F s o F P P o ã ç t n o P e n d u e l i s e d á r e P r i a C r C F P P m o o r i a t s o i a p c D p G c G o n p G E R c G a t s l a t o o p o e o n C U s o R p G R D R D A , s s a E R E M c G p G C P l C U T P P T 1 P P R E M 1 p , C P r R a D t n e e s T e P r p A G c G i D C P R D p Proposta G Execução r p a v j e a t d õ e o o ? s ? g e R s u s N n e r p p o i s s j e r t r a o ã t o o d C S F P P , F P i s P C P , T P , R D e r a P C P T O R i s v e R S . T O R R D T P F P P v e R T O R o r o P T P P P P C o C r m a t s o l c o c i a r e c i s r r l i a a v p s P P P P c G p p i a r o r c P e A P P C G a i s v e R L p G P i D o g e n e R S ? Execução N a e R e c t r e e n P P s s i n r n r a l i a m u h f t w o s r d a h a v a e R a w e s v n e i e b m a e l v r d o a r a p n t t n e i m L p t l a e n i t s e T i o i s P r a r A e T L P C R E P r E s t j e o Execução u n p r t a DR DR R E M d q s u e r r a a r a o n ã s a ç t a m l e b o n e m l e i c r n u m d o C S ? P o a o r j e Gp Gc D o P r e d í L t o 2 B-1 - p i m m p l e m e n t d i n r r e s r n e t e t n e D S ( o ) D ( I ) o M E i s v n l a e p R e S ? o i d I R T ? s e d a e D r r a d o e e u q r p i s o i r i g r r o C 2 - B P R Gp B N ? r a r g e t n I P D DR p G i t o t j e P P D R UC t i e d i s u r q p e r r a o i s n o n e R m P R C P l i z t n a e r g r N m ç a e d e t s ã e T r m Execução ã o i d o c S ? s e d a G q G o f n o c A n p i m s o l i c r a o n v ç a a s G p i t ç a ã S M S M c o r s N ? s E o c n l i c F e i t i r a p r a ã ç Function Point Analysis G PPF c r o m MER P P T I R o e d o a l G p d A u S q G I ç G r l i a a v A M UC T P 3 a e R ã ç n a a i t d l i c u o S P D S , c r i a c o g e o C p L s i t o t o j e G C P i c C P o i ã í n I T P T P e p G v l a e n u n r e l i e r c a d m l p D R n o e c g C R 3 s o p G C p L o i d l v e o s e m a Revise Requirements, interfaces, E-R and Use Cases e r a A D e d e e d a t s e T ã N m S N I S ? K r f n S e D r P a o d A o R D P P T P C P e D p t n e s e p i t o i s e l v o v n O o r i d A T L P e N e e a n N e L A r l i z U ) s o s a c d r e d a o p L i f i c s t e i d e d e d o c n s a o b d r a a d c e p T L ( I D c p L P ) o e d s o ( S D p L M e D a e R T L P 1 - o s u p G r a s a c r a l i z a e e o D R p d a o d o n A e r c u l e q e S L p e p L r L a p e P B g r m a a i s r v o n o r c s B-2 p p o r s t o l i a e d n e L d e L s , s o e r e r e a a v a i d m a e R r P r u e D p ã n r a l i s a n e d a i d r m f o r j a e n l a p ç t a n e m l e o s e B o ã N q G MER Entrega ã N m r o f n o c m e o i d t s a e T r a t i s l i z S a e R s e d a P P e d e I R P T o c S ? A n p i m G ã n r a l i s a n e d a i d r m f o r j a e n l a p ç t a n e m l e D p G q o s P MER e B o ã P P e N R D ( c e e d t e o ã ç i t a t n l i e c a p ç a s e T a o c e i t m n p G l C ) a I A R e t o l ? i c i a e P n r a o í t i a d 0 9 r n e a p r g ( e d o d i a ) s R A o Garantia ã r t o c i a l N d a e n t a m e m a i n e r a e R t r a l i z n e m s o t f f t l a a u i g a w P r r a e A r A r t e t e r F l u r R e f a t o f a t o s p o o e o s s e o ã i s s a b i l i d a d D C G G G G L D i l c t p q p e D C G G G G L D r t o i r e t e n l i e t e n r e e t e n r e e t e n r e e t e n r e e o d r e í d o v n e s e t o r e s l i a r c e m o C l o o n c e T e d s t o j e r o P e d s s e c r o P e d t o j e r o P r o d e l v e MER slide 45 de 116 P r o i d A c c o s n C g i a o s e Q u a l i d a o o l e t r b n m d a a o A S ? P r n a o c l i s e d D p e D r a e DR ? S R B Gp Gc P d e a < _ > t o j e r o P o d . d ó C < _ R < V _ > t o j e r o P o d . d ó C < _ R < V _ > t o j e r o P o d . d ó C < _ T < V _ > t o j e r o P o d . d ó C < _ C < V _ > t o j e r o P o d . d ó C < _ P V _ > t o j e r o P o d . d ó C < _ R E V _ > t o j e r o P o d . d ó C < _ T L < V _ > t o j e r o P o d . d ó C < _ I T < V _ > t o j e r o P o d . d ó C < _ U > t o j e r o P o d o i g d ó C < _ O > d d m m a a a a < _ T O R < V _ > t o j e r o P o d . d ó C < _ M < V _ > t o j e r o P o d . d ó C < _ C > t o j e r o P o d o i g d ó C < _ F P _ > t o j e r o P o d o i g d ó C < _ C _ > t o j e r o P o d o i g d ó C < _ S V _ > t o j e r o P o d o i g d ó C < I _ _ > t o j e r o P o d o i g d ó C < _ A _ > t o j e r o P o d o i g d ó C < _ M B A D P P P M P R M P P S U P D D D R R K ( o ) = O p c i o n a PP l N N Gc p G e r R e C n c e a r e p r t r a i s g n e m a t o j e r o G A D p G q R n p e e r q F 9 9 9 9 9 9 9 9 9 9 9 9 9 V < V V < < 9 < < > > > > < 9 9 9 9 9 PT d d m > 9 9 . < > 9 9 . < > 9 9 . < > 9 9 . < 9 9 . < > > 9 9 < > 9 9 < > 9 9 . < > 9 9 _ V V 9 9 < 9 9 m a > > > > a a 9 > 9 9 . < > 9 9 . < . < > 9 9 9 . < > 9 9 . < > 9 9 9 . < > 9 . < > 9 9 . < > 9 > > 9 9 9 > 9 9 9 > > > > > r t f e A D P P P M P R M P P S C P D D D R R K a t t a o r o r o l a o l a e a e r o o a o i a i a i a e e n o e r n u e c r r l i a o d a e ( < p o u q s e i n r u s o i G p s t n P O R M K o ) e p L e d e o d l t a t o u j e o i ã m a i p a R PPF p i s o i ã q v i G p r a l i z e d A o d o t G R A r d z t e n p u d o f o e d s e r p o d t o c o t o o x n o P f a t e A P P Build Technical Proposal and Project Plan UC r c O e r Encerramento Encerramento c P s n n o I P T B e D DR R P e e o t r D l r i a t o D p G a p G q G r a i n r e a t r p e e l i s a e D r P D n A o t n e u r a d n m e a g i n c p G e r G q G A S A t B Gp Di Build Commercial PC Proposal e D m s o i ã n u e R e d s i t o i s u q e R e d t o n e m u a i c n c é T t a s o l i a r c e m o C t a s o t o j e r o P e d o e R e s e d a t i d n E e d l o e t e s e T e d o e d s t e n e i d c I n e d r i o t ó r i o á u s U o d l a u o i ã i n p O e d a i s u q I ) t a s a p a ( N o t i p t ó s a ç n a d u M e d o ã ç i t a l i c o s U e d o s o ã ç n u F r o p s t o n s e s s l a C e d a m r a g i a c n ê u q e S e d a m r a g o ã ç r a t e I n e d a m r a g o ã ç i t a e c A e d r i o t ó l a o n s r i a o l h e M e d r i o t ó l a e s a B e g d l e w o c p p n d n l a n c l a e m a n i o t e s e T s P r o c e s s o n t o s PT 1 Temos uma sugestão: Hukars 1. Definir o modelo de negócios 2. Definir a organização da fábrica 3. Definir processo de desenvolvimento 4. Habilitar o trabalho de forma distribuída 5. Prover um site para a fábrica 6. Prover um site exclusivo para cada novo projeto 7. Definir papéis para cada novo projeto 8. Trabalhar em harmonia slide 46 de 116 Hukarz • Fases slide 47 de 116 Hukarz ... [email protected], [email protected], [email protected] Hukarz <<Disciplina>> Planejamento & Acompanhamento de Projetos <<Disciplina>> Arquitetura de Software <<Disciplina>> Gerenciamento de Configuração de Software slide 48 de 116 <<Disciplina>> Gerenciamento de Requisitos <<Disciplina>> Construção <<Disciplina>> Testes <<Disciplina>> Engenharia de Processo e as pessoas?. .. mais complexas ainda!! slide 49 de 116 (c) MERX LLC Fornecimento ou troca de informações, de idéia ou de sentimento, através de: PALAVRAS SINAIS GESTOS slide 50 de 116 PROCESSAMENTO INTERNO EVENTOS EXTERNOS OMISSÕES, CRENÇAS, VALORES E OBJETIVOS REPRESENTAÇÃO INTERNA •IMAGENS •SONS E PALAVRAS •SENSAÇÃO (MOTIVAÇÃO,SATISFAÇÃO) slide 51 de 116 APRESENTAÇÃO DE INFORMAÇÃO •VERBAL •NÃO VERBAL Três Estágios de Percepção • Estágio de EXPOSIÇÃO – os consumidores recebem informação através de seus sentidos. • Estágio de ATENÇÃO – os consumidores alocam capacidade de processamento a um estímulo. • Estágio de COMPREENSÃO – os consumidores organizam e interpretam a informação para obter significado a partir dela. slide 52 de 116 O QUE SE VÊ? slide 53 de 116 RESPOSTA: • TRÊS COLUNAS E NÃO TRÊS LINHAS, POR QUÊ? • OS ELEMENTOS MAIS PRÓXIMOS TENDEM A SER AGRUPADOS. slide 54 de 116 slide 55 de 116 RESPOSTA • TRÊS LINHAS E NÃO QUATRO COLUNAS, POR QUÊ? • OS ELEMENTOS SEMELHANTES SÃO AGRUPADOS. slide 56 de 116 slide 57 de 116 slide 58 de 116 slide 59 de 116 slide 60 de 116 slide 61 de 116 slide 62 de 116 O que a gente não quer? esse tipo de No, not that kind! “institutionalization”! Fonte: Process Implementation, Sarah Sheard. slide 63 de 116 Software Productivity Consortium. July 3, 2003 https://www.goldpractices.com//practices/ippd/ CASES • Bons Times • Excelentes Projetos • Excelentes Técnicas VISITAR FÁBRICAS 2008, 2007, 2006... slide 64 de 116 CASOS DE SUCESSO (at work )... •CESAR.edu 2008 •http://kport.cesar.edu.br •http://h3s.cesar.edu.br •http://geemap.cesar.edu.br •CIn-UFPE 2008 •http://tsapiens.cin.ufpe.br/ •http://www.factory2u.net/ •http://init.cin.ufpe.br/ •https://efact.cin.ufpe.br/joomla/ •CESAR.edu 2007 •http://whereis.cesar.edu.br •http://fire.cesar.edu.br •http://xfactory.cesar.edu.br •http://core.cesar.edu.br •TODA A HISTÓRIA •http://200.17.137.110:8080/in953 slide 65 de 116 ROTEIRO 1. Conceitos, idéias e mitos 2. Processos e Casos de sucesso e falha 3. Oficina de Montagem de Fábricas 4. Venda de Software slide 66 de 116 Building a Software Factory — Step by Step 1. Definir o modelo de negócios 2. Definir a organização da fábrica 3. Definir processo de desenvolvimento 4. Habilitar o trabalho de forma distribuída 5. Prover um site para a fábrica 6. Prover um site exclusivo para cada novo projeto 7. Definir papéis para cada novo projeto 0. Trabalhar em harmonia slide 67 de 116 1.Definir o modelo de negócios • Que modelos são apropriados? – http://www.opensourcestrategies.org/ – http://www.informationweek.com/blog/main/archives/2008/01/the _five_open_s.html • Que tipos de serviços? – http://www.cio.com/article/17649/Your_Guide_to_Open_Source_ Business_Models • Colaboradores externos • Licença... – http://www.opensource.org/licenses Aspectos de Propriedade Intelectual – http://www.museu-goeldi.br/institucional/i_prop_propintel.htm • Análise SWOT – http://www.businessballs.com/swotanalysisfreetemplate.htm slide 68 de 116 2.Definir a organização da fábrica • Gerência organizacional – Comitê de Gerenciamento – Vendas – Pesquisa e Desenvolvimento – Produtos – Finanças – Biblioteca de Componentes – Qualidade, etc Vide Peter Drucker em http://www.lgti.ufsc.br/O&m/aulas/Aula1/paradg mas%20adm.htm slide 69 de 116 2.Definir a organização da fábrica slide 70 de 116 3.Definir processo de desenvolvimento • • • • Flexível Leve Iterativo Incremental • Propostas? • vide RUP, Hukarz, SCRUM, XP e suas variantes XRUP, SCRUP… slide 71 de 116 4.Habilitar o trabalho de forma distribuída • Organização virtual • Comunicação Assíncrona – Listas de discussão – Web site • Comunicação Síncrona – Encontros – IM • SCM (gerência de configuração) • Issue tracker • Blogs • vide – DDS – Desenvolvimento Distribuído de Software – GDS – Global Development Software – WDDS – Workshop de Desenvolvimento Distribuído de Software slide 72 de 116 5.Prover um site para a fábrica • • • • • • Missão Processo de desenvolvimento Notícias Membros dos times Projetos e soluções Etc... • Vendas de Software slide 73 de 116 6.Prover um site exclusivo para cada novo projeto • Visibilidade interna e externa – News – Artefatos – Downloads – Informações do projeto slide 74 de 116 7.Definir papéis para cada novo projeto • Alocar papéis • Vide MBTI, … – Classificação Tipológica de Myers Briggs (geralmente abreviado para MBTI pelo termo em inglês). – Este método utiliza-se de quatro dicotomias distintas (Introversão-Extroversão, SensaçãoIntuição, Razão-Sentimento e JulgamentoPercepção), baseadas no trabalho de Carl Jung, que indicam características pessoais de forma geral. slide 75 de 116 0.Trabalhar em harmonia slide 76 de 116 0.Trabalhar em harmonia slide 77 de 116 Referências Bibliográficas Livros • • • • • • • • • • • • • • • Abran, A. and Moore, J.W. and Bourque, P. and Dupuis, R. (eds). Guide to the Software Engineering Body of Knowledge (SWEBOK). IEEE Press, 2004. Chrissis, M. B. and Konrad, M. and Shrum, S. CMMI(R): Guidelines for Process Integration and Product Improvement (2nd Edition) (The SEI Series in Software Engineering). Addison-Wesley Professional, 2006. Clements., M. P. and L. Northrop., Software Product Lines: Practices and Patterns. Addison-Wesley, 2002. D’Souza, D. F. and Wills, C. A. Objects, Components, and Frameworks with UML – The Catalysis Approach. Addison-Wesley, 1999. Greenfield, J. and Short, K. and Cook, S. and Kent, S. and Crupi, J. Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. John Wiley, 2004, 500p. Heineman, G., T., Council, W., T. Component-Based Software Engineering: Putting the Pieces Together, AddisonWesley. 2001. Humphrey, W. PSP(sm) : A Self-Improvement Process for Software Engineers (SEI Series in Software Engineering). Adison Wesley professional, 2005, 368p. Humphrey, Watts S. 1989. Managing the software process. Boston, MA, USA: Addison - Wesley Longman Publishing Co., Inc. Jacobson, Ivar, Booch, Grady, & Rumbaugh, James. 1999. The unified software development process. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc. Lenz, G. and Wienands, C. Practical Software Factories in .NET. Apress, 2006, 240p. McIlroy, M. D. 1968. Mass Produced Software Components. Pages 79–85 of: Naur, P., & Randell, B. (eds), NATO Software Engineering Conference Report. Pereira, A. Vendendo Software. Novatec Editora, 2004, 160p. Pressman, R. Engenharia de Software. McGraw-Hill Interamericana do Brasil, 2003, 6ª. Edição, 752p. Raymond, Eric S. The Cathedral and the Bazaar. Sebastopol, CA, USA: O’Reilly & Associates, Inc, 1999. Sametinger, J. Software Engineering with Reusable Components. Springer-Verlag, 1997. Referências Bibliográficas Livros • Williams, J. The Business Case for Components, In Component-Based Software Engineering: Putting the Pieces Together, Addison-Wesley, 2001. Artigos – Periódicos • • • • • • • • • • • • • • Brown, A., Wallnau, K. The Current State of CBSE, IEEE Software, Oct , 1998. Cusumano, M. A. 1989. The Software Factory: A Historical Interpretation. IEEE Softw., 6, 23–30. 2.4 DeLano,Warren L. 2005. The case for open-source software in drug discovery. Drug Discovery Today, 10(3), 213– 217. Favaro, J. What Price Reusability? A Case Study, ADA Letters, Mar, 1991. Frakes, W., B., Isoda, S. Success Factors of Systematic Software Reuse. IEEE Software, Sep, 1994. Frakes, W., B., Fox, C., J. Sixteen Questions about Software Reuse. Communications of the ACM, June, 1995. Fuggetta, Alfonso. 2003. Controversy corner: open source software-an evaluation. J. Syst. Softw., 66(1), 77–90. Glass, R. Reuse: What’s wrong with this picture?, IEEE Software, Mar, 1998. Griss, M., Wosser, M. Making Reuse Work at Hewlett-Packard, IEEE Software, 1995. Highsmith, Jim, & Cockburn, Alistair. 2001. Agile Software Development: The Business of Innovation. Computer, 34(9), 120–122. Joos, R. Software Reuse at Motorola, IEEE Software, Sep, 1994. Lamers, S. Programmers at Work, Microsoft Press, 1986. Mills, H. D., O’Neill, D., Linger, R. C., Dyer, M., & Quinnan, R.E. 1980. The management of software engineering. IBM Syst. J., 19(4), 414–477. Moraes, A. K. O., Meira, S. R. L., & Albuquerque, J. O. 2007a. Building real F/OSS software factories: How to create development communities around outside requirements. In: St.Amant, K., & Still, B. (eds), Handbook of Research on Open Source Software: Technological, Economic,and Social Perspectives. Idea Group Reference (to appear). Morisio, M., Ezran, Tully, C. Success and Failure Factors in Software Reuse, IEEE Transactions on Software Engineering, Apr, 2002. Referências Bibliográficas Artigos – Periódicos • • • • • • • • R. D. Battin, R. Crocker, and J. Kreidler, "Leveranging resource in Global Software Development," IEEE Software, 2001. R. Prikladnicki, "MuNDDoS Um modelo de Referência para o Desenvolvimento Distribuído de Software." Dissertação de mestrado da PUCRS, Porto Alegre, 2003. Schiff, Aaron. 2002. The Economics of Open Source Software: A Survey of the Early Literature. The Review of Network Economics, 1(1), 66–74. Sharma, S., Sugumaran, V., & Rajagopalan., B. 2002. A framework for creating hybrid-open source software communities. Information Systems Journal, 12, 7–25. Softex. 2005. O impacto do software livre e de código aberto na indústria de software do Brasil. Tech. rept. Softex, Campinas, SP. Software Engineering Institute. Market Assessment of Component-Based Software Engineering, Technical Report, May, 2000. Sommerville, Ian. 1996. Software process models. ACM Comput. Surv., 28, 269–271. Travasso, G., Gurov, D., & Amaral, E. 2002. Introduction to Experimental Software Engineering. Tech. rept. Universidade Federal do Rio de Janeiro, Relatório Técnico RT-ES-590/02. Artigos – Conferências • • • Aaen, I., Botcher, P., & Mathiassen., L. 1997. Software factories: Contributions and illusions. In: Proceedings of the Twentieth Information Systems Research Seminar. Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. 2002. Agile software development methods: Review and analysis. Pages 107–218 of: ESPOO 2002, vol. 478. VTT Publications. Abrahamsson, P. and Warsta, J. and Siponen, M. T. and Ronkainen, J. 2003. New directions on agile methods: a comparative analysis. Pages 244–254 of: ICSE ’03: Proceedings of the 25th International Conference on Software Engineering. Washington, DC, USA: IEEE Computer Society. Referências Bibliográficas Artigos – Conferências • • • • • • • • • Agerfalk, P.J., Fitzgerald, B., Holmstrom, H., Lings, B., Lundell, B., & o Conchuir, E. 2005. A Framework for Considering Opportunities and Threats in Distributed Software Development. Pages 47–61 of: DiSD ’05: Proceedings of the International Workshop on Distributed Software Development. Paris, France: Austrian Computer Society. Albuquerque, J. O., Meira, S. R. L., & Moraes, A. K. O. 2006. Software Engineering in Practice: Building Software Factories. Pages 49–50 of: ESELAW ’06: Proceedings of the 3rd Experimental Software Engineering Latin American Workshop. Bemer, R. W. 1968. Position Paper for the Panel Discussion on the Economics of Program Production. Pages 1626–27 of: Proceedings of Information Processing 68, vol. 2. Boehm, Barry. 2006. A view of 20th and 21st century software engineering. Pages 12–29 of: ICSE ’06: Proceeding of the 28th international conference on Software engineering. New York, NY, USA: ACM Press. Cavalcanti, A. P. C., Lucena, L. R., Lucena, M. J. N. R., Moraes, A. K. O., Fernandes, D. Y. S., Pereira, S. C., Albuquerque, J. O., & Meira, S. R. L. 2005. Towards an Open Source Software Factory. In: ESELAW ’05: Proceedings of the 2nd Experimental Software Engineering Latin American Workshop. Greenfield, Jack, & Short, Keith. 2003. Software factories: assembling applications with patterns, models, frameworks and tools. Pages 16–27 of: OOPSLA ’03: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. New York, NY, USA: ACM Press. Hansen, Bo Hansen, & Kautz, Karlheinz. 2005. Grounded Theory Applied - Studying Information Systems Development Methodologies in Practice. Page 264.2 of: HICSS ’05: Proceedings of the Proceedings of the 38th Annual Hawaii International Conference on System Sciences (HICSS’05) - Track 8. Washington, DC, USA: IEEE Computer Society. Herbsleb, James D., Mockus, Audris, Finholt, Thomas A., & Grinter, Rebecca E. 2001. An empirical study of global software development: distance and speed. In: ICSE ’01: Proceedings of the 23rd International Conference on Software Engineering. Toronto, Ontario, Canada: IEEE Computer Society. 381481 81-90. Herbsleb, James D., Paulish, Daniel J., & Bass, Matthew. 2005. Global software development at siemens: experience from nine projects. Pages 167–173 of: ICSE ’05: Proceedings of the 27th international conference on Software engineering. St. Louis, MO, USA: ACM Press. Referências Bibliográficas Artigos – Conferências • • • • • • • • • • • • Moraes, A. K. O., Meira, S. R. L., & Albuquerque, J. O. 2006. Open Source Software Factory — Step by Step: A Case Report. Pages 46–51 of: Héphaïstos ’06: Proceedings of the First International Conference on Open Source Collaborative Development Platforms. 4.1, 4.2, 7 Moraes, Alan Kelon Oliveira, de Lemos Meira, Silvio Romero, & de Albuquerque, Jones Oliveira. 2007b (June). Open Source Software Factories: Pushing the Software Engineering into the Open Source Development. In: OSS ’07: Proceedings of the Third IFIP International Conference on Open Source Systems. Perry, Dewayne E., Porter, Adam A., & Votta, Lawrence G. 2000. Empirical studies of software engineering: a roadmap. Pages 345–355 of: ICSE ’00: Proceedings of the Conference on The Future of Software Engineering. New York, NY, USA: ACM Press. Ribeiro, R. A., Silva, F. Q. B., Moraes, A. K. O., Albuquerque, J. O., & Meira, S. R. L. 2006. Towards a software licensing guide for Open Source Business Models. Pages 52– 62 of: Héphaïstos ’06: Proceedings of the First International Conference on Open Source Collaborative Development Platforms. Siy, Harvey P., Herbsleb, James D., Mockus, Audris, Tucker, George T., &Krishnan, Mayuram. 2001. Making the Software Factory Work: Lessons from a Decade of Experience. Pages 317–326 of: METRICS ’01: Proceedings of the 7th international Symposium on Software Metrics. IEEE Computer Society, Washington, DC. Tartarelli, R. V., Winckler, W. S., e Kronmeyer, O. R. F. "Aprendizagem organizacional em fábricas de software". PMI-RS.Disponível em: http://www.pmirs.org/Estudos/Rubens.pdf, 2005. V. Gruhn, "Process-Centered Software Engineering Environments, A Brief History and Future Challenges," 2002. Wine. 2006. Wine HQ. Disponível em http://www.winehq.com/. 5th ICSE Workshop on Component-Based Software Engineering, Benchmarks for Predictable Assembly, In conjunction with the 24th International Conference on Software Engineering, (ICSE), May, 2002. Griss, M. Software Reuse Experience at Hewlett-Packard, 16th International Conference on Software Engineering, (ICSE), May, 1994. Mehta, A., Heineman, G., T. Evolving Legacy System Features into Fine-Grained Components, In 24th International Conference on Software Engineering (ICSE). ACM Press, 2002. Rine, D, C. Success Factors for Software Reuse that are applicable across Domains and Businesses, ACM symposium on Applied Computing, Mar, 1997. Referências Bibliográficas Artigos – Conferências • • • Visser, W. Strategies in Programming Programmable Controllers: A field study of Programmers, Workshop, 1987. 7th International Workshop on Component-Oriented Programming (WCOP) in conjunction with the 16th European Conference on Object-Oriented Programming (ECOOP), Málaga, Spain, 2002. Werner, C.; Braga, R. Desenvolvimento Baseado em Componentes, In XVI Simpósio Brasileiro de Engenharia de Software, Minicursos, João Pessoa, Paraíba, 2000.