• Nenhum resultado encontrado

Propósitos gerais. Evidenciação Empírica de um Processo para Contribuição em Projetos de Software Livre e Código Aberto. Definição de termos

N/A
N/A
Protected

Academic year: 2021

Share "Propósitos gerais. Evidenciação Empírica de um Processo para Contribuição em Projetos de Software Livre e Código Aberto. Definição de termos"

Copied!
10
0
0

Texto

(1)

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros

Evidenciação Empírica de um Processo para

Contribuição em Projetos de Software Livre e

Código Aberto

João Henrique Ferreira de Freitas

1

1

Pós Graduação em Desenvolvimento de Software

Universidade Federal de Lavras

Encontro Técnico UFLA, 2008

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Objetivos Posicionamentos Objetivos práticos

Propósitos gerais

Relatar, através de uma experiência, um processo e

prática para a contribuição e melhoramento em SL/CA;

Responder a pergunta principal do trabalho: Como

colaborar efetivamente?

Três projetos iniciais:

Tikiwiki;

Pfsense;

Bacula;

Apenas um escolhido para as experiências.

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Objetivos Posicionamentos Objetivos práticos

Propósitos pessoais

Aumentar o conhecimento em desenvolvimento de

software;

Colaborar com o desenvolvimento de um produto

internacional;

Implementar e resolver necessidades referentes as

funcionalidades desejadas do software escolhido.

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Objetivos Posicionamentos Objetivos práticos

Definição de termos

Colaboração

submissão de patchs que são definidos como

mudanças, consertos ou melhoramentos

contendo código fonte, documentação e

processos;

Projeto de SL/CA

é uma organização virtual centrada em torno

de um código fonte, com participação espontânea

e variável de pessoas.

(2)

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Objetivos Posicionamentos Objetivos práticos

Ponto de observações

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Objetivos Posicionamentos Objetivos práticos

Objetivos práticos

Contribuir implementando um novo recurso de

interfaceamento com SGBDs para o projeto escolhido;

Referenciado no trabalho como patch libdbi;

Atravez da experiência, vivenciamos e capturamos o

processo utilizado durante o desenvolvimento do patch.

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Objetivos Posicionamentos Objetivos práticos

Projeto de SL/CA escolhido

Projeto Bacula (www.bacula.org) devido aos seguintes fatores:

Tempo de atividade: 10 anos;

Segmento da aplicação: meio corporativo e infraestrutura;

Documentação: completa, nivelada e atualizada;

Comunidade formada: usuário, desenvolvedores,

empresas;

Comprometimento.

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Objetivos Posicionamentos Objetivos práticos

(3)

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Objetivos Posicionamentos Objetivos práticos

Antes do patch libdbi

Somente três SGBDs

suportados (Mysql,

Postgresql, Sqlite);

Modular mas

dependente de

implementação e API de

cada SGBD;

Três códigos distintos

para manter.

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Objetivos Posicionamentos Objetivos práticos

Após o patch libdbi

Vários tipos de SGBDs

podem ser suportados;

Modular sem

dependência de

implementação e API;

Ponto único para

manutenção e

refactoting.

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento Timeline das atividades

Coleta de dados

Buscas no hyperespaço, Internet:

Websites;

Listas de e-mail públicas;

IRC chats;

Artefatos no repositório de controle de versão;

Documentação oficial do projeto.

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento Timeline das atividades

Taxionomia

Classificação dos artefatos levantados em três grupos:

Estrutural, como são desenvolvidos e organizados;

Conteúdo, tipos de artefatos e conteúdos;

Padrões de utilização, interação do usuário,

desenvolvedores, atualização.

(4)

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento Timeline das atividades

Taxionomia, site do projeto

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento Timeline das atividades

Taxionomia, projetos ativos

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento Timeline das atividades

Taxionomia, documentação

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento Timeline das atividades

Taxionomia, bugtrack

(5)

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento Timeline das atividades

Taxionomia, guia de desenvolvimento

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento Timeline das atividades

Taxionomia, testes de regressão

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento Timeline das atividades

Taxionomia, análise dos testes

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento Timeline das atividades

Taxionomia, listas de discussão

(6)

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento Timeline das atividades

Taxionomia, threads da lista

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento Timeline das atividades

Taxionomia, resumo

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento

Timeline das atividades

Desenvolvimento

Utilizado uma

exploração arquitetural

do XP;

Utilizado um modelo de

programação

exploratória;

Testes de regressão

para validações,

Testar;

Documentar;

Feedback;

Explorar;

Analisar.

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento

Timeline das atividades

