Na medida que os projetos de SL evoluem, é natural que sejam encontrados problemas (bugs) que necessitam ser priorizados e resolvidos de acordo com seu grau de severidade. Todas as comunidades observadas utilizam algum método de gerência de evolução. Esta gerência ocorre da seguinte forma: qualquer usuário ou desenvolvedor, ao detectar algum problema, faz o registro do mesmo em ambiente disponibilizado pelo projeto, já atribuindo a sua percepção de severidade do problema (alta/média/baixa). Em seguida, o grupo ou desenvolvedor, responsável pela parte do projeto onde o problema foi detectado, captura diretamente este registro ou recebe sua notificação através de algum intermediário, prioriza e agenda sua solução.
Algumas comunidades utilizam o próprio sistema de registro de problemas também para o registro de solicitações de novas funcionalidades e sugestões de melhorias. Observam-se, porém, estilos diferentes na forma de tratamento destas solicitações.
No PostgreSQL, por exemplo, há uma matriz de funcionalidades a ser implementada a cada versão e um processo de submissão de melhorias que devem ser avaliadas por desenvolvedores mais experientes e aprovadas pela equipe nuclear. Já no Drupal as ideias para as novas funcionalidades podem surgir a partir dos fóruns e solicitações formais (feature requests - enviadas a partir do mesmo sistema de submissão de erros), mas as mesmas só farão parte de uma próxima versão do sistema se isto for da vontade do líder do projeto.
A Tabela 3 resume as ferramentas utilizadas pelos projetos em sua gerência de evolução e manutenção.
Projeto |
Ferramenta |
Kernel Linux |
Bugzilla Listas de discussões |
Apache |
Bugzilla Listas de discussões |
Python |
RoundUp Listas de discussões |
PostgreSQL |
Formulário próprio Lista de discussões Lista de tarefas (wiki) |
Ruby on Rails |
LightHouse Listas de discussões |
Drupal |
Drupal (módulo Project) |
OpenOffice |
IssueTracker (baseado no Bugzilla) Listas de discussões |
Tabela 3 – Ferramentas de Gerência de Evolução e Manutenção