Joel on Software

Joel on Software   Joel sobre Software

 

Outros artigos de "Joel on Software" em Português

Outros artigos de "Joel on Software" em Inglês

Envie email para o autor (apenas em Inglês)

 

Carta Estratégica II: Problemas do Ovo e da Galinha


Por Joel Spolsky
Traduzido por Fernando de A. Correia
Quarta-feira, 24 de maio 2000

A idéia da publicidade é mentir sem ser pego. A maioria das empresas, quando lançam uma campanha publicitária, simplesmente pega a verdade mais infeliz sobre a sua empresa, a vira de cabeça para baixo ("mente"), e inculca esta mentira. Vamos chamar isto de "prova por afirmação repetida". Por exemplo, viagem de avião é apertada e desconfortável e os funcionários das companhias aéreas são rudes e desagradáveis, na verdade todo o sistema de vôos comerciais é projetado como um instrumento de tortura. Portanto quase todos os anúncios de empresas aéreas serão sobre como é confortável e agradável voar e como você vai ser mimado em cada passo do caminho. Quando a British Airways divulgou um anúncio com um executivo em uma poltrona de avião sonhando que ele era um neném em um moisés, todo o sentido do razoável foi-se embora para sempre.

Quer outro exemplo? As empresas de papel estão devastando totalmente nossas florestas, cortando florestas antigas que nem são delas. Então quando elas anunciam, elas inevitavelmente mostram alguma bela e velha floresta de pínus e falam sobre o quanto elas se importam com o meio-ambiente. Cigarros causam morte, então seus anúncios mostram vida, como todos os anúncios com pessoas felizes e saudáveis se exercitando ao ar livre. E assim por diante.

Quando o Macintosh saiu, não havia software disponível para ele. Então obviamente, a Apple criou um enorme catálogo em papel brilhante relacionando todo o maravilhoso software que estava "disponível". Metade dos itens listados diziam, em letras miúdas, "em desenvolvimento", e a outra metade não podia ser obtida nem por amor nem por dinheiro. Alguns produtos eram tão fajutos que ninguém os compraria. Mas mesmo um catálogo grosso em papel brilhante com um "produto" de software por página descrito entusiasticamente não conseguia disfarçar o fato de que você simplesmente não podia comprar um processador de textos ou planilha para rodar no seu Macintosh de 128KB. Haviam "guias de produtos de software" parecidos para o NeXT e o BeOS. (Atenção, fanáticos do NeXT e BeOS: eu não preciso de nenhum ataque sobre os seus sistemas operacionais doentios, certo? Escreva a sua própria coluna.) A única coisa que um guia de produtos de software lhe diz é que não há software disponível para o sistema. Quando você vir uma coisa destas, fuja correndo na direção oposta.

Amiga, Atari ST, Gem, IBM TopView, NeXT, BeOS, Windows CE, General Magic, a lista de "novas plataformas" falidas não se acaba. Uma vez que elas são plataformas, elas não são por definição, muito interessantes por si mesmas sem um bom software para rodar nelas. Mas, com pouquíssimas exceções (e eu tenho certeza de que vou receber uma enormidade de e-mails de admiradores sacais de plataformas misteriosas e mal-amadas como Amiga ou RSTS-11), nenhum desenvolvedor de software com o mínimo de bom senso escreveria software propositalmente para uma plataforma com 100.000 usuários em um dia bom, como o BeOS, quando eles poderiam fazer o mesmo tanto de trabalho e criar software para uma plataforma com 100.000.000 de usuários, como o Windows. O fato de que existe alguém que escreve algum software para estes sistemas esquisitos prova que a motivação do lucro não é tudo: o fervor religioso ainda está vivo e forte. Que bom, querido. Você escreveu um lindo clone do microEmacs para o Timex Sinclair 1000. Parabéns. Toma uma moeda, vai comprar um doce.

Bem. Se você está no negócio de criação de plataforma, você provavelmente vai sofrer do que é popularmente chamado de problema do ovo e da galinha. Ninguém vai comprar a sua plataforma até que haja bom software que rode nela, e ninguém vai escrever software até que você tenha uma grande base instalada. Xi. É meio como um nó górdio, se bem que uma espiral da morte górdia seria mais descritiva.

O problema do ovo e da galinha, e suas variantes, é o elemento de estratégia mais importante para ser entendido. Bem, certo, você provavelmente pode viver sem entendê-lo: Steve Jobs praticamente construiu uma carreira de não entender o problema do ovo e da galinha, duas vezes. Mas o restante de nós não tem o Campo Pessoal de Distorção da Realidade de Jobs ao nosso dispor, então nós vamos ter que nos esforçar e estudar bastante.

