domingo, 28 de setembro de 2008

Ambiente de Desenvolvimento Colaborativo

Se você quiser criar um projeto de código aberto, ou então resolver se juntar a um já existente, não vai ter dificuldade alguma de achar sites que lhe forneçam uma estrutura completa para isso. SourceForge, Gna!, FreshMeat, Google Code, Java.net e tantos outros colocam à disposição gratuitamente uma área para compartilhar arquivos, código, notícias, permitindo que as comunidades sejam auto-geridas. É possível criar listas de e-mail, fóruns e Wikis, atribuindo permissões adequadas ao papel de cada um. Por essas e outras, hoje em dia é muito mais fácil descobrir que um funcionário seu faz parte de alguma comunidade externa de software livre do que fazê-lo colaborar espontâneamente com algum projeto interno da organização.

Essa realidade há alguns anos me faz pensar: E se eu quiser disponibilizar dentro da minha empresa uma estrutura similar à existente no mundo do SL? Um espaço virtual onde as pessoas possam livremente (sem hierarquias nem burocracias) iniciar seus projetos e angariar adeptos em torno deles? Uma “incubadora” de idéias que crie um clima favorável à criatividade e inovação? Um local onde importa menos quem você diz que é (sua unidade, seu cargo, seu salário) e mais quem você mostra ser (ganha-se respeito pelo que se produz, pelo tamanho das suas contribuições)?

Sim, é possível! Existem ferramentas livres (Gforge, Savane, SiteForge, ProjectPier, Trac, LibreSource, por exemplo) e proprietárias (Collab.net, JIRA, ...) para tanto. No post de junho falei de um “Ócio Criativo” e de um “Mural Interno de Idéias”. Pois bem, é isso que chamamos aqui de Ambiente de Desenvolvimento Colaborativo (ADC). No paper Collaborative Developments Environments, Grady Booch e Alan Brown classificam as funcionalidades necessárias para um ADC no desenvolvimento de software em 3 Cs: coordenação (ex: controle de versão ou acompanhamento de tarefas), comunicação (fóruns ou navegação compartilhada de documentos) e construção de comunidades (auto-gestão de projetos, estabelecimento de protocolos).

Funcionalidades principais de um ADC

Em resumo, um ADC disponibiliza um local para organizar idéias e transformá-las em ações concretas. Comunidades internas surgirão. Projetos bem sucedidos prosperarão. Aumenta-se o compartilhamento, diminui-se retrabalho, incrementa-se a motivação. Mas a questão é longe de ser puramente técnica e ferramental...

Um ADC é antes de tudo uma transformação cultural. É uma das formas de tornar possível tudo o que vimos discutimos neste blog. Implica em mudança de postura de líderes (principalmente) e liderados. É fortalecer o coletivo em detrimento do individual, direcionando a empresa para o que Raymon previu há quase 10 anos: “Eu acredito que o futuro do software de código aberto irá pertencer gradativamente a pessoas que saibam como jogar o jogo do Linus, pessoas que deixam para trás a Catedral e abraçam o Bazar. Isto não quer dizer que uma visão individual e brilhante não irá mais ter importância; ao contrário, eu acredito que o estado da arte do software de código aberto irá pertencer a pessoas que iniciem de uma visão individual e brilhante, então amplificando-a através da construção efetiva de uma comunidade voluntária de interesse.”

Gosto muito de um trecho de uma palestra de Simon Phipps (Chefe do Departamento Open Source da Sun Microsystems), que tive o privilégio de assistir ao-vivo: “Ao se deparar com algo que realmente te incomoda, transforme qualquer energia negativa em paixão, e contribua para resolver o problema, ao invés de ficar apenas reclamando.”. É essa a essência de colaboração que estamos falando. Gestores “antenados”, processos revisados, pessoas motivadas e ferramentas adequadas poderão juntos criar as condições para que cada um coopere efetivamente para transformar as organizações.

Nenhum comentário: