Metas para uma comunidade de desenvolvimento colaborativo
Amigos, em meu último post apresentei alguns conceitos sobre comunidades colaborativas para desenvolvimento de software. Neste post , gostaria de dar continuidade ao tema, abordando as metas de nossa comunidade e questões relativas à organização de uma comunidade colaborativa.
Proponho que a principal meta de nossa comunidade seja:
“Criar componentes de interface Web 2.0 e sua infra-estrutura, a partir de requisitos desenvolvidos colaborativamente com o mercado, com foco na usabilidade”.
Dúvida: como administrar algo tão complexo como uma comunidade de desenvolvimento colaborativo? Existem vários modelos para a administração de comunidades:
- Throw code over the all? - Disponibilizar o código para a comunidade, mas para evoluir e manter esse código; só funciona se ele for revolucionário e muitas pessoas estiverem interessadas.
- Desenvolver internamente, postar externamente? - Pessoas olham, usam, passam, porém não se percebe o efeito comunidade.
- Open monarchy? - Aqueles que desenvolverão os requisitos são empregados da empresa, com algum apoio externo. Alguém da empresa concentra as decisões e os demais são desenvolvedores. A empresa controla tudo e atrai voluntários da comunidade.
- Desenvolvimento baseado em consenso? -Discussões, códigos e decisões são públicos. O desenvolvimento e o crescimento da comunidade é rápido, porém caótico e mais difícil de controlar. O código oferecido ao mercado é aberto, pode ser usado por quem desejar e a responsabilidade de quem disponibiliza é restrita. A evolução se dá por meio de consenso com a comunidade.
Apesar de entendermos as dificuldades, me parece que o “Desenvolvimento Baseado em Consenso” é a melhor opção (indico assistir este vídeo, em inglês, aprox. 50 min.). Algo para discutirmos juntos.
A próxima questão que se coloca é: quais são os papéis dentro da comunidade? Para cada projeto, nossa equipe sugeriu os seguintes papéis:
- Moderador: Sempre deverá haver um, que auxilia na tomada de decisões e interfere na solução de conflitos. Cabe a ele o “voto de Minerva”. O moderador é escolhido por votação e é o único que tem o poder de banir membros da comunidade
- Commiters: São as pessoas que definem os requisitos que nortearão o processo de desenvolvimento. São os elementos chaves da comunidade. O commiter é alguém que de alguma maneira já se envolveu com o desenvolvimento daquela peça de código. Não há limite para o número de commiters por projeto. Escolhidos pela comunidade por votação. O commiter tem alto compromisso com a qualidade e assegura que tudo foi testado e devidamente documentado.
- Colaboradores: Aberto a quem quiser participar. Participam do projeto, corrigindo bugs e submetendo patchs, para os commiters decidirem se entra no código ou não. Normalmente iniciam documentando ou testando o código.
- Usuários: Desenvolvedores que acompanham o projeto e baixam códigos fonte ou versões compiladas. Usam os produtos e sugerem requisitos.
Falando um pouquinho sobre o processo de colaboração, gostaria de propor uma divisão de cada projeto em 4 fases distintas:
- Lançamento de um componente para desenvolvimento público através de uma incubadora virtual
- Eleição dos membros da comunidade
- Definição dos requisitos (trabalho dos commiters)
- Desenvolvimento colaborativo
- Promoção dos projetos de incubados para disponíveis para a comunidade
Eis a idéia para aprofundarmos. Com base nos feedbacks, num próximo post entrarei em detalhes sobre a estrutura e o modus operandi da comunidade. Nesse post abordarei também questões como orçamento, plataforma de colaboração, infra-estrutura e quais componentes de software a Datasul pretende liberar num primeiro momento .
Sugestões sobre esses temas todos são muito bem vindas.
Referência:
Producing Open Source Software: How to Run a Successful Free Software Project; Karl Fogel – disponível on-line em FreeTechBooks.


Excelente iniciativa da Datasul, isso coloca ela no patamar de empresas como IBM e Sun que apoiam e fomentam comunidades open source.
Tenho também uma sugestão sobre a nomenclatura dos papeis. O papel que está sendo chamado de Moderador, é comum encontrarmos em comunidades sendo chamado de Lider (ou Leader se tratarmos os nomes em inglês)
Oi, Rodrigo!
São inquestionáveis os benefícios de comunidades open source e elogiáveis as iniciativas de fomento que Sun e IBM já adotaram.
Quanto ao nome “moderador” que adotei, ele foi indicado porque me parece mais adequado à postura colaborativa e horizontal da comunidade. A palavra líder, para este caso, soa um pouco impositiva. Vamos continuar discutindo e validando os papéis e regras da comunidade.
Jorge, muito bom este blog, obrigado para compartir tão abertamente as suas ideas.
Em relação a iniciativa de comunidade de desenvolvimento colaborativo, concordo com o modelo sugerido de desenvolvimento baseado em consenso. Inclusive, estou curioso de saber aonde Linux e Firefox se encaixam. Foram desenvolvidos num modelo de open monarchy ou de desenvolvimento baseado em consenso?
Estou preocupado em relação a’ sustentabilidade da comunidade. Pelo pouco que eu entendo, uma comunidade desse tipo se sustenta por razoes éticas ou estéticas ou pelas duas ao mesmo tempo. Quero dizer que um desenvolvedor decide de oferecer o seu tempo a uma comunidade porque esta comunidade esta’ desenvolvendo ou algo “justo” (por exemplo oferecer uma alternativa a Internet Explorer da Microsoft, foi o caso do Firefox) ou algo fortemente inovador, então “bonito”. A minha pregunta e’: o que esta comunidade poderia fazer para que a comunidade em sim vire suficientemente “justa” e/ou “bonita” e seguidores e sucesso sejam alcançados?
Francesco,
Agradeço a sua participação e colocações que agregam valor a nossa conversa. Respondendo às questões levantadas: a comunidade Linux foi a grande inspiradora do livro e da palestra (que pode ser encontrada no youtube) do Karl Fogel.
A comunidade do Mozilla por sua vez também adota um modelo baseado em consenso – nestas comunidades o empenho das pessoas advém de um processo claro e aberto onde todos podem contribuir e que acima de tudo a meritocracia gera o crescimento das pessoas.
Acredito que a Web 2.0 e sua interação mais social e mais rica venha em breve se tornar uma realidade nas organizações, pois os usuários de aplicações estão cada vez mais exigentes e requerem ferramentas extremamente adaptáveis e customizáveis. Nossa comunidade deve atrair os desenvolvedores de ponta que são apaixonados por fornecer ferramentas simples e diretas para o dia-a-dia, ou seja, o norte para a nossa comunidade deve fornecer o belo e o justo – pois nossas interfaces/componentes devem apaixonar o usuário e gerar a produtividade que as empresas esperam. Continue participando e fomentando idéias, pois através delas poderemos chegar a um modelo que realmente atraia a atenção das pessoas certas.
Só passei aqui para dizer que fico feliz em ver que grandes empresas de tecnologia estão começando a entender e levar a sério as possibilidades e vantagens do desenvolvimento aberto, colaborativo e em rede de tecnologias, conhecimento e cultura.
Olá, Lucas! Fico grato pela participação de pessoas ligadas ao desenvolvimento colaborativo, como você. Volte sempre aqui no Jukebox!
Excelente iniciativa, acredito que só esta integração poderá fazer nossa TI crescer.
[...] resta a questão relativa aos papéis dentro da comunidade (detalhados no post “Metas para um Desenvolvimento Colaborativo”). A questão é complexa e de difícil abordagem através de um post web. Esse é um aspecto que [...]