O ambiente de desenvolvimento

O desenvolvimento da solução seguiu os moldes de desenvolvimento comuns em projetos de softwares livres. O primeiro passo foi considerar a DFSG como parâmetro para o que vem a ser considerado software livre pela equipe envolvida. O passo seguinte foi criação um ambiente que permitiu o desenvolvimento transparente e colaborativo de tudo que foi produzido no projeto, seguindo os princípios de Eric Raymond.



Softwares utilizados

A base deste ambiente pode ser resumida pela utilização dos seguintes softwares:

Subversion

Subversion é um software para controle de versão. Um software para controle de versão basicamente gerencia as modificações de uma série de arquivos frequentemente atualizados por diferentes pessoas, num mesmo momento ou não. Existem atualmente diversos softwares para controle de versão, muitos deles oferecem também características de SCM (Software Configuration Management). Contudo, a escolha pelo Subversion foi determinada a partir das seguintes funcionalidades:

  • Semelhança com o CVS
  • Versionamento de arquivos, diretórios e metadados
  • Commits verdadeiramente atômicos
  • Integração com serviços do Apache
  • Versionamento de links simbólicos
  • Utilização de um algoritmo de diffs binários

Utilizamos o Subversion aproveitando os recursos do Apache2 que já estava instalado no PID para outros propósitos. Através de um módulo, o servidor Web possibilita que os repositórios estejam disponíveis para os clientes via protocolo WebDAV/DeltaV. Com os clientes Subversion compilados para suportarem OpenSSL, podemos utilizar o HTTPS, ganhando assim mais uma camada de segurança via troca de certificados e sessões encriptadas.

O Subversion provê também um controle de autorização por diretórios específicos num repositório, o que nos ofereceu a possibilidade de permitir que usuários externos realizassem modificações em determinados diretórios/repositórios que não pudessem comprometer em algum momento o ambiente em produção. Esta é uma funcionalidade muito útil em projetos que partem de uma organização e são abertos à comunidade. O Programa Identidade Digital foi beneficiado por disponibilizar livremente na Web o conteúdo desenvolvido. Algumas pessoas ligadas a outros projetos encontraram e corrigiram falhas na documentação do projeto, além de darem sugestões preciosas durante o desenvolvimento.

TRAC - Integrated SCM and Project Management

O Trac é um SCM e gerenciador de projetos que agrega uma Wiki, um sistema de tickets e integra-se com um repositório Subversion. Dessa maneira ele provê uma interface que faz as ligações entre tickets, Wiki e modificações de código no repositório, oferecendo assim um ambiente bastante eficiente e amigável para o controle das atividades dentro de um projeto de desenvolvimento de software.

Request Tracker

O Request Tracker é um sistema de controle de tickets escrito em Perl, que oferece uma interface Web para o gerenciamente de tarefas a partir de usuários, grupos, prioridades, notificações e outros recursos que o tornou suficiente para lidar com as primeiras demandas técnicas do PID.

Metodologia de desenvolvimento

A primeira versão do Berimbau Infocentros e todos os outros softwares desenvolvidos pelo Programa Identidade Digital foram controlados pelo Subversion e pelo Trac. A criação da primeira versão de um software ou da própria solução global seguiu os passos:

  1. Criação de um novo milestone com prazo definido no Trac, indicando a versão que seria lançada;
  2. Abertura de todos os tickets [*] para este milestone;
  3. Codificação utilizando o Subversion, realizando um commit para cada ticket fechado;
  4. Ao fechar 100% dos tickets, anuncia-se o lançamento do software e o coloca em produção, fechando o milestone no Trac e relatando na Wiki as principais características oferecidas pela versão lançada;

Para uma atualização, o modelo é semelhante. A diferença é que se for uma atualização necessária para corrigir uma falha detectada nos Infocentros, a equipe de suporte primeiro abre um ticket no Request Tracker, atribuindo este ticket a uma fila e delegando-o ao desenvolvedor responsável. [**]

O desenvolvedor então verifica se é uma falha que só pode ser resolvida com uma atualização do sistema. Se for este o caso, é aberto um ticket para o milestone mais próximo de ser fechado no Trac. O ticketfica aberto no Request Trackeraté que o milestone referente à falha seja fechado e uma nova atualização seja disponibilizada.

A figura 4.1.1 mostra a interface do Request Tracker, exibindo algumas filas cadastradas no sistema. A figura 4.1.2 mostra um milestone fechado no Trac, onde são listadas as características de uma nova versão de software anunciado pelo PID.

Figura 4.1.1: Listagem de soliciações no Request Tracker
img6.png

Figua 4.1.2: Milestones fechadas com atualizações registradas no Trac
img7.png

Todos os softwares desenvolvidos pelo Programa Identidade Digitalsão antes testados num Infocentro de testes localizado na sede do projeto. Este Infocentro possui exatamente as mesmas especificações de hardware e da solução dos Infocentros localizados nas cidades baianas.


[*] Um ticket pode ser um bug (erro) ou apenas uma caracterítica que o software deve oferecer

[**] Uma fila no Request Tracker referencia um Infocentro. Por exemplo, uma falha detectada no Berimbau Infocentros do Infocentro Steve Biko era aberto na fila Infocentro Steve Biko e atribuído ao desenvolvedor de username tiagovaz

Topic revision: r2 - 25 May 2006 - 01:52:17 - AntonioTerceiro
 
Copyleft © 2005, pel@s colaborador@s deste Sítio Wiki. Todo o conteúdo desta página pode ser utilizado segundo os termos da Creative Commons License: Atribuição-UsoNãoComercial-PermanênciaDaLicença. Salvo disposição em contrário indicada de forma explícita no tópico correspondente.