Follow falcon_dark on Twitter
Google

sexta-feira, outubro 07, 2005

Revés para o Software Livre?

Saiu no linux-br a informação de que o Nessus deixará de ser software livre, ainda que continue sendo distribuído gratuitamente. O Nessus é um software para administração remota de redes, cuja principal função é varrer a rede em busca de vulnerabilidades.

O motivo para o fechamento do código seria o fato de que concorrentes da Tenable (a empresa criada para desenvolver o Nessus) estão usando seu código fonte para criar produtos que concorram com ela, sem contribuir com o desenvolvimento do software original. Ou seja, concorrentes do Nessus estão empacotando seu código-fonte e distribuindo-o ou vendendo-o sem ajudar no desenvolvimento do Nessus, pratica que poderia inviabilizar o negócio da Tenable. Ao fechar o código fonte e não mais distribuí-lo livremente a Tenable estaria protegendo seu investimento e seu negócio.

Mas até que ponto isso pode traduzir-se em um demérito para o modelo de software livre? Quantas outras empresas que fazem software livre ao redor do mundo podem acompanhar a Tenable nessa atitude? Que tipo de impacto isso pode causar na comunidade e nos negócios da Tenable?

O software livre enquanto modelo de negócios
Para empresas, especialmente para as médias e grandes, negócios são um conjunto de metodologias estabelecidas e aplicadas com a finalidade de gerar lucro. Não importa se a empresa fabrica sucos em pacotes ou eletrônicos de última geração você pode apostar que seus executivos terão uma visão muito similar dos negócios, de seus clientes, dos canais de distribuição e demais partes que formam seu modelo de negócios e seu mercado. Por isso não é difícil levar um executivo da Pepsi para a Apple, ou da Nabisco para a IBM e ainda assim ver as coisas acontecerem corretamente. Os executivos da indústria alimentícia vêem os negócios da mesma forma que seus colegas da indústria de tecnologia, por isso não importa muito o que você vende, mas sim como você vende e se consegue ganhar dinheiro com isso.

Partindo disso o software livre, que para mim pode ser um bom modelo de produzir programas e pessoas capacitadas para entendê-los, para uma grande empresa pode ser apenas um modelo para produzir software melhor ou mais barato. E que pode ser abandonado se deixar de ser viável, como parece ser o caso do Nessus.

No fim da década de 1990 a IBM era uma empresa que tinha diversos tipos de hardware e software em seu catálogo. Desde computadores pessoais, passando por servidores Intel, PowerPC até mainframes POWER constavam entre seus produtos. Para operar tudo isso a IBM tinha quase uma dezena de sistemas operacionais diferentes, desde o OS/2 Warp, OS/2 Warp Server, Windows NT, Windows 9x, OS/390, AIX cada um deles com uma equipe enorme de engenheiros, pessoal de markting, suporte e vendedores, um para cada área e perfil de cliente. Quando tentava vender uma solução para um possível cliente a IBM tentava identificar quais as necessidades dele e procurava dentro dessa extensa gama de produtos uma solução adequada para o negócio e tinha de fazê-lo buscando ter o maior lucro possível. Era um inferno! E a IBM percebeu que precisaria simplificar suas opções de soluções e sistemas, pois os clientes ficavam confusos com tantas combinações possíveis de sistemas e o custo disso estava diminuindo os lucros da Big Blue.

A IBM já havia falhado alguns anos antes ao buscar uma solução de sistema operacional que pudesse rodar em todo seu hardware e ainda assim manter a compatibilidade entre todos os produtos com um custo e um desempenho aceitáveis. E alguém lá dentro teve a brilhante idéia de sugerir Linux.

O Linux para a IBM foi a salvação da lavoura. Com um custo menor ela poderia ter um sistema que rodasse em toda a sua linha de equipamentos e que seria intercompatível, e era quase um UNIX! O desenvolvimento é feito por voluntários ao redor do mundo e seu custo por cópia pode chegar próximo a zero, é uma solução e tanto para uma empresa que fabrica tantos hardwares distintos.

Hoje o OS/2 Warp saiu de linha, entrou o Linux. O Windows continua aparecendo em catálogo, pois a IBM gasta muito pouco com sua manutenção. O OS/390 (ou sua atualização) continua em catálogo, para manter a compatibilidade com aplicações antigas, mas os AS/400 podem sair com Linux sem problemas. E os mainframes continuam com AIX, mas agora rodam centenas de cópias virtuais de Linux, uma para cada aplicação. Pode-se dizer que a IBM colocou o Linux em quase toda sua gama de hardware.

Por isso o software livre faz tanto sentido para IBM. Ela consegue agora colocar servidores rodando mil cópias de Linux, OpenOffice e Apache na casa do cliente, cobrando quase que apenas pelo hardware. Se fosse usar Windows, MSOffice e IIS ou OS/2, LotusOffice e IBM Web Server os custos bateriam nas nuvens. Para a IBM manter 100 ou 1.000 engenheiros de software trabalhando em tempo integral no kernel do Linux é um grande negócio. Isso fez o modelo de software livre ser algo tão rentável para a IBM.

Empresas como a Sun, a HP e outras perceberam isso e entraram no barco. É muito mais barato para a Sun usar Linux em seus servidores do que usar seu próprio sistema (Solaris) pois para a Sun o Linux custa muito menos para ser desenvolvido já que ela pode dividir os custos de desenvolvimento do Linux com todo mundo, até com a IBM.

E é por isso que o modelo de negócios dessas empresas é tão difícil de ser reproduzido por outras empresas. As grandes conseguiram uma vantagem inexistente antes do software livre aparecer. Conseguiram vender seus produtos com margens de lucro maiores e com soluções intercompatíveis por essência. Pois seu principal negócio não era Sistemas Operacionais, ou Suítes de Escritório ou Servidores Web, estes são apenas parte de um pacote maior. Seu principal negócio era hardware e soluções de negócios, onde o software tem papel crucial, mas não é o principal produto.

Um modelo não tão bom assim
Para a Oracle, por exemplo, o modelo Livre de criação de software já não é tão vantajoso. Como seu principal produto é o próprio software, ou soluções de dados onde o software é crucial, desenvolver software livre é uma faca de dois gumes. Você pode conseguir aproveitar boas idéias de desenvolvedores voluntários para fazer dinheiro, mas seu concorrente pode usar seu software para fazer dinheiro também, como no caso do Nessus que descrevi no começo do artigo.

Para a Microsoft é ainda pior. O mercado é muito dependente de Windows, principalmente o mercado doméstico. Mas há no mercado uma noção geral de que o Windows é um produto que poderia ser bem melhor. Se a Microsoft tornasse o WindowsXP um produto livre talvez pipocassem projetos para melhorá-lo ou modificá-lo de mil maneiras que a Microsoft jamais tenha pensado. Isso seria bom para os usuários, mas seria péssimo para o modelo de negócios da Microsoft, pois muitas empresas distribuiriam ou venderiam clones livres do Windows com aprimoramentos distintos e a Microsoft teria problemas em fazer seu próprio produto acompanhar o rítmo do mercado e provavelmente perderia a liderança. Nesse panorama imaginário o Windows original talvez fosse tão raro de ver em uso como são os UNIX hoje, que perderam boa parte de seu mercado para Linux e BSD.

Bom ou ruim?
Me parece então que o modelo de software livre funciona bem em certos casos, mas não tão bem em outros, do ponto de vista comercial dos negócios. Ele funciona bem quando:
-Seu principal produto não é o software em si, mas algo que dependa dele para ser competitivo. Nesse quadro seus custos de desenvolvimento podem ser bastante reduzidos com software livre;
-Você precisa de um software que não está disponível, ou que é caro demais para ser adquirido. O Linux não possuia um pacote à altura do MSOffice até que a Sun fez o StarOffice livre e nasceu o OpenOffice. Para este mercado o software livre é a melhor coisa que aconteceu, pois deu à comunidade a chance de desenvolver um produto para um mercado que era um beco sem saída;
-Você deseja desenvolver uma solução para seus clientes, mas não tem todo o material intelectual necessário disponível ou não pode bancar os custos de desenvolvimento sozinho. Um projeto livre pode atrair em escala global todos os interessados por aquela solução e ela pode ser desenvolvida gastando apenas uma fração do que seria gasto por sua empresa originalmente.

Mas em contrapartida o modelo livre pode ser de difícil aplicação em certos casos, como por exemplo:
-Você tem o software como principal produto em seu catálogo, e é lider de mercado nessa categoria de software. Nesse caso, liberar livremente o software pode ser apenas um meio rápido de fortalecer seus concorrentes, como no negócio de bancos de dados profissionais. Nem a Oracle nem a IBM abriram os códigos de seus bancos de dados, e o modelo livre foi usado para criar o MySQL, por exemplo. Se a Oracle abrisse livremente seu banco de dados, seria mais provável uma melhoria significativa no Oracle ou no MySQL?
-Você é lider de mercado de um segmento de software quase monopolista ou oligopolista. Citei o exemplo do Windows acima, então pensemos nos drivers para placas de vídeo 3D. Se a nVidia liberasse livremente seus drivers de vídeo 3D seria ela própria, a nVidia, a maior beneficiária ou a ATi teria grandes chances de melhorar seus drivers?

Ver o negócio de um jeito diferente
Fica a impressão de que para certos nichos do mercado o modelo de software livre ainda não está preparado o suficiente para ser usado. Isso pode ser verdade. Ou pode haver ainda um coelho escondido dentro de alguma cartola. Nos exemplos que citei onde o modelo livre poderia ser mais danoso que benéfico (que foram os exemplos que me passaram pela cabeça até agora, sugestões para uma discussão são bem vindas) talvez os grandes benefícios ainda não tenham surgido pela maneira tradicional pela qual as grandes empresas enxergam seus negócios.

Nenhuma empresa desenvolvedora de software propreitário vende o software. Elas licenciam o software, mas mantém a propriedade sobre ele. Porque elas encaram o software como o produto. O produto na verdade são as idéias que deram origem ao software.

Quando Larry Ellison trabalhava na IBM e ouviu o conceito de Bancos de Dados Relacionais pela primeira vez ficou convencido de que esse era o futuro dos Bancos de Dados. Depois de tentar implementar suas idéias por algum tempo, sem sucesso, saiu da IBM e fundou com alguns sócios a Oracle. A Oracle tornou-se a grande concorrente da IBM no mercado de bancos de dados. Se a IBM tivesse dado ouvidos a Larry e sua idéia maluca de bancos de dados relacionais talvez hoje a Oracle nem existisse.

Larry propagou o erro ao não dar ouvidos a Thomas Siebel quando este trabalhava na Oracle e viu nos sitemas CRM uma grande oportunidade. Siebel deixou a Oracle para fundar a Siebel Systems, agora comprada pela Oracle por 5,8 bilhões de dólares.

Esses casos mostram como as empresas perdem dinheiro por não saber aproveitar grandes idéias, que poderiam virar grandes softwares. O medo de perder mercado ou rentabilidade ao liberar livremente software é outra forma de propagar este mesmo erro. Porque bons softwares vêm de boas idéias. Uma equipe limitada de desenvolvedores tem bem menores chances estatísticas de ter grandes idéias do que uma equipe muito maior.

Se as empresas pudessem observar o software não como um produto, mas como um vetor para entregar boas idéias aos seus clientes a balança tenderia para o modelo livre. Claro que as portas estariam abertas para que os concorrentes colocassem as mãos em suas idéias, mas elas também estariam abertas para que boas idéias de terceiros, cujo salário não é pago por você, entrassem em seu código e tornassem seu produto ainda melhor. O mercado poderia fazer uma opção natural pela empresa que mantém as melhores idéias saindo do forno mais constantemente. Assim meus concorrentes, que usam meu código para concorrer contra meu produto, estariam em uma desvantagem natural, pois todas as boas idéias surgem em meu produto primeiro e depois são adaptadas nos concorrentes.

Mas e se as boas idéias dos terceiros (da comunidade) não chegam?
Ok, você pode dizer que no caso do Nessus a comunidade nãos contribuiu, ou contribuiu pouco nos últimos 6 anos, deixando apenas a parte ruim do parágrafo anterior para a Tenable. Seus concorrentes estavam apoderando-se de seu código e usando-o contra ela sem contribuir nada em troca, então qual a vantagem?

Sabe, isto pode ser mais fácil de resolver do que parece. Uma licença diferenciada, que permita a utilização por concorrentes apenas da versão anterior à atual do código fonte acaba com o problema dos concorrentes. Assim a versão mais atual do seu código, que supostamente inclui todas as mais novas idéias de sua equipe de desenvolvimento e da comunidade estariam presentes apenas no seu produto, e só na próxima geração de código apareceriam nos produtos concorrentes, exceto para aqueles que contribuem com o desenvolvimento ativamente.

Mas alguém poderia argumentar que isso deixa de ser código livre, pois limita o que pode ser feito com o programa. É verdade, deixa de ser software livre na essência do termo, mas ainda penso que isso seria melhor do que a proposta da Tenable de simplesmente fechar o código de uma vez, não é?

Por outro aspecto, seria justificável dizer que em software livre você perde um pouco (ou muito) do poder que você tem sobre seu próprio código fonte, já que qualquer um pode fazer o que quiser com ele. E que em sendo isso um aspecto natural do software livre, as empresas devem aprender a conviver com isso, concorrentes sempre irão pegar seu código e empacotá-lo por um preço menor, já que eles não arcam com os custos do desenvolvimento como você faz. Hum, não sei sei isso é um bom argumento para convencer mais empresas a adotar software livre.

Argumentos como o de agregar suporte ao software livre para poder manter a competitividade não significam muito agora, pois seus concorrentes podem continuar vendendo o software a preços mais baratos. Então talvez seja tempo de revisar com sua empresa está lidando com o conceito de software livre.

Parece que quando o software atinge um certo nível de maturidade seja natural que as contribuições da comunidade para ele diminuam. Que boa razão haveria para que usuários que estão satisfeitos com o programa continuem a alterá-lo? Talvez manter um cilo forte de renovação do software e de inclusão de novas características possa ser uma maneira de manter as contribuições da comunidade ativas. Talvez buscar firmar acordos de desenvolvimento com seus próprios concorrentes seja um caminho possível. Talvez ampliar sua própria linha de produtos e incluir seus produtos atuais em pacotes mais completos de soluções, que seus concorrentes que apenas usam seu código fonte não consigam vender, possa ser outro caminho viável. São muitos "talvez", não?

O negócio ideal
O problema parece residir no fato de que muitas empresas de software livre ainda pensem como empresas de software proprietário, e fiquem tentadas a agir como tal, caso da Tenable. Quando você trabalha com um produto proprietário a melhor situação de mercado é o monopólio. Você seria o único fornecedor, não importa a qualidade do seu produto ainda assim todos comprariam e você ainda poderia cobrar o que quisesse por ele.

O software livre parte da premissa que o software é uma ferramenta para disseminar conhecimento, e como tal seu código-fonte deve estar disponível para ser usado por todos, com cada um queira usar. Um negócio de software livre não deveria preocupar-se com marketshare ou sobre quanto lucro seus concorrentes estão tendo ao usar código-fonte livre. Deveria preocupar-se apenas com a qualidade de seu próprio código e se sua rentabilidade é positiva, e só. A Tenable diz que suas finanças estão bem, e que irá fechar seu código para privar seus concorrentes de usá-lo, apenas para não ter concorrentes. Me parece uma empresa que faz software livre, mas que pensa como uma empresa de software proprietário, que é o que ela venderá daqui pra frente, software proprietário.

O modelo de software livre para negócios é viável, desde que o modelo de pensamento da empresa esteja antenado com o software livre e com a comunidade. Essa falta de sintonia da Tenable entre seu modelo de negócios e a filosofia oculta por trás do software livre talvez seja a grande responsável pela falta de contribuição da comunidade ao seu código. Não dá para fazer uma coisa pensando em fazer outra, surgirão problemas cedo ou tarde, como esse exemplo mostra.

Existem algumas maneiras de tirar vantagem da situação de ser o provedor de código para seus próprios concorrentes, basta encontrá-las. Mas para isso é preciso estar pensando do jeito certo. Prova disso é a RedHat, uma empresa, com acionistas e conselho diretor, edificada ao modo tradicional de WallStreet, cujo principal produto, o RedHat Linux é talvez a distribuição mais clonada até hoje, e que mesmo com a concorrência com seu próprio código conseguiu tornar-se uma das grandes empresas de tecnologia de hoje. Se a RedHat o fez, o que impediria outros de fazê-lo? Como eu disse, a diferença está apenas nas boas idéias.

Follow falcon_dark on Twitter
Google
Comments:
Sabe, isto pode ser mais fácil de resolver do que parece. Uma licença diferenciada, que permita a utilização por concorrentes apenas da versão anterior à atual do código fonte acaba com o problema dos concorrentes. Assim a versão mais atual do seu código, que supostamente inclui todas as mais novas idéias de sua equipe de desenvolvimento e da comunidade estariam presentes apenas no seu produto, e só na próxima geração de código apareceriam nos produtos concorrentes, exceto para aqueles que contribuem com o desenvolvimento ativamente.

Que idéia tosca! Fazer uma licença de software é algo caro e que exige advogados, e que ainda por cima não tem garantias de legalidade até ser testada em um tribunal. Além disso, como você vai identificar formalmente certos elementos dessa suposta licença - como "concorrentes" - deixando o usuário comum à vontade pra usar como quiser? Isso pode ser chamado de tudo, menos de "simples".

É tão difícil ver o que aconteceu? A idéia do software livre é justamente você perder o controle do seu código. Isso é o que a palavra livre quer dizer. A Tenable, ou alguém lá dentro, não entendeu isso e agora quer levar a bola do jogo porque está perdendo. A estratégia deles para com o software foi furada. Como você disse, eles pensaram como software proprietário.

Aliás, a filosofia do software livre é tal e que a escassez artificial do produto provocada pela licença proprietária, que impede cópias e modificações, não existe nele. Ele age com o princípio inverso, ESTIMULAR cópias e modificações, usadas para qualquer objetivo. Alguém que desenvolve software livre deveria ficar feliz por o produto estar sendo muito usado. E esperar contribuição voluntária? Nah, isso é um bônus que depende da sorte, pregado (em parte, com reservas, em seus livros, mas não garantido) por Eric Raymond mas não por Stallman/FSF.org. Depende da sorte e da sua habilidade de marketing pra isso.

Lição do dia, crianças: software livre não é sobre controle. Ou desenvolva uma estratégia comercial adequada pra isso ou enfrente as conseqüências.
 
Olá Patola, tudo certinho?

É exatamente por isso que eu não chamei a idéia de "simples". Criar uma nova licença traz tantas complicações quanto tornar proprietário um software que estava licenciado como livre, que é o que a Tenable irá fazer. A idéia é apenas um exemplo de como a Tenable poderia tentar contornar seu suposto problema sem precisar fechar o código. Pois o código fechado prejudica não só os concorrentes da Tenable, mas também os usuários. Em lugar de tornar o Nessus proprietário ela poderia adotar uma licença de software com código fonte aberto, e continuar provendo esse código a seus clientes, mesmo que ele não fosse software livre como descrito na GPL, como muita empresa por aí faz. Mas são só sugestões, que por mais que pareçam toscas, estão sendo usadas, inclusive pela Microsoft. O Windows já teve algumas partes de seu código fonte revelados à governos e universidades, mediante a assinatura de contratos de confidencialidade. É software proprietário com código fonte aberto, ao menos em termos. Não é tão bom quanto software livre, para o usuário e para a comunidade, mas é um tipo diferente de licenciamento.

O resto é como eu já disse, e você também. É uma empresa de software proprietário querendo fazer software livre, problemas para entender o que acontece acabam surgindo. A Tenable gostaria de receber suporte da comunidade para melhorar seu código mas impedir seus competidores de aproveitar-se disso, com a mentalidade monopolista do software proprietário na cabeça.

Não acho que a contribuição da comunidade tenha relação com sorte. É como poker, que não é nem um pouco um jogo de azar. Tudo depende de como você observa as cartas (o mercado) e os adversários (os concorrentes) e o quanto consegue entender o que está ocorrendo. No mercado de software, assim como no poker, você deve entender o que o mercado e seus adversários lhe dizem sobre sua situação atual e tomar a atitude mais rentável no momento, que pode até ser dar um passo atrás para não perder tudo às vezes. Se você identifica corretamente uma necessidade do mercado e posiciona-se melhor que os concorrentes as coisas darão certo, como está acontecendo para o GNU/Linux ou para o Firefox. Se você interpretar erroneamente essas variáveis acabará com problemas, como a Tenable está mostrando. A comunidade irá contribuir sempre que achar que isso pode retornar algum benefício, independente de você ser alguém de sorte ou não, desde que você faça as coisas do jeito certo.

Até arrisco dizer que a longo prazo o Nessus venha a perder mercado para concorrentes que hoje usem o código fonte da Tenable, pois estes concorrentes continuarão recendo, ainda que poucas, contribuições da comunidade e tentem a tornarem-se produtos melhores do ponto de vista dos usuários. Comecei o artigo com a pergunta "Isso é um revés para o software livre?" e fiquei com a resposta na ponta da língua (e com medo de queimá-la também): Pode até ser que agora o maior prejudicado seja o modelo de software livre, ou mesmo a comunidade, mas no futuro o maior prejudicado será o próprio Nessus e a Tenable.

Obrigado pela visita ao blog.
 
Postar um comentário



<< Home

This page is powered by Blogger. Isn't yours?