Lição um. O território clássico dos problemas do ovo e da galinha são as plataformas de software. Mas aqui está outro problema do ovo e da galinha: todo mês, milhões de empresas de cartões de crédito enviam zilhões de contas para os consumidores pelo correio. As pessoas escrevem cheques em papel, colocam-nos em trilhões de envelopes, e os mandam de volta. Os envelopes são colocados em grandes caixas e levados para países onde a mão-de-obra é barata para serem abertos e processados. Mas essa operação toda custa um bocado: o último valor que eu ouvi era que custa mais de US$ 1,00 por conta.

Para nós que sabemos usar a Internet, isto é uma piada. "Me envie a conta pelo e-mail", você diz. "Eu vou pagá-la on-line!" você diz. "Só vai custar, digamos, 1/100000 de um centavo. Vocês vão economizar milhões" ou algo assim.

E você tem razão. Então um monte de empresas tentaram entrar neste ramo, que é tecnicamente conhecido como Apresentação de Contas. Um exemplo é (adivinhe) a Microsoft. A sua solução, TransPoint, é assim: é um site da web. Você vai lá, e ele mostra as suas contas. Você as paga.

Então, agora, se você recebe as suas contas neste sistema da Microsoft, você tem que visitar a página de vez em quando para ver se alguma conta chegou, para você não perdê-la. Se você recebe, digamos, 10 contas por mês, isto pode não ser um incômodo muito grande. Mas aí está o outro problema: só existe um punhado de comerciantes que vão cobrar de você através deste sistema. Então para todas as suas outras contas, você vai ter que ir a outro lugar.

Resultado final? Não vale a pena. Eu ficaria surpreso se 10.000 pessoas estiverem usando este sistema. Agora, a Microsoft tem que ir aos comerciantes e dizer, "cobrem dos seus clientes usando nosso sistema!" E os comerciantes vão dizer, "Certo! Quando vai custar?" E a Microsoft vai dizer, "50 centavos! Mas é bem mais barato do que US$ 1,00!" E os comerciantes vão dizer, "Certo. Mais alguma coisa?" E a Microsoft vai dizer, "Ah sim, vai lhes custar uns US$ 250.000,00 para configurar o software, conectar nossos sistemas aos seus sistemas, e colocar tudo em funcionamento."

E como a Microsoft tem tão poucos infelizes usuários no sistema, é difícil imaginar por que alguém pagaria US$ 250.000,00 para economizar 50 centavos em 37 usuários. Aha! O problema do ovo e da galinha mostrou a sua cara feia! Os clientes não vão aparecer até que você tenha comerciantes, e os comerciantes não vão aparecer até que você tenha clientes! Eventualmente, a Microsoft vai simplesmente resolver esta situação com dinheiro. Para empresas menores, esta não é uma opção. Então o que você pode fazer?

As plataformas de software na verdade nos dão algumas boas dicas sobre como assar o seu problema do ovo e da galinha. Vamos olhar um pouco a história das plataformas de software para computadores pessoais nos anos desde que o IBM-PC saiu; talvez nós descubramos alguma coisa!

A maioria das pessoas acha que o IBM-PC exigia o PC-DOS. Não é verdade. Quando o IBM-PC saiu, você podia escolher três sistemas operacionais: PC-DOS, XENIX (uma versão fraquinha de 8 bits do UNIX publicada pela, e eu não estou inventando isto, Microsoft), e uma coisa chamada UCSD P-System, que era, se você consegue acreditar, como o Java: belos, lentos e portáteis bytecodes, uns 20 anos antes do Java.

Agora, a maioria das pessoas nunca ouviram falar do XENIX ou das esquisitices da UCSD. Vocês jovens de hoje provavelmente pensam que é porque a Microsoft se apoderou do mercado de sistemas operacionais pequenos através de força de marketing ou algo assim. Totalmente falso; a Microsoft era minúscula naqueles dias. A empresa com força de marketing era a Digital Research, que tinha outro sistema operacional. Então, porque o PC-DOS foi o vencedor desta corrida tripla?

Antes do PC, o único sistema operacional de verdade que você podia obter era o CP/M, embora o mercado para computadores baseados em CP/M, que custavam em torno de US$ 10.000,00, fosse pequeno demais. Eles eram manhosos e caros e não muito amigáveis. Mas aqueles que chegaram a comprá-los, fizeram isto para usá-los como processadores de textos, porque você podia pegar um processador de textos bem bom chamado WordStar para CP/M, e o Apple II simplesmente não conseguia fazer processamento de texto (ele não tinha letras minúsculas, para começar).

Agora, aqui está um fato pouco conhecido: mesmo o DOS 1.0 foi projetado com um modo de compatibilidade com o CP/M embutido. Ele não apenas tinha sua própria nova e esperta interface de programação, conhecida por programadores durões como INT 21, mas ele suportava totalmente a antiga interface de programação do CP/M. Ele quase conseguia rodar software para CP/M. De fato, o WordStar foi convertido para o DOS mudando um único byte no código. (Programadores de Verdade podem lhe dizer qual era este byte, eu já esqueci faz tempo).

Isto merece ser dito de novo. O WordStar foi convertido para o DOS mudando um único byte no código. Deixe isto assentar.

Pronto.

Percebeu?

O DOS foi popular porque ele tinha software desde o primeiro dia. E ele tinha software porque Tim Paterson pensou em incluir um recurso de compatibilidade com o CP/M nele, porque antigamente lá na era das trevas alguém era esperto sobre problemas do ovo e da galinha.

Avanço rápido. Em toda a história da plataforma PC, só houveram duas grandes mudanças de paradigma que levaram consigo quase todos os usuários de PC: todos nós migramos para o Windows 3.x, e depois todos nós migramos para o Windows 95. Somente uma quantidade ínfima de pessoas chegaram a migrar para qualquer outra coisa no caminho. Uma conspiração da Microsoft para dominar o mundo? Perfeito, fique à vontade para pensar assim. Eu acho que é por outra razão, muito mais interessante, baseada no ovo e na galinha.

Todos nós migramos para o Windows 3.x. A pista importante nesta frase é o 3. Porque nós não mudamos todos para o Windows 1.0? Ou o Windows 2.0? Ou o Windows 286 ou o Windows 386 que se seguiram? É porque a Microsoft leva cinco versões para "acertar a mão"? Não.

A verdadeira razão era muito mais sutil do que isto, e tem a ver com recursos de hardware altamente misteriosos que apareceram pela primeira vez no processador Intel 80386 que o Windows 3.0 exigia.

  • Primeiro recurso: velhos programas para DOS colocavam coisas na tela gravando diretamente em lugares da memória que correspondiam a células de caracteres na tela.  Este era o único jeito de mostrar a saída com velocidade suficiente para fazer o seu programa parecer bom. Mas o Windows rodava em modo gráfico. Em processadores Intel mais antigos, os engenheiros da Microsoft não tinham alternativa a não ser mudar para modo de tela cheia quando eles estavam executando programas DOS.  Mas no 80386, eles podiam configurar blocos de memória virtuais e configurar interrupções de modo que o sistema operacional era notificado sempre que um programa tentava gravar na memória de tela. O Windows então podia escrever o texto equivalente em uma janela gráfica na tela instantaneamente.
  • Segundo recurso: velhos programas para DOS assumiam que eles tinham o controle do processador. Como resultado, eles não trabalhavam bem em conjunto. Mas o Intel 80386 tinha a capacidade de criar PCs "virtuais", cada um deles atuando como um 8086 completo, de modo que programas antigos para PC podiam fingir que eles tinham o computador para si mesmos, mesmo enquanto outros programas estavam executando e, eles também, fingindo que tinham o computador todo para eles.

Então o Windows 3.x nos Intel 80386 foi a primeira versão que conseguia rodar múltiplos programas DOS respeitavelmente. (Tecnicamente, o Windows 386 também podia, mas os 80386 eram raros e caros até mais ou menos a época em que o Windows 3.0 foi lançado.) O Windows 3.0 era a primeira versão que realmente conseguia fazer um trabalho razoável rodando todo o seu software antigo.

O Windows 95? Sem problema. Uma bela nova API de 32 bits, mas ainda rodava softwares antigos de 16 bits perfeitamente. A Microsoft era obcecada com isto, gastando uma boa quantia de dinheiro testando cada programa antigo que eles conseguiam encontrar no Windows 95. Jon Ross, que escreveu a versão original do SimCity para o Windows 3.x, me disse que ele acidentalmente deixou um defeito no SimCity aonde ele lia memória que ele tinha acabado de liberar. É. Funcionava direitinho no Windows 3.x, porque a memória nunca ia para lugar nenhum. Aqui está a parte surpreendente: Nas versões beta do Windows 95, o SimCity não funcionava nos testes. A Microsoft rastreou o defeito e acrescentou código específico ao Windows 95 que procura pelo SimCity. Se ele encontra o SimCity rodando, ele roda o alocador de memória em um modo especial que não libera a memória imediatamente. Este é o tipo de obsessão com compatibilidade que deixou as pessoas dispostas a mudar para o Windows 95.

Você deveria estar começando a ter algumas idéias sobre como romper o problema do ovo e da galinha: forneça um modo de compatibilidade que ou entregue uma carrada de galinhas, ou uma carrada de ovos, dependendo de como você considera, e sente-se e encha-se de grana.

Ah. Agora de volta para apresentação de contas. Lembra-se da apresentação de contas? O problema ovo-galinha é que você só consegue receber suas contas de luz, então você não vai usar o serviço. Como você pode resolver isto? A Microsoft não conseguiu descobrir. PayMyBills.com (e meia dúzia de outras empresas novas do Vale do Silício) descobriram ao mesmo tempo. Você fornece um modo de compatibilidade: se o comerciante não quer suportar o sistema, então faça o comerciante enviar a droga das contas em papel para a Avenida Universitária, em Palo Alto, onde um bando de seres humanos reais vai abri-las e escaneá-las. Agora você consegue ter todas as suas contas no web site deles. Já que cada comerciante da Terra está disponível no sistema, os clientes ficam felizes por usá-lo, mesmo se ele está rodando neste modo de compatibilidade esquisito aonde estúpidos bancos membros da Visa enviam a conta eletronicamente para uma impressora, a imprimem no papel, enfiam em um envelope, a enviam por 2.000 quilômetros até a Califórnia, aonde ela é aberta, os estúpidos folhetos que ficam anunciando rádios-relógio AM "grátis" que na verdade custam US$ 9,95 são jogados em um aterro em algum lugar, e a conta de papel é escaneada de volta para um computador e afixada na web para onde ela deveria ter sido enviada desde o começo. Mas o modo estúpido de compatibilidade eventualmente vai desaparecer, porque PayMyBills.com, ao contrário da Microsoft, consegue realmente fazer os clientes usarem o sistema, então logo eles serão capazes de ir aos estúpidos bancos membros da Visa e dizer, "olha, eu tenho 93.400 dos seus clientes. Por que vocês não economizam US$ 93.400,00 todo mês com uma conexão direta para mim?" E de repente PayMyBills.com é bem lucrativa enquanto a Microsoft ainda está tentando fazer um acordo com a sua segunda concessionária elétrica, talvez uma atuando na Georgia fosse uma boa mudança de ritmo.

Empresas que falham em reconhecer o problema do ovo e da galinha podem ser consideradas como empresas ferva o oceano: seus planos de negócios requerem que 93.000.000 de seres humanos cooperem com seu desvairado esquema de negócios antes que ele realmente funcione. Uma das mais ultrajantemente estúpidas idéias que eu já encontrei se chamava ActiveNames.  Sua idéia cabeça-dura era que todas as pessoas do mundo iriam instalar um pequeno acessório ao seu cliente de e-mail que procurava nomes de pessoas nos seus servidores centrais para obter o endereço de e-mail real. Então em vez de dizer às pessoas que o seu endereço de e-mail é caco@vila-sesamo.com, você diria a elas que o seu ActiveName é "spolsky", e se eles quiserem mandar e-mail para você, eles precisam instalar este software especial. Bzzzzz. Resposta errada. Eu nem consigo começar a listar todas as razões pelas quais esta idéia nunca vai funcionar.

Conclusão: se você está no mercado com um problema do ovo e da galinha, é melhor você ter uma resposta de compatibilidade que elimina o problema, ou você vai levar um loooongo  tempo para começar (como, para sempre).

Há um monte de outras empresas que reconheceram o problema do ovo e da galinha de frente e o venceram de modo inteligente. Quando a Transmeta revelou sua nova CPU, foi a primeira vez em um longo tempo que uma empresa que não era a Intel finalmente admitiu que se você é uma CPU, e você quer que um zilhão de pessoas comprem você, é melhor você rodar código x86. Isto depois que Hitachi, Motorola, IBM, MIPS, National Semiconductor, e quem sabe quantas outras empresas convenceram a si mesmas que elas tinham o direito de inventar um novo conjunto de instruções. A arquitetura da Transmeta assume desde o primeiro dia que qualquer plano de negócio que pede a criação de um computador que não roda o Excel não vai a lugar algum.



Esse artigo apareceu originalmente em Inglês com o título Strategy Letter II: Chicken and Egg Problems  

Joel Spolsky é o fundador da Fog Creek Software, uma pequena empresa de software na cidade de Nova York. Formou-se na Universidade de Yale, e trabalhou como programador e gerente na Microsoft, na Viacom e no Juno.


O conteúdo dessas páginas reflete exclusivamente a opinião do autor.
Todo o conteúdo Copyright ©1999-2005 Joel Spolsky. Todos os direitos reservados.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky