O documento discute um modelo de desenvolvimento de software livre colaborativo para prefeituras, no qual a OpenGEO gerenciaria o projeto e repositório enquanto prefeituras, empresas e desenvolvedores individuais poderiam contribuir de várias formas, como financiamento, documentação, testes e novas funcionalidades.
2. Projetos em Software Livre
• Software de graça = Bagunça sem garantia !
• Proprietário X Livre
3. Modelo Desenvolvimento Proprietário
Motivação Proprietária: Retorno Financeiro
Análise de Mercado
Time de desenvolvimento inicia o desenvolvimento do software
Versão BETA é enviada para o BETA tester
Relatório de erros enviado para correção
Erros corrigidos reportados para o Gerente de Produto
PRODUTO LANÇADO
4. Modelo Desenvolvimento Proprietário
NOVAS FUNCIONALIDADES
A FUNCIONALIDADE
PROBLEMAS DE NEGOCIO
PRECISA MELHORAR
INTERESSES POLITICOS E COMERCIAIS
PRODUTO
6. Modelo Desenvolvimento SL
Motivação OpenSource: Resolver o problema !
Identificar o problema e analisar
Time de desenvolvimento resolve o problema
Publicação do Código
Solução
7. Modelo Desenvolvimento SL
Internet: Meio de comunicação e media de distribuição
Colaboradores:
1- Resolvem Problemas
2- Adicionam Funcionalidade
3- Realizam Melhorias
Inclusão do Novo
Código a Solução
Solução
Solução
Nova versão da solução
8. Ecossistema
• Ecossistema do software livre
– Colaboração e coletivismo
– Espontaneidade e voluntariedade
– Transparência e domínio da expertise
– Redução da burocracia de desenvolvimento
– Processos auto-gerênciados
– Convergência de interesses
9. Prefeitura Livre: Motivação
• Consultoria em prefeituras
• Relatórios comuns e problemas iguais !
• Similaridade das soluções
• Utilização de tecnologias 100% S.L
• Porque não seguir o ecosistema ?
10. Problemática do Modelo PL
• Desenvolvedor X Beneficio
• Stakeholders = Prefeitura = Patrocinadores
• Gerência de Interesses
– Empresas associadas
– Prefeituras
– Desenvolvedores Autônomos
• Vamos assumir um compromisso !
11. Processo de colaboração PL
• OpenGEO como mantenedora do projeto para a
garantia de qualidade e sobrevivência do
projeto
• Prefeituras podem colaborar
• Empresas podem se associar e colaborar
• Desenvolvedores e entusiastas também
FORÇAS COLABORAÇÃO OpenGEO e Colaboradores
FORÇAS COLABORAÇÃO Prefeitura Livre
FORÇAS COLABORAÇÃO
12. Gerenciamento do Projeto
• Hospedagem e manutenção do repositório
central do projeto, listas de discussões, wiki e
outros recursos necessários ao projeto;
• Gestão do processo de colaboração;
• Garantia de qualidade e estabilidade;
• Lançamento de novas versões (releases);
• Apoio em eventos e reuniões;
• Organização sistêmica dos interesses e
objetivos a serem alcançados;
• Apoio técnico ao projeto;
13. Gestão do Repositório
• Servidores Subversion (24 X 7);
• Gerência subdividido em módulos e sub-
módulos;
• Cada módulo possui o seu controle de versão;
• Áreas individuais (sandbox) para cada
colaborador utilizar;
• Isolamento do tronco principal do repositório;
• Execução de testes e controle de qualidade
antes de aprovar novos códigos das versões
de desenvolvimento;
15. Ferramenta Gestão de Projeto: TRAC
http://trac.edgewall.org/
• TRAC – Integrated SCM & Project Manager
• Controla todo o fluxo de trabalho do projeto
• Ferramenta web e colaborativa
• Geração de relatórios e estatísticas do projeto
• Formulário para submissão de bugs
encontrados
• Formulário para solicitações de melhorias e
novas funcionalidades
• Disponível para toda comunidade
acompanhar e colaborar
17. Fluxo de trabalho de um BUG
Desenvolvedores Principais
Desenvolvedores Secundários ABERTO
Não revisado
ENCERRADO
Inválido Funcionando
Necessita decisão
design
Corrigido Não Corrigido
Iniciando Correção
Avaliação de
impacto na
arquitetura
Iniciando
Teste
18. Controle de Qualidade
• TDD (Desenvolvimento Orientado a Teste)
• Execução automatizada de testes unitários e
integrados( phpUnit e Selenium)
• Mecanismo de integração continua (php
UnderControl)
• Ferramenta para verificação de padronização
de código (code sniffer)
• Teste de carga, stress e aceitação (Jmeter)
22. Como posso colaborar ?
• Patrocínio de novos módulos
• Documentação
– Manual
– Traduções
– Wiki
– Instalação
• Teste de versões beta
• Correções de erro
• Criação de novas funcionalidades
23. Como posso colaborar ?
• Solicitar uma melhoria
• Solicitar novas funcionalidades
• Fornecer requisitos de negócio
• Participar de discussões nos principais canais
de comunicação (listas, fóruns, irc, chat)
• Organização de eventos e palestras
• Transformar perguntas freqüentes dos fóruns
em tópicos da FAQ
• ???
24. Perfil dos colaboradores
(committer profile)
• Full Committer: Desenvolvedores, prefeituras,
e empresas associadas aprovadas pelo
comitê avaliador do Prefeitura Livre tendo o
seu processo de desenvolvimento
homologado pela OpenGEO;
• Module Committer: Permissão em alguns
módulos;
• Documentation Committer: Permissão para
efetuar alterações sobre a documentação;
• Sandbox Committer: Permissão restrita a sua
área individual;
25. Projeto Prefeitura Livre
“Se você tem uma maçã e eu tenho uma maçã,
e nós trocamos as maçãs,
então você e eu ainda teremos uma maçã.
Mas se você tem uma idéia e eu tenho uma ideia,
e nós trocamos essas ideias, então cada um de nós
terá duas ideias
(George Bernard Shaw)”