Dia a dia de trabalho

(7)

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento

Timeline das atividades

Dia a dia de trabalho

Testes

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento

Timeline das atividades

Dia a dia de trabalho

Análise

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento

Timeline das atividades

Dia a dia de trabalho

Discussões

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento

Timeline das atividades

Dia a dia de trabalho

(8)

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros Classificação Ciclo de desenvolvimento

Timeline das atividades

Timeline

Timeline do desenvolvimento

Página 1

Data Submissões Data Integração Exploração Arquitetural 2007­12­072008­01­11 Desenvolvimento 2008­01­18 2008­02­01 2008­02­02 6358 2008­02­12 2008­02­13 6413 2008­02­19 2008­02­22 6464 2008­02­21 2008­02­27 6498 2008­02­25 2008­04­15 6825 2008­03­17 2008­04­15 6826 2008­04­09 2008­04­09 6817 2008­04­14 2008­04­15 6818 2008­04­27 2008­04­27 6874 2008­05­02 Orçadas Trabalhadas Exploração Arquitetural: 64h 59.89h Desenvolvimento: 168h 118h Revision

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros

Aprendizado: Técnico

Aprofundamento em C/C++;

Atenção a refactoring;

Leitura de código fonte aprimorado;

Entendimento do domínio do problema;

Conhecimento em ferramentas de suporte (autoconf,

automake, libtool, Makefiles).

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros

Aprendizado: Engenharia de Software

Na prática:

Testes de regressão;

Construir para verificação;

Aderência a padrões;

Modularidade;

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros

Aprendizado: Pessoal

Escrita e leitura em inglês;

Exposição de idéias em inglês;

(9)

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros

Processo geral de contribuição

1

Alguém reporta um bug ou solicita uma nova

funcionalidade;

2

O item se torna prioridade, muitos usuários comentam,

endoçam;

3

Há uma discussão sobre o item mais aprofundada;

4

Alguém posta um patch, levantando uma incerteza sobre o

mesmo;

5

Desenvolvedores testam e comentam o patch, caso ele

resolva o problema;

6

O patch é revisto e formalmente testado;

7

Quando o patch é considerado aceito, ele é integrado e

liberado na próxima versão.

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros

Conclusões do Trabalho

Cada projeto de SL/CA estabelece seus próprios meios.

Mas existem similaridades entre eles:

Discussões em listas de email públicas;

Gerenciamento do código fonte e configuração;

Desenvolvimento próximo do usuário final.

Os portais dos projetos apresentam muito sobre suas

características e formas de organização;

Existe um caminho pré suposto no qual o usuário

necessita seguir para colaborar efetivamente.

João Henrique Ferreira de Freitas Evidenciação de processo para contribuição em SL/CA

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros

Conclusões Pessoais

As contribuições são aceitas em projetos de SL/CA. Mas é

necessário bom senso, diálogo intenso, carisma,

entendimento do problema e pró-atividade;

Trabalhe sempre para não quebrar o código já funcional e

com certeza a sua contribuição será aceita.

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros

Dentro das comunidades de SL/CA

Suporte e manutenção do patch libdbi para o projeto

Bacula;

Contribuições no framework libdbi: casos de testes, novos

drivers, profiling e benchmarks;

Continuar pesquisas relacionado a busca de padrões em

projetos de SL/CA.

(10)

Introdução Exposição da Experiência Aprendizados Conclusão Trabalhos Futuros

Contato

João Henrique Ferreira de Freitas

joaohf@gmail.com

http://joaohff.pbwiki.com

http://joaohf.livejournal.com

Referências

Documentos relacionados

Este estudo, assim, aproveitou uma estrutura útil (categorização) para organizar dados o que facilitou a sistematização das conclusões. Em se tratando do alinhamento dos

Somente na classe Aberta Jr e Sr, nas modalidades de Apartação, Rédeas e Working Cow Horse, que será na mesma passada dessas categorias e os resultados serão separados. O

a) AHP Priority Calculator: disponível de forma gratuita na web no endereço https://bpmsg.com/ahp/ahp-calc.php. Será utilizado para os cálculos do método AHP

Para atingir este fim, foram adotados diversos métodos: busca bibliográfica sobre os conceitos envolvidos na relação do desenvolvimento de software com

Quando os dados são analisados categorizando as respostas por tempo de trabalho no SERPRO, é possível observar que os respondentes com menor tempo de trabalho concordam menos que

ITIL, biblioteca de infraestrutura de tecnologia da informação, é um framework que surgiu na década de mil novecentos e oitenta pela necessidade do governo

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a