Joel on Software

Joel on Software   Joel sul software

 

Altri articoli da "Joel on Software" in italiano

Altri articoli da "Joel on Software" in inglese

Scrivi all'autore (solo in inglese)

JOEL E IL SOFTWARE

 

Lezione di strategia II: l'uovo e la gallina


Di Joel Spolsky
Tradotto da Angelo Dipierro
Redatto da Fernando Marotta
 24 Maggio 2000

L'idea alla base della pubblicità è quella di mentire senza essere scoperti. La maggior parte delle società, quando lanciano una campagna pubblicitaria, non fanno che prendere la verità più scomoda che le riguarda, capovolgerla ("mentire"), e ribadire continuamente la bugia. Chiamiamola "dimostrazione per affermazione ripetuta." Per esempio, viaggiando in aereo si sta stretti e scomodi, i dipendenti delle compagnie aeree sono maleducati e sgradevoli, praticamente l'intero sistema delle compagnie aeree è progettato come uno strumento di tortura. Quindi quasi tutta la pubblicità delle compagnie aeree vi dirà quanto comodo e piacevole sia volare con loro e quanto coccolati sarete a ogni vostro passo. Quando la British Airways ha creato una pubblicità con un uomo d'affari in aereo che sognava di essere un bimbo in una culla, ogni senso della misura è scomparso.

Un altro esempio ? Le cartiere stanno devastando le nostre foreste, radendo al suolo boschi secolari che neanche possiedono. Quindi, quando fanno pubblicità, inevitabilmente mostrano qualche bella e antica foresta di pini e parlano di quanto gli stia a cuore l'ambiente. Le sigarette sono letali e così le loro campagne pubblicitarie mostrano scene con persone felici e piene di salute che fanno sport all'aria aperta. E così via.

Quando il Macintosh è uscito non aveva software. E allora Apple ha creato un grande catalogo patinato che elencava tutto il magnifico software "disponibile" per il nuovo sistema. Sotto metà dei titoli c'era scritto, molto in piccolo, "ancora in sviluppo" e l'altra metà non potevate averla né per amore né per forza. Altri erano prodotti così scadenti che nessuno li avrebbe comprati. Ma neanche un grosso catalogo patinato che descriveva con prosa brillante un software per pagina poteva nascondere il fatto che non potevate proprio comprare un elaboratore di testi o un foglio di calcolo che funzionasse su un Macintosh con 128KB di memoria. Esistevano cataloghi simili per NeXT e BeOS. (I fanatici di NeXT e BeOS possono rinfoderare le pistole OK ? Scrivetevi il vostro editoriale.) La sola cosa che un catalogo software vi dice è che non c'è software per quel sistema. Quando ne vedete uno scappate nella direzione opposta.

Amiga, Atari ST, Gem, IBM TopView, NeXT, BeOS, Windows CE, General Magic, la lista delle "nuove piattaforme" fallite potrebbe continuare. Sono piattaforme e quindi, per definizione, non sono interessanti senza del buon software. Ma, con poche eccezioni (e sono sicuro che riceverò un sacco di email da noiosi fan di sconosciuti e poco amati sistemi come Amiga e RTS-11), nessuno sviluppatore con almeno un po' buon senso scriverebbe mai un programma per un sistema con 100.000 utenti, come BeOS, quando potrebbe con lo stesso sforzo creare software per una piattaforma con 100.000.000 di utenti, come Windows. Il fatto che qualcuno scriva software per quei sistemi sconosciuti prova che il profitto non è tutto: il fervore religioso è vivo e sta benone. Buon per voi, cari. Hai scritto un fantastico clone di microEmacs per il Timex Sinclair 1000. Bravo. Eccoti un quarto di dollaro, comprati un dolcetto.

Quindi, se il vostro mestiere è quello di creare nuove piattaforme è probabile che prima o poi incontriate quello che è comunemente noto come il problema dell'uovo e della gallina. Nessuno comprerà il vostro sistema finche non ci sarà del buon software, e nessuno scriverà software per la vostra piattaforma finché non avrete un'ampia base installata. Oooops. E' più o meno come un Nodo Gordiano, anche se Spirale Gordiana Della Morte potrebbe essere più descrittivo.

Il problema dell'uovo e della gallina, con le sue varianti, è l'elemento di strategia più importante da capire. Beh, OK, potete probabilmente cavarvela anche senza averlo capito: Steve Jobs si è costruito una carriera attorno al non capire il problema dell'uovo e della gallina, due volte. Ma il resto di noi non ha a disposizione il "Campo Jobs di Distorsione della Realtà", quindi meglio chinare la testa e studiare sodo.

