Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.
-
Upload
matheus-henrique-prada-regueira -
Category
Documents
-
view
214 -
download
0
Transcript of Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.
![Page 1: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/1.jpg)
Criando Comunidades de Desenvolvimento de Código
AbertoAlan Kelon Oliveira de Moraes
![Page 2: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/2.jpg)
Breve História do Open Source
[Hars and Ou, 2001] Working for Free? - Motivations of Participating in Open Source Projects
![Page 3: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/3.jpg)
Sumário
• Lei de Lotka• Motivações dos desenvolvedores OSS• Melhores práticas OSSD• O Dilema• Referências
![Page 4: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/4.jpg)
Lei de Lotka
![Page 5: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/5.jpg)
Lei de Lotka
• “The number of authors making n contributions is about 1/na of those making one contribution, where a is often nearly 2” [Lotka, 1926]
![Page 6: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/6.jpg)
MetaLab
• apenas 13 de 2429 contribuidores fazem mais de 10 contribuições
• 91.4% contribuíram uma ou duas vezes• 2.2% contribuem com cinco ou mais
contribuições
[Dempsey et al., 2002]
![Page 7: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/7.jpg)
• 25 milhões de linhas de código
• 3149 projetos• ~13.000 contribuições[Gosh and Prakash,
2000]
[Lerner and Tirole, 2002]
Red Hat 6.1 + Kernel 2.2.14
![Page 8: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/8.jpg)
• 10% da população escreve 72% do código
• 20% da população escreve 81% do código [Gosh and Prakash, 2000]
• Para cada um que escreve código, cinco apenas irão reportar erros [Valloppillil, 1998]
[Lerner and Tirole, 2002]
Red Hat 6.1 + Kernel 2.2.14
![Page 9: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/9.jpg)
Apache & GNOME
• 4% de 400 programadores são responsáveis por 88% do código do servidor web Apache [Mockus et al., 2002]
• No GNOME, 17% de 301 programadores contribuiram com 80% do código [Koch and Schneider, 2002]
![Page 10: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/10.jpg)
Uma ressalva
• Nem todos os desenvolvedores possuem acesso de escrita no CVS
• As estatísticas podem estar infladas...
![Page 11: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/11.jpg)
Motivações dos Desenvolvedores OSS
![Page 12: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/12.jpg)
Trabalhando de graça?
• Fatores internos – Motivações intrínsecas
• “Innate desire to code, and code, and code until the day I die.”
– Altruísmo– Identificação com a comunidade
• Recompensas externas– Retorno futuro: renda de serviços/produtos
associados, capital humano, auto-marketing, reconhecimento
– Necessidade pessoal[Hars and Ou, 2001]
![Page 13: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/13.jpg)
• Entrevista com 79 desenvolvedores
Trabalhando de graça?
[Hars and Ou, 2001]
![Page 14: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/14.jpg)
Trabalhando de graça?
[Hars and Ou, 2001]
![Page 15: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/15.jpg)
$$
• Benefícios imediatos– Aprimorar seu conhecimento– É mais divertido que seu trabalho
• Benefícios futuros– Ofertas de empregos, participação em
empresas, acesso a capital de risco– Ego, reconhecimento
[Lerner and Tirole, 2002]
![Page 16: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/16.jpg)
Fatores que influenciam a participação em OSSD
• Motivações intrínsecas• Identificação com o grupo• Aprendizagem• Reputação • Plano de carreira
[Lattemann and Stieglitz, 2005]
![Page 17: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/17.jpg)
Principais papéis
• Bug fixers (75% dos usuários [Raymond 1999])
• Programmers• Managers – são [ou querem ser] pagos
[Lattemann and Stieglitz, 2005]
![Page 18: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/18.jpg)
Ciclo de vida
[Lattemann and Stieglitz, 2005]
![Page 19: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/19.jpg)
Por que há declínio?
• Muitas regras para programar• Decisões dos gerentes não são
entendidas pela comunidade• Muita influência de empresas• Pessoas importantes deixam o projeto
[Lattemann and Stieglitz, 2005]
![Page 20: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/20.jpg)
Melhores Práticas OSSD
![Page 21: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/21.jpg)
Arquitetura Modular
• Possibilita desenvolvimento concorrente• Mas a arquitetura do sistema é retida sob
as mãos do(s) autor(es) originais ou atuais arquitetos (mantenedores) do software.
[Arief et al., 2001]
![Page 22: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/22.jpg)
O que um projeto OSS precisa?
• Pesquisa com 80 projetos do SourceForge– 40 projetos com sucesso– 40 projetos sem sucesso (*)
• Os projetos de sucesso utilizam um processo de coordenação e de comunicação mais bem definido
[Michlmayr, 2005]
![Page 23: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/23.jpg)
Onde estão as diferenças?
• Utilização de CVS• Uso de listas de discussão e
armazenamento de seu histórico• Testes: lançamentos de versões beta• Qualidade: uso do bugzilla
[Michlmayr, 2005]
![Page 24: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/24.jpg)
O que é comum?
• Ambos disponibilizam documentação para os usuários, porém pouca documentação voltada para desenvolvedores
• Não se preocupam em criar testes automáticos
• Preocupação com portabilidade
[Michlmayr, 2005]
![Page 25: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/25.jpg)
O Dilema
![Page 26: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/26.jpg)
Comunidades orgânicas vs. sintéticas
• Dois tipos de comunidades:– orgânicas: bazar– sintéticas: criadas por
empresas• Dilema: como controlar o
projeto para atender minhas [empresas] necessidades e ainda construir uma comunidade? Como influenciar o processo padrão em uma direção que seja positiva para a empresa?
Qual o modelo de governo ideal?
[O’Mahony and West, 2005]
![Page 27: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/27.jpg)
Comunidades orgânicas vs. sintéticas
• Projeto OSS significa: licença, processo de desenvolvimento, modelo de governo.
• O termo “open source project” não possui um significado claro e tão bem definido quanto “open source license”.
[O’Mahony and West, 2005]
![Page 28: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/28.jpg)
Comunidades Orgânicas
• Governo não é imposto, mas emerge da necessidade de organização do projeto
• Custo inicial muito alto• “Furthermore, the continued reference
to the same handful of successful projects (notably Linux and Apache) suggests that there is tremendous difficulty building projects this way”
[O’Mahony and West, 2005]
![Page 29: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/29.jpg)
Comunidades Sintéticas
• Por quê?– Criação de um mercado para o projeto ou
reduzir o mercado do concorrente– Acelerar distribuição e redução de custos
com o marketing– Diversificar seus produtos– Serviços associados
[O’Mahony and West, 2005]
![Page 30: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/30.jpg)
• Como?– Desenvolvimento fechado mas transparente– Doando código, recursos e reduzindo o start-
up do projeto– Transferir responsabilidade para a
comunidade após algum tempo– Deixar o desenvolvedor deixar sua marca– Contrate os melhores da comunidade!
Comunidades Sintéticas
[O’Mahony and West, 2005]
![Page 31: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/31.jpg)
Open Source e CMM?• Desenvolvimento fechado
– CMM nível 2• Migração para Open Source
– Qualidade do código e documentação aumentou porque estavam preocupados com sua reputação
– Gerência do processo tornou-se mais explícito– CMM nível 3, com tendência para nível 4
• Projeto Open Source– Acabou o financiamento– Diminuição da comunicação face a face– Volta para o CMM nível 2, faltando apenas a gerência
do processo para voltar a nível 3[Bleek et al., 2005]
![Page 32: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/32.jpg)
Referências• Lotka, A. J. 1926. The Frequency Distribution of
Scientific Productivity, Journal of the Wash. Academy of Sciences, 16(12):317-323
• Dempsey, B. J., Weiss, D., Jones, P. and Greenberg, J. 2002. Who is an open source software developer? Comm. of the ACM, volume 45, number 2 (February), pp. 67-72
• Lattemann, C. and Stieglitz, S. 2005. Framework for Governance in Open Source Communities. In Proceedings of the Proceedings of the 38th Annual Hawaii international Conference on System Sciences (Hicss'05) - Track 7 - Volume 07 (January 03 - 06, 2005). HICSS. IEEE Computer Society, Washington, DC, 192.1.
![Page 33: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/33.jpg)
• Raymond, E. S. (1999), “The Magic Cauldron”, (Accessed: June 6, 2004): http://www.catb.org/~esr/writings/magic-cauldron/.
• Lerner, J., Tirole, J. (2002). "Some Simple Economics of Open Source," Journal of Industrial Economics, 52, 197—234
• Hars, A. and Ou, S. 2001. Working for Free? - Motivations of Participating in Open Source Projects. In Proceedings of the 34th Annual Hawaii international Conference on System Sciences ( Hicss-34)-Volume 7 - Volume 7 (January 03 - 06, 2001). HICSS. IEEE Computer Society, Washington, DC, 7014
Referências
![Page 34: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/34.jpg)
Referências• Mockus, A., Fielding, R. & Herbsleb, J. (2000) A case
study of open source software development: the Apache server. In: Proceedings of the 22nd International Conference on Software Engineering, pp. 263–272.
• Koch, S. and Schneider, G. Effort, cooperation and coordination in an open source software project: GNOME. Information Systems Journal, 12(1):27--42, 2002.
• O’Mahony, S. and West, J. “What makes a project open source? Migrating from organic to synthetic communities.” Academy of Management conference, Technology and Innovation Management division, Honolulu, August 2005.
![Page 35: Criando Comunidades de Desenvolvimento de Código Aberto Alan Kelon Oliveira de Moraes.](https://reader036.fdocuments.us/reader036/viewer/2022070507/570638491a28abb8238f49e5/html5/thumbnails/35.jpg)
Referências• Bleek, Wolf-Gideon and Matthias Finck and Bernd Pape, Towards
an Open Source Development Process – Evaluating the Migration to an Open Source Project by Means of the Capability Maturity Model, OSS 2005: Proceedings of the First International Conference on Open Source Systems(OSS 2005), 11-15 Juli 2005, Genua, Italien, 2005.
• Arief, L.B., Gacek, C. and Lawrie, T. Software Architectures and Open Source Software - Where can Research Leverage the Most?. 1st Workshop on Open Source Software Engineering: Making Sense of the Bazaar (part of the 23rd IEEE International Conference on Software Engineering (ICSE 2001)), Toronto, Canada, 15 May 2001, pp - 3-5, 2001.
• Michlmayr, M. (2005). Software Process Maturity and the Success of Free Software Projects.In: Zieliński, K., Szmuc, T. (Eds.), Software Engineering: Evolution and Emerging Technologies. 3–14