Seminário - Two Case Studies of Open Source
Software Development: Apache and Mozilla
Setembro de 2014 Vagner Clementino vagnercs@dcc.ufmg.br
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG
Agenda
Autores Contexto Motivação Objetivos Metodologia Resultados Hipóteses ReferênciasSeminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino 2 Autores Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências
Autores
Sobre os autoresI Audris Mockus: Professor do Departamento de Engenharia Elétrica e Ciência da Computação da Universidade de Tennessee.
I Roy T. Fielding: Um dos autores da especificação HTTP e co-fundador do projeto Apache.
I James D. Herbsleb: Professor da Faculdade de Ciência da Computação na Universidade Carnegie Mellon.
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores 3 Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG
Contexto
Qualidade dos OSSÉ inegável a qualidade de alguns Open Source Software (OSS):
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores 4 Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências
Contexto
Apache Market Share31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores 5 Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG
Contexto
Firefox Market ShareFirefox Market Share - 06/2014 [STATCOUNTER, 2014] http://news.netcraft.com/archives/category/
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores 6 Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências
Contexto
Características do Desenvolvimento de OSS
O processo de desenvolvimento de OSS possui características próprias:
I Sistemas OSS são contruídos por um grande número de voluntários;
I O trabalho não é atribuído, o voluntário tem a possibilidade de escolher em que contribuir;
I Inexistência de desenho à nível de sistema, ou mesmo um desenho detalhado;
I Não existe plano, cronograma ou lista de entregáveis;
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto 7 Motivação Objetivos Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG
Motivação
O Processo de Desenvolvimento de OSS
O processo de desenvolvimento de OSS é equivalente ou superior ao modo tradicional:
I Defeitos são localizados e resolvidos em menor tempo; "Linus’s Law - [Raymond, 1999]
I O código é escrito com mais cuidado e criatividade, tendo em vista que o desenvolvedor trabalha somemte com aquilo que ele gosta
Apesar do processo de OSS resultar em softwares de qualidade, existem autores que questionam a sua
aplicabilidade em outros contextos. [Bollinger et al., 1999] e [McConnell, 1999].
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto 8 Motivação Objetivos Metodologia Resultados Hipóteses Referências
Motivação
I Inexistências de estudos empíricos sobre o processo dos OSS
I OSS apresenta-se como um grande desafio para a economia e para os métodos de desenvolvimento
tradicional,portanto, é fundamental para compreendê-lo e avaliá-lo.
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação 9 Objetivos Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG
Objetivos
I Analisar o processo de desenvolvimento de um OSS (Parte 01 - Apache);
I Comparar o OSS com relação a outros softwares que utilizam o processo comercial/tradicional de
desenvolvimento (Parte 01 - Apache)
I Propor um conjunto de hipóteses e validá-las em outro OSS (Parte 02 - Mozilla)
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 10 Metodologia Resultados Hipóteses Referências
Metodologia
Avaliando o processoProblema operacional: Como analisar um processo de software que não está formalmente definido?
I Definição de um rascunho do processo;
I Validação do rascunho junto aos core-members do Apache.
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 11 Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG
Metodologia
Apache DatasetLista de e-mail dos desenvolvedores:
I Data;
I Remetente
I Assunto
I corpo da mensagem
Arquivos do sistema de controle de versão - CVS
I Data da alteração,
I Login do desenvolvedor,
I Arquivos alterados
I Número de linhas adicionadas ou deletadas por arquivo
I Descrição da mudança
I Pessoa que submeteu ou verificou a mudança
I Número do "Problem Report"(PR)
I “fixes”
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 12 Metodologia Resultados Hipóteses Referências
Metodologia
Apache DatasetArquivos do banco de dados de problemas relatados - BUGDB:
I Número do PR
I Módulo afetado
I Situação (open, suspended, analyzed, feedback, closed)
I Nome de quem submeteu
I Data
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 13 Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG
Metodologia
Processo BaselineUtilizou-se um processo, denominado Processo de Desenvolvimento Comercial, para fins de comparação:
I Alteração evolução inicia-se através de uma Requisição de Modificação - MR
I MR define um trabalho a ser feito em um módulo específico
I Cabe a um gerente avaliar a validade de uma MR e atribuí-la ao desenvolvedor
I O desenvolvedor recebe a MR, realiza as alterações e devolve a quem o encaminhou
I Inspeções de código, testes de funcionalidade, integração, testes de sistema e implantação da modificação são realizadas.
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 14 Metodologia Resultados Hipóteses Referências
Metodologia
Softwares de BaselinePara fins de comparação utilizou-se de software que utilizam o Processo de Desenvolvimento Comercial:
I Projetos da área de telecomunicaçoes:
I Projeto A - Software para nodos de redes backbone do tipo SONET ou SDH
I Projeto B - Software para manipulação de redes sem fio
I Projetos C, D, e E - Softwares para a administração de operações
I Projetos similares ao Apache em tamanho e tempo de desenvolvimento
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 15 Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG
Metodologia
Dataset do Processo Comercial
Os dados do Processo de Desenvolvimento Comercial foram obtidos através dos softwares que o dão suporte:
I Extended Change Management System (ECMS)
I Gerencia o controle de mudanças
I Dados Registrados:
I Data de abertura da MR
I Descrição da MR
I Histórico da MR
I Data de conclusão da MR
I Source Code Control System (SCCS)
I Versionamento
I Dados registrados:
I Arquivo alterado
I Data do ’check-in’
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 16 Metodologia Resultados Hipóteses Referências
Metodologia
Questões de PesquisaForam propostas as seguintes questões de pesquisa:
I Q1: Como funciona o processo utilizado para desenvolver Apache?
I Q2: Quantas pessoas escrevem novas
funcionalidades do Apache? Quantas pessoas relatam problemas? Quantas pessoas repararam defeitos?
I Q3: As funções dentro do processo são realizadas por grupos distintos de pessoas, ou seja, algumas as pessoas assumem um único papel? Será que um grande número de pessoas participam igualmente
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 17 Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG
Metodologia
Questões de PesquisaForam propostas as seguintes questões de pesquisa:
I Q4: Em quais partes do código um voluntário pode trabalhar? Existe algum tipo propriedade (lock) definida em nível de arquivo ou módulo?
I Q5: Qual é a densidade de defeitos no código do Apache?
I Q6: Quanto tempo demorou-se para resolver os problemas? Os problemas de maior prioridade form resolvidos mais rápido do que os de baixa
prioridade? O intervalo de resolução diminuiu ao diminuiu ao longo do tempo?
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 18 Resultados Hipóteses Referências
Resultados
Q1: Como funciona o processo utilizado para desenvolver Apache?
I Papéis e Responsabilidades:
I Apache Group (AG): 10/15 pessoas
I Definem a inclusão de qualquer mudança no código I Definem se um voluntário poderá ficar responsável
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 19 Resultados Hipóteses Referências DCC/ICEX/UFMG
Resultados
Q1: Como funciona o processo utilizado para desenvolver Apache?
I Identificando o trabalho a ser feito:
I Mudanças e corrreções são identificadas na mailing list, BUGDB e USENET newsgroups
I Alterações apenas são realizadas com aprovação de algum membro do AG
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 20 Resultados Hipóteses Referências
Resultados
Q1: Como funciona o processo utilizado para desenvolver Apache?
I Atribuindo e realizando o trabalho:
I Desenvolvedores tendem a trabalhar em problemas que são identificados com as áreas do código com o qual eles estão mais familiarizados
I Tal estratégia cria um implícito "code ownership"de partes do servidor que foram desenvolvidas ou mantidas por alguém do AG
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 21 Resultados Hipóteses Referências DCC/ICEX/UFMG
Resultados
Q1: Como funciona o processo utilizado para desenvolver Apache?
I Testes e Inspeções
I Apenas realizar uma manutenção o desenvolvedor realizar testes locais (Testes Unitários
I Posteriormente o código ou é revisado por alguém do AG, ou é disponibilidade para revisão pela comunidade
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 22 Resultados Hipóteses Referências
Resultados
Q2: Quantas pessoas escrevem novas funcionalidades do Apache? Quantas pessoas relatam problemas? Quantas pessoas repararam defeitos?
I 400 pessoas trabalham no desenvolvimento como um todo
I 182 pessoas contribuíram com 695 correções
I 249 pessoas contribuíram com 6092 submissão de código
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 23 Resultados Hipóteses Referências DCC/ICEX/UFMG
Resultados
Q3: As funções dentro do processo são realizadas por grupos distintos de pessoas, ou seja, algumas as pessoas assumem um único papel?
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 24 Resultados Hipóteses Referências
Resultados
Q3: Será que um grande número de pessoas participam igualmente dessas atividades, ou um pequeno número de pessoas que fazem a maioria do trabalho?
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 25 Resultados Hipóteses Referências DCC/ICEX/UFMG
Resultados
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 26 Resultados Hipóteses Referências
Resultados
Q4: Em quais partes do código um voluntário pode trabalhar? Existe algum tipo propriedade (lock) definida em nível de arquivo ou módulo?
I Dos 42 arquibos ".c"com mais de 30 alterações:
I 40 tiveram pelo menos 02 responsáveis por 10% das alterações
I 20 tiveram pelos menos 04 responsáveis por 10% das
alterações
I O "ownership"de código é uma questão de
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 27 Resultados Hipóteses Referências DCC/ICEX/UFMG
Resultados
Q5: Qual é a densidade de defeitos no código do Apache?
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 28 Resultados Hipóteses Referências
Resultados
Q6: Quanto tempo demorou-se para resolver os problemas? Os problemas de maior prioridade form resolvidos mais rápido do que os de baixa prioridade? O intervalo de resolução diminuiu ao diminuiu ao longo do tempo?
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia Resultados 29 Hipóteses Referências DCC/ICEX/UFMG
Hipóteses
I Hipótese 1: A Evolução de um código aberto terá um núcleo de desenvolvedores que controla a base de código. Este núcleo não será maior do que 10-15 pessoas, e irá criar, aproximadamente, 80% ou mais das novas funcionalidades.
I Hipótese 2: Para os projetos que são tão grandes que 10-15 desenvolvedores não pode escrever 80% do código em um prazo razoável, uma política estrita de propriedade do código terá que ser adotada para separar o trabalho dos outros
grupos, criando, com isso, vários projetos de OSS relacionados.
I Hipótese 3: Em projetos de código aberto
bem-sucedidos, um grupo maior, de aproximadamente uma ordem de magnitude do núcleo irá reparar defeitos; um grupo ainda maior (por outra ordem de grandeza) irá relatar problemas.
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia Resultados 30 Hipóteses Referências
Hipóteses
I Hipótese 4: Projetos de código aberto que tem um forte núcleo de desenvolvedores, mas que não consiga alcançar um grande número de
contribuintes para além desse núcleo, será capaz de criar novas funcionalidades, contudo não irá sobreviver tendo em vista a falta de recursos destinados a encontrar e reparar defeitos.
I Hipótese 5: A densidade de defeitos em versões de código aberto será geralmente menor do que código comercial.
I Hipótese 6: Em projetos OSS bem sucedidos os desenvolvedores também serão usuários do
31
Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia Resultados Hipóteses 31 Referências DCC/ICEX/UFMG
Referências
[Bollinger et al., 1999] Bollinger, T., Nelson, R., Self, K. M., and Turnbull, S. J. (1999).
Open-source methods: Peering through the clutter.
IEEE Software, 16(4):8+.
[Herbsleb and Grinter, 1999] Herbsleb, J. D. and Grinter, R. E. (1999).
Splitting the organization and integrating the code: Conway’s law revisited.
In Proceedings of the 21st International Conference on Software Engineering, ICSE ’99, pages 85–95, New York, NY, USA. ACM.
[McConnell, 1999] McConnell, S. (1999).
Open source methodology: Ready for prime time?
IEEE Software, 16(4):6–8.
[NETCRAFT, 2014] NETCRAFT (2014).
Web Server Developer - Market Share of Computers.
URL: http://news.netcraft.com/archives/category/ web-server-survey/ (Acessado em 21/09/2014).
[Raymond, 1999] Raymond, E. S. (1999). The Cathedral and the Bazaar.