Prima lezione: il dominio classico per il problema dell'uovo e della gallina sono le piattaforme software. Ma ecco un altro esempio: ogni mese milioni di compagnie di carte di credito inviano per posta miliardi di fatture ai titolari delle carte. La gente compila assegni, li infila in miliardi di buste, e rispedisce tutto indietro per posta. Le buste vengono ammucchiate in grandi scatole e portate in paesi dove la manodopera è economica per essere aperte ed elaborate. L'intera operazione costa cara: l'ultima stima che ho sentito parlava di più di un dollaro per busta.

A noi, saggi conoscitori di Internet, sembra uno scherzo. "Speditemelo per posta elettronica il conto, lo pago on-line" dite. "Vi costerebbe solo la centomillesima parte di un penny. Risparmiereste milioni." O qualcosa del genere.

E avete ragione. Quindi un sacco di società hanno cercato di entrare in questo campo, tecnicamente noto come Consegna Fatture. Un esempio (chi l'avrebbe detto) è Microsoft. La loro soluzione, TransPoint, funziona così: è un sito web. Ci andate, vi mostra il conto e voi pagate.

Quindi adesso, se il vostro conto vi viene spedito sul sistema di Microsoft, dovete visitare continuamente il sito a distanza di qualche giorno per controllare se sono arrivate delle nuove fatture, in modo da non perderle. Se ricevete, diciamo, 10 fatture al mese non è un grosso fastidio. Qui stà l'altro problema: solo pochi merchant vi invieranno il conto su questo sistema. Per tutti gli altri conti dovrete andare altrove.

Risultato finale ? Non vale la pena di usare questo sistema. Sarei sorpreso se 10.000 persone lo stessero usando. A questo punto Microsoft deve andare dai singoli merchant e dire "fatturate ai vostri clienti sul nostro sistema!" E i merchant risponderanno "Ok, quanto ci costa ?" E Microsoft dirà "50 centesimi ! Ma è molto meno di un dollaro !" E i merchant risponderanno "OK, c'è altro ?" E Microsoft dirà "Sì, vi costerà più o meno 250.000 dollari installare il software, connettere i vostri sistemi ai nostri sistemi e far partire il tutto".

E siccome Microsoft ha così pochi utenti su questo sistema è difficile immaginare perché qualcuno dovrebbe pagare 250.000 dollari per risparmiare 50 centesimi su 37 utenti. Aha! Il problema dell'uovo e della gallina ha alzato la sua orribile cresta. I clienti non si faranno vivi finché non ci saranno abbastanza merchant, e i merchant non si faranno vivi finché non ci saranno abbastanza clienti. Alla fine Microsoft non farà altro che spendere un sacco di soldi mentre trova la via d'uscita da questa situazione. Per società più piccole questa non è una delle opzioni. Cosa si può fare ?

Le piattaforme software in realtà danno qualche utile indizio su come cucinarsi sia l'uovo sia la gallina. Diamo un'occhiata alla storia del software per personal computer negli anni trascorsi dall'uscita del primo PC di IBM; forse c'è qualcosa da scoprire.

Molti pensano che il PC IBM abbia avuto sempre bisogno di PC-DOS. Non è vero. Quando è uscito il primo PC potevate scegliere tra tre sistemi operativi: PC-DOS, Xenix (una debole versione a 8 bit di Unix, pubblicata, e non me lo sto inventando, da Microsoft), e qualcosa chiamato UCSD P-System, che era, se riuscite a crederci, come Java: buon vecchio e lento codice intermedio completamente portabile, circa 20 anni prima di Java.

Quasi nessuno oggi ha mai sentito nominare né XENIX né lo strano sistema dell'Università della California, San Diego (UCSD). Voi giovani probabilmente pensate che sia perché Microsoft ha conquistato il mercato dei piccoli sistemi operativi con la forza del proprio marketing o qualcosa del genere. Assolutamente falso; Microsoft era piccola a quei tempi. La società che aveva i muscoli per il marketing era Digital Research, che produceva un altro sistema operativo. Quindi, perché PC-DOS (poi MS-DOS) ha vinto la corsa tra i tre ?

Prima del PC l'unico vero sistema operativo che potevate comprare era CP/M, anche se il mercato per i computer basati su CP/M, che costavano intorno a 10.000 dollari, era troppo piccolo. Erano macchinosi, cari e non molto amichevoli da usare. Ma chi li comprava lo faceva per usarli come elaboratori di testi, perché si poteva avere un buon word processor, WordStar per CP/M, e con l'Apple II non potevate proprio fare elaborazione di testi (non c'erano le minuscole, tanto per cominciare).

Ora, ecco qualcosa che pochi sanno: anche DOS 1.0 era progettato con un livello di compatibilità con CP/M incorporato. Non solo aveva la sua bella e nuova interfaccia di programmazione, che i programmatori tosti conoscono come INT 21, ma supportava completamente la vecchia interfaccia di programmazione di CPM. Poteva quasi eseguire il software scritto per CP/M. Infatti WordStar e' stato portato sotto DOS cambiando un solo byte nel codice. (I Veri Programmatori potrebbero dirvi anche quale byte, Io me ne sono dimenticato un sacco di tempo fa).

Vale la pena di ripeterlo. WordStar è stato portato sotto DOS modificando un solo byte di codice. Prendetevi tutto il tempo di digerire l'idea.

Là.

Capito ?

DOS era popolare perché aveva del software dal primo giorno. E aveva del software dal primo giorno perché Tim Paterson ha pensato di rendere DOS compatibile con CP/M; in quei tempi bui c'era gente piuttosto preparata sul problema dell'uovo e della gallina.

Avanti veloce. In tutta la storia del PC come piattaforma ci sono stati solo due grossi cambiamenti di paradigma che hanno coinvolto quasi ogni utente: siamo tutti passati a Windows 3.x prima e a Windows 95 dopo. Pochissimi si sono persi per strada passando ad altro. Una cospirazione di Microsoft per conquistare il mondo ? Liberi di pensarlo. Io credo che il motivo sia un altro, più interessante. E che ci riporta all'uovo e alla gallina.

Siamo tutti passati a Windows 3.x. Il particolare importante nell'ultima frase è quel 3. perché non Windows 1.0 ? O Windows 2.0 ? O Windows 286, o Windows 386 arrivato subito dopo ? Perché a Microsoft ci voglino cinque versioni per "farla giusta" ? No.

Il vero motivo è più sottile, e ha a che fare con due arcane caratteristiche hardware apparse per la prima volta sui processori Intel 386, quelli che Windows 3.0 richiedeva per funzionare.

  • Caratteristica uno: i vecchi programmi DOS stampavano sullo schermo scrivendo direttamente nelle celle di memoria corrispondenti alle posizioni sullo schermo. Era il solo modo di produrre output in modo abbastanza veloce da far sembrare buoni i programmi. Ma Windows funzionava in modo grafico. Sui vecchi chip Intel i programmatori di Microsoft non avevano altra scelta che passare in modalità full-screen quando era necessario eseguire programmi DOS. Ma sull'80386 potevano creare blocchi virtuali di memoria e impostare gli interrupt in modo che il sistema operativo venisse notificato ogni volta che un programma tentava di scrivere nella memoria video. Windows poteva a quel punto scrivere il testo equivalente in una finestra grafica istantaneamente.
  • Caratteristica due: i vecchi programmi DOS presumevano di avere l'intero processore a propria disposizione. Per questo non collaboravano facilmente. Ma l'Intel 80386 poteva creare dei PC "virtuali", ognuno capace di emulare un processore 8086 originale, così che i vecchi programmi potessero illudersi di avere l'intero computer tutto per loro, anche mentre altri programmi giravano e credevano la stessa cosa.

Quindi Windows 3.x per l'Intel 386 era la prima versione capace di esegure decentemente più di un programma DOS per volta. (Tecnicamente Windows 386 poteva fare lo stesso, ma i 386 erano poco diffusi e cari fino all'uscita di Windows 3.0.) Windows 3.0 era la prima versione in grado di funzionare in modo decente con tutto il vostro vecchio software.

Windows 95 ? No problem. Una bella interfaccia di programmazione nuova a 32 bit, ma ancora in grado di eseguire perfettamente tutto il vostro vecchio software a 16 bit. Microsoft era ossessionata da questo, e ha speso un sacco di spiccioli per provare ogni vecchio software con Windows 95. Jon Ross, autore di SimCity per Windows 3.x, mi ha detto di aver accidentalmente lasciato un baco in SimCity, che leggeva da un blocco di memoria che aveva appena liberato. Funzionava bene con Windows 3.x, perché quella memoria non andava da nessuna parte. Ma ecco la parte straordinaria: sulle versioni beta di Windows 95 SimCity non funzionava. Microsoft ha scovato il baco e ha aggiunto in Windows 95 del codice che cercava specificamente SimCity. Se SimCity era in esecuzione l'allocatore di memoria funzionava in una modalità speciale, che non liberava la memoria immediatamente. Questo è il livello di ossessione per la compatibilità all'indietro che ha convinto la gente a passare a Windows 95.

A questo punto dovreste avere una vaga idea di come interrompere il ciclo dell'uovo e della gallina: inserite un livello di compatibilià all'indietro che fornisce un vagone di galline o uno di uova, a seconda di come lo guardate, poi sedetevi e ammucchiate i soldi.

Ok. Torniamo alla consegna delle fatture. Ve lo ricordate il problema ? Potete ricevere su quel sistema solo i conti di Con Ed, quindi non lo usate. Come si risolve ? Microsoft non c'è riuscita. PayMyBills e un'altra mezza dozzina di startup di Silicon Valley l'hanno capito tutte insieme. Fornire un livello di compatibilità all'indietro: se un merchant non usa il sistema convincetelo a spedire tutti i maledetti conti a University Avenue, Palo Alto, dove un mucchio di esseri umani in carne e ossa le aprirà e le inserirà nel sistema. Adesso sul loro sistema trovate tutti i vostri conti. Ogni merchant usa il sistema, e gli utenti sono felici di collegarsi per pagare i loro conti, anche se funziona in una stupida modalità compatibile, in cui le banche del circuito Visa spediscono elettronicamente il conto a una stampante, infilano il foglio in una busta, la spediscono a 1500 miglia in California dove viene aperta, gli stupidi volantini pubblicitari per una radio AM "gratis" che costa 9 dollari e 95 vengono buttati in una discarica da qualche parte, e il conto viene inserito al terminale e finisce sul web, dove avrebbe dovuto essere spedito dall'inizio. Ma la modalità compatibile alla fine sparirà, perché PayMyBills, a differenza di Microsoft, riesce ad avere degli utenti per il proprio sistema, e presto potrà andare dalle banche del circuito Visa e dire "Hey, ho 93.400 dei vostri utenti. perché non risparmiate 93.400 dollari ogni mese con una bella connessione diretta al nostro sistema ?" E improvvisamente PayMyBills raccoglie molti utili, mentre Microsoft sta combattendo per trovare la sua seconda compagnia elettrica, magari una che serva lo stato della Georgia, tanto per cambiare.

Le società che non capiscono il problema dell'uovo e della gallina potete pensarle come società che vogliono bollire l'oceano: il loro business plan richiede che 93 milioni di persone collaborino per farlo funzionare. Una delle più incredibilmente stupide idee che abbia mai visto si chiamava ActiveNames. La loro balorda idea consisteva nel convincere tutti a installare una piccola estensione al proprio programma di posta elettronica che avrebbe trovato gli indirizzi di posta elettronica della gente cercandone i nomi presso i loro elenchi centralizzati. Invece di dire alla gente che il vostro e-mail è kermit@sesame-street.com gli dite che il vostro ActiveName è "spolsky", e se vogliono spedirvi e-mail devono installare un piccolo programma. Bzzzzt. Sbagliato. I motivi per cui non funzionerà mai sono talmente tanti che non riesco neppure a contarli.

Conclusione: se siete in un mercato che ha il problema dell'uovo e della gallina è meglio che abbiate una soluzione di compatibilità all'indietro per eliminare il problema, o vi ci vorrà moooolto tempo per raccogliere dei frutti (più o meno l'eternità).

Ci sono un sacco di altre società che hanno riconosciuto il problema e l'hanno risolto in modo intelligente. Quando Transmeta ha presentato la propria CPU è stata la prima volta in mooooolti anni che una società che non fosse Intel ammetteva che se vendete una CPU e volete che milioni di utenti la comprino è meglio che esegua il codice x86. Tutto questo dopo che Hitachi, Motorola, IBM, MIPS, National Semiconductor e chissà quanti altri si sono illusi di poter inventare un microprocessore con un nuovo set di istruzioni. L'architettura di Transmeta suppone dal primo giorno che un qualsiasi business plan che voglia costruire un computer su cui non funzioni Excel non andrà da nessuna parte.



Traduzione dell'articolo originale inglese dal titolo Strategy Letter II: Chicken and Egg Problems  

Joel Spolsky è il fondatore della Fog Creek Software, una piccola ditta di software a New York. Laureato alla Università di Yale, ha lavorato come programmatore e manager presso Microsoft, Viacom e Juno.


I contenuti di queste pagine esprimono opinioni personali dell'autore.
I contenuti sono Copyright  ©1999-2005 di Joel Spolsky. Tutti i diritti riservati.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky