FVS 2014 Building OSS Factories [email protected] [email protected] [email protected] factories X OSS development... • • • • • • conjunções e intersecções métodos e ferramentas processo modelos licenças vendas Free Software Engineering: A Field to Explore Gonzáles-Barahona and Robles UPGRADE Vol. IV No. 4 August 2003 http://www.upgrade-cepis.org/issues/2003/4/upgrade-vIV-4.html Free Software Projects • Nascem como iniciativa isolada e particular • Usuários são codesenvolvedores • Divulgação “boca-aboca” • Teste massificado pelos usuários • Gerência de versões é complexa e “bemdefinida” Open Source Projects • • • • • • • • • • • • • • • • • • • (Sun apr 16 00:10:21 BRT 2006) 133,421 projects! Communications (13469) Database (5388) Desktop Environment (2822) Education (3252) Formats and Protocols (1292) Games/Entertainment (12694) Internet (21951) Multimedia (11518) Office/Business (6136) Other/Nonlisted Topic (2065) Printing (417) Religion and Philosophy (274) Scientific/Engineering (9942) Security (2494) Sociology (355) Software Development (18587) System (17790) Text Editors (2436) 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) http://sourceforge.net/ Text Editors (3275) Causas de Descontinuidade de Projetos SW Livre • Falta de interesse, tempo ou motivação – mudança de liderança nos projetos impactam sua continuidade • Code Forking – cada usuário tem acesso ao código e pode alterá-lo e redistribuí-lo sem o conhecimento do líder do projeto http://www.math.uconn.edu/~bass/scdp.pdf Free Software Engineering Resume • “A Field to Explore” • “is still in its infancy” (2003!) • “How to create free software? Issues: – Classification of free software projects – Creation of a methodology – Methods + classification + models ++ Simulation (intelligent agents) = Free SW Engineering” A Framework for creating hybrid-open source software communities Srinarayan Sharma et. al. Info Systems (2002), 12. The OSS model • Three dimensions: – structure, process and culture 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 Framework for creating HybridOSS communities Principles: • Community building • Community governance – Shared governance – Membership management – Incentives and rewards • Community infrastructure 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 linhas-mestras IN953 – Engenharia de Software • Process Implementation – Software Factories (Gibeon, Ana Paula, Thayssa) • F/L/OSS (Alan) • OSS Business Model (Alan, Ana Paula, Aisa) • Scientific Relevant Projects (Convidados) • Business & Humanitas (TODOS!) fábricas de software princípios conceitos ilusões fábrica de sw 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 [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] 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 http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ 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” 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.cin.ufpe.br/~in953/papers/Software_Factories_17.pdf 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) Estratégia Japonesa • Aumento de produtividade e qualidade de desenvolvimento e manutenção • Estratégia baseada em infra-estrutura: física, organizacional e ferramental • Uso de métricas • Metodologia padronizada para todos os projetos • Reuso em todas as fases • Foco em tecnologia Estratégia Européia • Ambientes integrados de desenvolvimento orientados a cliente (IDEs) • Estratégia orientada a ferramentas: padronização de componentes, adaptação de processo • Sem métricas formais • Metodologia adaptada por projeto • Sem reuso formal • Foco em Tecnologia (Organizacional... ISO-9000) Estratégia Norte Americana 1 • Baseada em Componentes • Maior eficácia de processos, menos re-trabalho e mais reuso • Estratégia de melhoria contínua baseada na experiencia adquirida • Sem métricas rigorosas • Metodologia adaptada por projeto • Reuso • Sem foco em tecnologia, foco em pessoas! (...Ágeis...XP – Extreme Programming, SCRUM) Estratégia Norte Americana 2 • Processo eficaz, previsível, confiável e automelhorável • Estratégia de melhoria em etapas, níveis de maturidade • Uso de métricas • Metodologia adaptada por projeto • Pouco reuso • Pouco foco em tecnologia (Processos... RUP, CMM...) ...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 [Aaen, Botcher, Mathiassen, Software Factories, 1997] http://www.cin.ufpe.br/~in953/papers/Software_Factories_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? building a software factory... [Making the software factory work... 1990-1999] http://www.cin.ufpe.br/~in953/papers/MakingTheSoftwareFactoryWorkLessonsFromADecadeOfFactory.pdf 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 o PROCESSO é complexo! (c) MERX LLC 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 P r o i d A c c o s s e o ã i s o s n C 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 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 Process Implementation or, We’ve documented all our processes— what’s left to do? Sarah Sheard Software Productivity Consortium Thursday, July 3, 2003 So what does it take? 1. Manage as a project 2. Obtain management support 3. Establish policy 4. Establish measurement baseline 5. Train employees and managers 6. Tailor processes 7. Maintain process assets 8. Ensure processes are being used 9. Learn Lessons 10. Improve Processes 11. Appraise the organization Process Implementation Requires Everyone! • Senior management sets the tone and ensures other managers make PI happen • SEPG drives the process improvement program to its goals • Projects review processes, tailor standard processes, use their tailored versions, and recommend improvements • QA audits independently Funciona para SW Livre? • Adaptação de Processos de 1990? • 2007! Distributed Development... • O que fazer? – Ler – Praticar – Montar experimentos reais e avaliar... um desenvolvimento sem processo... SISTEMAS SÃO ENTREGUES!! Mas... Acúmulo de Trabalho Descontinuidade de planos Prazos, custos... Estouram Time de heróis Clientes sem atendimento • • • • • • • Engenharia de Produção de Software: histórico 60´s Fábrica de Software (1958!!!) 70´s Kanbam 70´s Just In Time 80´s SIGMA 90´s CMM 00´s Fábrica de Software... PMBOK, ISO, MPSBR... Modelos! alternativas... MPS.BR • Melhoria do Processo de Software Brasileiro – – – – – Boas Práticas Experiência de pequenas e médias empresas Custos reduzidos Aderência a outros Modelos Escalabilidade e praticidade (23) Processos, organizados em (7) Níveis de Maturidade MPS.BR MR-MPS v1.0 2005 Nível CMMI correspondente: A: Em Otimização (Inovação e Implantação na Organização – IIO) (Análise e Resolução de Causas – ARC) B: Gerenciado Quantitativamente (Desempenho do Processo Organizacional – DEP) (Gerência Quantitativa do Projeto – GQP) C: Definido (Gerência de Riscos – GRI) (Análise de Decisão e Resolução – ADR) D: Largamente Definido (Desenvolvimento de Requisitos – DRE) (Validação – VAL) (Solução Técnica – STE) (Verificação – VER) (Integração do Produto – ITP) (Instalação do Produto – ISP) (Liberação do Produto – LIP) E: Parcialmente Definido (Treinamento – TRE) (Definição do Processo Organizacional – DFP) (Avaliação e Melhoria do Processo Organizacional – AMP) (Adaptação do Processo para Gerência de Projeto – APG) F: Gerenciado (Gerência de Configuração – GCO) (Medição – MED) (Garantia da Qualidade – GQA) (Aquisição – AQU) G: Parcialmente Gerenciado (Gerência de Projeto – GPR) (Gerência de Requisitos – GRE) Baseados na ISO/IEC 12207, ISO/IEC 15504, e CMMI-SE/SW 5 4 3 2 [Salviano 2005] What is institutionalization? No, not that kind! e as pessoas?... (c) MERX LLC MASLOW Trabalho em Equipe O trabalho em equipe é um processo baseado em princípios e valores que estão claramente definidos e entendidos. O verdadeiro trabalho em equipe é um processo contínuo interativo de um grupo de pessoas aprendendo, crescendo e trabalhando interdependentemente para alcançar metas e objetivos específicos no suporte a uma missão comum. ORGANIZAÇÕES ESTRUTURAIS X BASEADAS EM HABILIDADES ORGANIZAÇÕES TRADICIONAIS: Realizam tarefas funcionais; Pessoa em segundo plano; O controle é a meta; ORGANIZAÇÕES BASEADAS EM HABILIDADES: Realizam bem, as tarefas com funções cruzadas; As pessoas são valorizadas; A meta é valorizar o que constitui valor para os clientes; Visão a curto prazo; Informação, formação, e incentivos, Visão a longo prazo; não são importantes; Informação, formação e incentivos, Repetem os ciclos de reestruturação são importantes; e regressão. Criam um padrão de melhoria permanente. 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ê?}