segunda-feira, 18 de fevereiro de 2008

E esse tal de Software Livre?

Software Livre, na definição do Wikipedia, é qualquer programa de computador que pode ser usado, copiado, estudado, modificado e redistribuído sem nenhuma restrição. A maioria dos softwares livres é distribuída através de uma licença, como a mais conhecida GNU GPL.

Algumas das características marcantes do desenvolvimento do SL envolvem: Desenvolvimento descentralizado via internet - apoiado por ferramentas de comunicação e colaboração; Interesse pessoal do autor - por também ser usuário do software tem, portanto, motivação pessoal na sua criação e manutenção, apoiando seus usuários e fazendo esse grupo crescer; Usuários participantes - é comum que os usuários finais se comuniquem com alguma regularidade, entre si e com os desenvolvedores, comunicando problemas e trocando experiências; Liberdade de escolha - os desenvolvedores podem escolher o trabalho que desejam realizar.

Agora pense na sua empresa. Não seria bom trabalhar em projetos com essas características? Mas no mundo real nem sempre é possível. Você às vezes é obrigado a trabalhar usando tecnologia ultrapassada, num sistema que não gosta, com ferramentas inadequadas, em atividades que não escolheu e com prazos que não assumiu. E, pior ainda, aturando um chefe "mala" ultrapassado tecnicamente e sem a menor habilidade gerencial. Vai falar pra ele que quer desenvolver colaborativamente, usando termos bonitos como Open Source, Meritocracia e Wiki. No mínimo você vai ouvir: "Ô meu filho, deixa de gracinha e vai trabalhar, vai!".

Segundo Raymond, "um coordenador ou líder de um projeto no estilo Bazar deve ter boa habilidade de comunicação e relacionamento. Isto deve parecer óbvio. Para construir uma comunidade de desenvolvimento, você precisa atrair pessoas, fazer com que se interessem no que você está fazendo, e mantê-las alegres sobre a quantidade de trabalho que estão fazendo. O entusiasmo técnico constitui uma boa parte para atingir isto, mas está longe de ser toda história. A personalidade que você projeta também importa. Não é uma coincidência que Linus é um rapaz gentil que faz com que as pessoas gostem dele e que o ajudem. Não é uma coincidência que eu seja um enérgico extrovertido que gosta de trabalhar com pessoas e tenha um pouco de porte e instinto de um cômico. Para fazer o modelo Bazar funcionar, isto ajuda enormemente se você tem pelo menos um pouco de habilidade para encantar as pessoas". E ele diz ainda: "Eu penso que não é crítico que o coordenador seja capaz de originar projetos de excepcional brilho, mas é absolutamente crítico que o coordenador seja capaz de reconhecer boas idéias de projetos de outras pessoas."

Portanto, se você é diretor ou gerente de uma empresa, minhas sugestões são: Participe de alguma comunidade ou projeto de código aberto, pois você vai começar a entender a dinâmica da coisa; Escolha melhor seus líderes e discuta com eles as formas de trabalhar colaborativamente; Estimule a colaboração nas pequenas coisas, seja parar o que está fazendo para auxiliar um colega, registrar num Wiki ou blog interno a solução para um problema que você enfrentou ou desenvolver um código/componentes sempre pensando em reutilização; Estude continuamente, pois as coisas mudam rápido.

Finalizo com uma dica de leitura: Producing Open Source Software - How to Run a Successful Free Sofware Project, de Karl Fogel. É um livro sobre o lado humano do desenvolvimento Open Source, que descreve como projetos bem sucedidos operam, a expectativa dos usuários e desenvolvedores e a cultura do software livre. O livro é distribuído usando o Open Copyright e você pode baixar o PDF.

Até a próxima!

quarta-feira, 6 de fevereiro de 2008

Onde está o gargalo?

Por mais que nos últimos anos tenha crescido significativamente não só o uso, mas também as discussões em torno do software livre, o fato é que muitas empresas continuam desenvolvendo software de maneira tradicional (Catedral). Organizadas (nem sempre :-D) de forma hierárquica, ainda existe o chefe que dá as diretrizes. A interação entre os times precisa passar por um caminho formal entre seus líderes, às vezes necessitando subir e descer alguns níveis na hierarquia, o que geralmente burocratiza o processo e diminui a eficiência da comunicação.

A departamentalizacao das empresas tende a criar especializações em diversas categorias. Sobretudo nas maiores, com tantas unidades funcionais, regiões, lideres e culturas envolvidas, certamente há muito trabalho duplicado. Para diminuir retrabalho muito se encontra na literatura. Qualquer que seja o nome - Gestão do Conhecimento, Base de Componentes, Ativos Organizacionais, Lições Aprendidas, Desenvolvimento Colaborativo – o principal objetivo comum é aprender com as experiências do passado, independente se foram vividas por si ou por outros.

Retomando o tema central desse blog - como desenvolver colaborativamente dentro das empresas, fica a pergunta no ar: Por onde eu começo? Na área de TIC, onde estou inserido, existe um impulso quase incontrolável de buscarmos solução nas ferramentas. Isso pode ser um grave erro! Mesmo se as melhores ferramentas estiverem disponíveis, ainda assim a colaboração interna pode não estar ocorrendo. E por que?

Para tentar responder essa pergunta vou recorrer ao autor do livro A Meta, Eliyahu Goldratt, que explica a Teoria das Restrições de uma maneira muito didática e fácil de entender: "a capacidade da fábrica é igual à capacidade de seus gargalos. O que quer dizer que os gargalos produzam em uma hora, é o equivalente ao que a fábrica produz em uma hora. Por isso... uma hora perdida em um gargalo é uma hora perdida no sistema inteiro.". Precisamos, então, encontrar nosso gargalo (qual o principal motivo para a falta de colaboração na minha empresa?), para que possamos definir e executar um plano para explorá-lo, até que ele não seja mais um gargalo (mas aí surgirá outro, então tudo se repete!).

Na minha opinião, na maioria dos casos o gargalo está na Gestão, na mais ampla concepção do termo: Passa pela estrutura organizacional, capacitação gerencial, estilos de liderança, sistemáticas de avaliação funcional, dentre tantas outras coisas.

Se nosso gargalo é a gestão, o primeiro passo para a colaboração Bazedral é os gestores compreenderem a dinâmica encontrada nas comunidades de software livre. É sobre isso que tentaremos tratar nos próximos posts.