quarta-feira, 28 de setembro de 2011

Sobre desenvolvimento de software livre, o caso LibreOffice

Hoje caí numa página com uma entrevista do Linus Torvalds sobre gerência de projetos em software livre. Fiquei muito satisfeito por ver que minha experiência com a industria de software e do software livre em particular está em fase com a dele.

Cito aqui os trechos mais relevantes. Diz o Linus: 
"A primeira coisa é pensar que basta jogar na rede suas coisas e pedir ajuda das pessoas". No software livre, ele afirma: "Não é assim que funciona. Você pode publicar, mas assuma que será você a fazer todo o trabalho, para depois pedir sugestões sobre o que fazer, e não o que as pessoas devem fazer. Talvez elas até ajudem, mas você deve iniciar com a premissa que será você o mantenedor, e quem fará praticamente todo o trabalho". Torvald continua: "Se você começar muito animado pensando que pessoas de todo o mundo se juntarão para fazer um mundo melhor trabalhando em seu projeto, com certeza você não irá muito longe".
Tenho quase 10 anos de vivência no software livre, e iniciei com o OpenOffice.org, na área que eu podia contribuir relacionada a localização do software para o português do Brasil. Hoje eu sei que se algo está para ser feito em software livre, melhor saber fazê-lo por conta própria do que depender da boa vontade das pessoas. Não se trata de desmerecer o colega ou o voluntário. Trata-se de ter a noção real de que software demanda muita energia e entender que é natural que as pessoas tenham suas prioridades, quando estão colaborando. Se fossem contratadas, seria outra história.

Nesse ponto seu projeto tem de acomodar os riscos de não poder contar com a mão de obra que inicialmente se ofereceu para ajudar. Trabalhar com prazos em software livre, com voluntários e sem uma gerência de projeto e de recursos que acomode a deficiência de produtividade de voluntários, é arriscado demais.

Seu projeto de software livre precisa de controlabilidade.

A segunda afirmação de Linus Torvalds refere-se aos usuários e aos desenvolvedores:
 " A outra coisa - algo relacionado - que as pessoas parecem não entender, é pensar que somente o código delas importa", diz Linus. "Não. Mesmo que você escreva 100% do código, e mesmo que você seja o melhor programador do mundo e não precisar da ajuda de mais ninguém. a coisa que realmente importa são os usuários de seu código. O código em si não importa; o projeto só é útil se as pessoas assim o acharem".
Minhas palavras para essa observação são as seguintes: O que determina o sucesso de um software livre ou fechado é sua base instalada. E sua base instalada é uma consequência do fato que seu software agradou aos usuário e agregou valor na ponta.

Interessante como esse conceito se aplica ao LibreOffice. A base instalada do LibreOffice é muito grande, prova de seu valor para os usuários. Nesse primeiro ano de existência da The Document Foundation, o LibreOffice sofreu modificações internas que o tornaram muito mais rápido e com melhorias na sua usabilidade. Mas é observando a lista dos desenvolvedores e lendo suas opiniões e trabalho que vejo as palavras de Linus mais aguçadas: temos um time de desenvolvedores de alto calibre, muito ansioso por trabalhar em detalhes, mas que vejo com preocupação o distanciamento das reais necessidades dos usuários.

Tenho visto muitas contribuições para com a velocidade e a facilidade da compilação, algo de muito complexo no processo de desenvolvimento e que visa torná-lo mais simples e acessível a desenvolvedores novatos, mas que nada acrescenta ao produto final e que não chega ao usuário, pelo menos diretamente. Outra posição um tanto mais arrogante talvez, refere-se a pedidos de melhoria ou de novas funcionalidades: os desenvolvedores terminam por chutar a bola de volta para que o usuário consiga por conta própria implementar a funcionalidade ou contratar seu desenvolvimento. Não é uma posição simpática, mesmo sendo realista.

Precisamos romper com o autismo endêmico dos desenvolvedores. Ouvir os usuários e para eles trabalhar.