Joel on Software

Joel on Software   Joel ohjelmistoista

 

Lisää suomenkielisiä Joel on Software -artikkeleita.

Lisää englanninkielisiä Joel on Software -artikkeleita.

Lähetä sähköpostia kirjoittajalle (vain englanniksi)

 

Strategiakirje V


Kirjoittanut Joel Spolsky
Kääntänyt Sami Tikka
Muokannut Johannes Päivinen
Kesäkuun 12. 2002

Kun olin lukiossa, kävin kahdella taloustiedon alkeiskurssilla: makrotalous ja mikrotalous. Makrossa oli paljon sellaisia teorioita kuten: "matala työttömyys aiheuttaa inflaatiota," jotka eivät koskaan oikein pitäneet paikkaansa. Mikrossa opetetut asiat sen sijaan olivat viileitä ja hyödyllisiä. Siellä oli paljon kiinnostavia juttuja kysynnän ja tarjonnan suhteista ja nämä jutut oikeasti toimivat todellisuudessa. Esimerkiksi: Jos sinulla on kilpailija, joka laskee hintojaan, tuotteidesi kysyntä putoaa, ellet laske hintojasi yhtä paljon.

Tämän päivän jaksossa kerron, kuinka nuo edellä mainitut jutut selittävät monia asioita eräistä tunnetuista tietotekniikka-alan yrityksistä. Matkan varrella tein mielenkiintoisen huomion avoimista ohjelmista: useimmat yritykset, jotka käyttävät paljon rahaa avoimien ohjelmien kehitykseen, tekevät niin, koska se on niille edullinen liiketoimintastrategia; eivät siksi, että ne olisivat yhtäkkiä kadottaneet uskonsa kapitalismiin ja sen sijaan rakastuneet vapauteen.

Kaikilla markkinoilla olevilla tuotteilla on korvikkeita ja oheistuotteita. Korvike on joku tuote, jonka voit ostaa toisen tuotteen sijaan jos tämä toinen tuote on liian kallis. Kananliha on naudanlihan korvike. Jos olet kanankasvattaja ja naudanlihan hinta nousee, ihmiset ostavat enemmän kananlihaa ja myyntisi kasvaa.

Oheistuote on tuote, jonka yleensä ostat yhdessä toisen tuotteen kanssa. Auto ja bensiini ovat toistensa oheistuotteita. Tietokoneet taas ovat perinteisesti käyttöjärjestelmien oheistuotteita. Ja lastenvahdit ovat ravintolaillallisen oheistuotteita. Jos pikkukaupungin viiden tähden ravintolassa syö  ystävänpäivänä kaksi yhden hinnalla, lastenvahdit varmasti kaksinkertaistavat tuntitaksansa. (Käytännössä kaikki 9-vuotiaatkin joutuvat astumaan palvelukseen.)

Yleensä tuotteen kysyntä kasvaa kun sen oheistuotteiden hinta laskee.

Toistanpa tuon vielä siltä varalta, että olet torkkunut. Tämä on tärkeää. Tuotteen kysyntä kasvaa kun sen oheistuotteiden hinta laskee. Esimerkiksi, jos lennot Miamiin halpenevat, hotellihuoneiden kysyntä Miamissa kasvaa -- koska enemmän ihmisiä lentää Miamiin ja he tarvitsevat hotellihuoneen. Kun tietokoneet halpenevat, useammat ostavat niitä ja koska kaikki tietokoneet tarvitsevat käyttöjärjestelmän, käyttöjärjestelmien kysyntä kasvaa ja se taas tarkoittaa, että käyttöjärjestelmien hinta voi nousta.

Tässä kohdassa ihmiset yleensä yrittävät sekoittaa asioita sanomalla: "Ha! Mutta Linux on ILMAINEN!" OK. Ensinnäkin, kun taloustieteilijä miettii jollekin hintaa, hän ottaa huomioon kaiken, mukaanlukien sellaisetkin aineettomat asiat kuin se aika, joka menee järjestelmän pystyttämiseen, työntekijöiden uudelleenkouluttamiseen ja olemassaolevien käytäntöjen muuttamiseen. Kaikki ne asiat, joita kutsumme nimellä kokonaiskustannukset eli "total cost of ownership."

Toiseksi, käyttämällä ilmaisuusperustetta nämä intoilijat yrittävät uskotella, että he eivät ole markkinatalouden lakien alaisia, koska heillä on tämä mukava nolla, jolla he voivat kertoa kaiken. Esimerkki. Kun Slashdot kysyi Linux-kehittäjä Moshe Barilta pitäisikö Linux-ytimen uusien versioiden olla yhteensopivia tämänhetkisten laiteajureiden kanssa, hän vastasi, että niiden ei tarvitse. "Kaupalliset ohjelmistot maksavat 50-200 US dollaria per debugattu koodirivi. Avoimilla ohjelmilla ei ole tällaista hintaa." Moshe jatkaa väittämällä, että sillä ei ole mitään väliä vaikka vanhat laiteajurit eivät enää toimi yhteen uusien Linux-ytimien kanssa, koska ajurien uudelleenkirjoittaminen ei maksa mitään. Tämä on täysin väärin. Hän itse asiassa väittää, että pieni määrä ohjelmointiaikaa, jolla ytimestä tehtäisiin taaksepäin yhteensopiva, on sama kuin valtava määrä ohjelmointiaikaa, joka menisi kaikkien ajureiden uudelleenkirjoittamiseen, koska molemmat pitää kertoa niiden kustannuksella, jonka hän uskoo olevan nolla. Tämä on ilmiselvää päiväunta. Ne tuhannet tai miljoonat tunnit, jotka koodaajien pitää käyttää ajureiden korjaamiseen, ovat jostain pois. Ja ennen kuin ajurit on korjattu, Linux on alakynnessä muihin käyttöjärjestelmiin nähden, koska se ei tue olemassaolevia laitteita. Eikö olisi parempi käyttää kaikki tuo "ilmainen" ohjelmointityö Gnomen parantamiseen? Tai uusien laitteiden tukemiseen?

Debugattu, toimiva koodi EI ole ilmaista, on se sitten kaupallista tai avointa. Vaikka siitä ei maksettaisikaan käteistä rahaa, se maksaa aikaa tai menetettyjä tilaisuuksia. Maailmassa on vain rajallinen määrä vapaaehtoisia ohjelmoijia tekemään avointa koodia. Jokainen avoin ohjelmistoprojekti kilpailee toisten projektien kanssa samoista rajallisista ohjemoijaresursseista ja vain seksikkäimmät projektit houkuttelevat enemmän koodaajia kuin heille on käyttöä. Yhteenvetona voisin sanoa, etten pidä siitä kun jotkut yrittävät todistaa pähkähulluja asioita ilmaisista ohjelmista vain koska eivät ymmärrä, että nollalla ei voi jakaa. Tai ainakaan minä en voi.

[Image]Avointa ohjelmistokehitystä ei ole vapautettu sen enempää painovoiman kuin markkinataloudenkaan kahleista. Tämän ovat todistaneet Eazel, ArsDigita, Yritys Entiseltä Nimeltään VA Linux ja monet muut. Mutta silti on vielä jotain, mitä hyvin harvat avoimen softan maailmassa ymmärtävät: monet hyvin suuret pörssiyhtiöt, joilla on vastuullaan rahan tekeminen osakkeenomistajilleen, ovat investoimassa paljon rahaa avoimiin ohjelmistoihin. Tämä tapahtuu yleensä palkkaamalla ohjelmoijia kirjoittamaan avointa koodia. Kaikki tämä selittyy oheistuotteilla.

Kerrataan vielä: tuotteen kysyntä kasvaa kun sen oheistuotteen hinta laskee. Yleensä yrityksen strategia on saada oheistuotteiden hinta niin alas kuin mahdollista. Teoreettisesti matalin kestävä hinta on "hyödykkeen hinta" -- hinta, joka muodostuu, kun usean kilpailijan tuotteet ovat olennaisesti samanlaiset. Joten:
 


Fiksut yritykset yrittävät muuttaa omien tuotteidensa oheistuotteet hyödykkeiksi.

Jos onnistut tekemään tämän, tuotteidesi kysyntä lisääntyy ja voit nostaa hintoja ja tehdä enemmän rahaa.

Kun IBM suunnitteli PC:n arkkitehtuurin, he käyttivät hyllytavaroina saatavia osia sen sijaan, että olisivat tehneet kaiken itse. He myös tarkoin dokumentoivat kaikkien osien väliset rajapinnat (vallankumouksellisessa) IBM-PC Technical Reference Manual:issa. Miksi? Jotta muut valmistajat pääsisivät mukaan bileisiin. Jos vain olet rajapinnaltasi yhteensopiva, tuotteitasi voidaan käyttää kaikissa PC:issä. IBM:n tarkoitus oli tehdä lisälaitteista hyödykkeitä. Lisälaitteet taas ovat PC:n oheistuotteita. IBM onnistui siinä. Lyhyessä ajassa tsiljoonia firmoja tuli markkinoille tarjoten muistikortteja, kovalevyjä, grafiikkakortteja, printtereitä jne. Halvat lisälaitteet lisäsivät PC-koneiden kysyntää.

Kun IBM lisensoi Microsoftilta PC-DOS käyttöjärjestelmän, Microsoft varoi myymästä yksinoikeuden myöntävää lisenssiä. Tämä mahdollisti saman lisenssin myymisen Compaqille ja sadoille muille OEM-valmistajille, jotka kaikki olivat laillisesti kloonanneet IBM PC:n käyttäen IBM:n omia dokumentteja. Microsoftin tarkoitus oli tehdä PC:istä hyödykkeitä. Hyvin pian PC:t olivatkin kaikkialla ja niiden jatkuvasti laskevat hinnat, jatkuvasti kasvava teho ja olemattomat katteet tekivät yhä vaikeammaksi saada niistä voittoa. Halvat hinnat tietysti kasvattivat kysyntää. Kasvanut kysyntä kasvatti PC:n oheistuotteen, MS-DOS:n kysyntää. Yleensä mitä suurempi on tuotteen kysyntä, sitä enemmän rahaa se tuottaa. Ja nimenomaan tästä syystä Bill Gates voisi vaikka ostaa Ruotsin, ja sinä et.

Tänä vuonna Microsoft yrittää taas tehdä saman tempun: heidän uusi pelikonsolinsa, XBox, käyttää halpaa PC-rautaa mittatilaustyönä tehtyjen osien sijaan. Teoriana (selitetty tässä kirjassa) on, että hyödykeosien hinta laskee vuosi vuodelta, joten XBoxin hinta laskee niiden mukana. Ikävä kyllä näyttää siltä, että suunnitelma onkin lyönyt näpeille: halpa PC-rauta näyttää olevan jo nyt niin halpaa, että XBoxin valmistaminen ei halpene niin nopeasti kuin Microsoft haluaisi. Microsoftin strategian toinen osa oli käyttää DirectX:ää, grafiikkakirjastoa, jonka avulla voidaan kirjoittaa koodia, joka toimii kaikilla videopiireillä. Tavoitteena on tehdä videopiireistä hyödykkeitä, jotta niiden hinnat halpenevat, jotta pelejä myydään enemmän ja pelit ovat ne, joista kunnon voitot saadaan. No, miksi  maailman videopiirivalmistajat eivät yritä jotenkin tehdä peleistä hyödykkeitä? Koska se on paljon vaikeampaa. Vaikka Halo-pelin kauppa käykin kuumana, sillä ei oikeastaan ole korvikkeita. Jos olisit menossa elokuviin katsomaan Tähtien Sota: Kloonien hyökkäys -elokuvaa, voisitko päättää yhtäkkiä, että ehkä tyytyisitkin Woody Allenin uuteen leffaan? Ne voivat molemmat olla erinomaisia elokuvia, mutta ne eivät vain ole toistensa korvikkeita. Kumpi siis mieluummin olisit: pelien tekijä vai videopiirivalmistaja?

Tee oheistuotteistasi hyödykkeitä.

Tämän strategian ymmärtäminen auttaa hyvin pitkälle ymmärtämään miksi kaupalliset yritykset antavat paljon rahaa avoimien ohjelmien kehittämiseen. Käydäänpä läpi joitakin tapauksia.

Otsikko: IBM käyttää miljoonia avoimien ohjelmien kehittämiseen.

Tarua: He tekevät näin koska Lou Gerstner luki GNU Manifeston ja tuli siihen tulokseen, että hän ei pidä kapitalismista.

Totta: He tekevät näin koska IBM on muuttumassa IT-alan konsulttiyritykseksi. IT-konsultointi on yritysohjelmistojen oheistuote. IBM:n täytyy siis muuttaa yritysohjelmistot hyödykkeiksi ja paras tapa tehdä tämä on tukea avoimia ohjelmia. Ja katso: heidän konsultointidivisioonansa tekee tajuttomia voittoja.

Otsikko: Netscape julkaisee selaimensa koodin avoimella lisenssillä.

Tarua: He tekevät tämän saadakseen ilmaista koodia nettikahviloissa istuvilta nörteiltä ympäri maailmaa.

Totta: He tekevät tämän koska he haluavat tehdä selaimesta hyödykkeen.

Tämä on ollut Netscapen strategia alusta alkaen. Katsokaa ihan ensimmäistä Netscapen lehdistötiedotetta: selain on "freewarea", ilmainen. Netscape jakoi ilmaiseksi selaintaan, jotta he voisivat tehdä rahaa myymällä palvelimia. Selaimet ja palvelimet ovat klassinen esimerkki oheistuotteista. Mitä halvempia selaimet ovat, sitä enemmän palvelimia myyt. Tämä piti erityisen hyvin paikkansa lokakuussa 1994. (Netscape oli ällistynyt kun MCI käveli ovesta sisään ja löi niin paljon rahaa pöytään, että he tajusivat, että selaimellakin voisi tehdä rahaa. Business plan ei kuitenkaan vaatinut tätä.)

Netscape julkaisi Mozillan avoimella lisenssillä, koska he olivat huomanneet tilaisuuden kehittää selainta halvemmalla. He saisivat hyödykkeen edut entistä pienemmillä kustannuksilla.

Myöhemmin AOL/Time Warner osti Netscapen. Palvelinohjelmistot, joiden piti hyötyä hyödykkeiksi muuttuneista selaimista, eivät kuitenkaan tehneet kovin paljon rahaa ja niinpä ne heitettiin yli laidan. Miksi siis AOL/Time Warner jatkaisi avoimen kehityksen tukemista?

AOL/Time Warner on yritys, joka toimii viihdeteollisuudessa. Viihdeteollisuuden yritykset ovat kaikenlaisten viihteen siirtokanavien oheistuotteita, mukaanlukien verkkoselaimet. Tämän jättiläisfirman tavoitteena on tehdä viihteen siirrosta - selaimista - hyödykkeitä, joista kukaan ei voi pyytää rahaa.

Myönnän kyllä, että perusteluissani on se kauneusvirhe, että myös Internet Explorer on ilmainen. Myös Microsoft haluaa tehdä selaimista hyödykkeitä, jotta he voivat myydä käyttöjärjestelmäänsä niin pöytä- kuin palvelinkoneisiinkin. He menivät vieläkin pidemmälle ja kehittivät joukon rakennuspalikoita, joista kuka hyvänsä pystyy tekaisemaan oman verkkoselaimen. Neoplanet, AOL ja Juno käyttivät näitä palikoita omien selaintensa rakentamiseen. Jos IE on ilmainen, mitä hyötyä Netscapelle on tehdä selaimesta "vieläkin halvempi"? Se on ennaltaehkäisevä siirto. Heidän täytyy estää Microsoftia saamasta täydellistä monopolia verkkoselaimissa, koska se antaisi, ainakin teoriassa, Microsoftille tilaisuuden nostaa verkossa surffailun hintaa jollakin muulla tavalla, vaikkapa nostamalla Windowsin hintaa.

(Perusteluni ovat kyllä vieläkin huterammat, koska on melko selvää, että Barksdalen johtama Netscape ei tarkkaan tiennyt mitä oli tekemässä. Todennäköisempi selitys Netscapen tekosille on, että ylimmässä johdossa oli sellaisia tumpeloita, että heillä ei ollut muuta vaihtoehtoa kuin tehdä mitä hyvänsä koodaajat keksivät. Koodaajat olivat häkkereitä, eivät taloustieteilijöitä, ja luultavasti vahingossa keksivät suunnitelman, joka sopi strategiaan. Mutta yrittäkäämme nähdä asia parhaassa valossa.)

Otsikko: Transmeta palkkasi Linuksen ja maksaa hänelle Linuxin virittelystä.

Tarua: He tekivät sen vain saadakseen julkisuutta. Olisitko muka muuten kuullutkaan Transmetasta?

Totta: Transmeta valmistaa prosessoreita. Prosessorin luonnollinen oheistuote on käyttöjärjestelmä. Transmeta haluaa käyttöjärjestelmien olevan hyödykkeitä.

Otsikko: Sun ja HP maksavat Ximianille Gnomen virittelystä.

Tarua: Sun ja HP tukevat vapaita ohjelmia koska he pitävät basaareista eivätkä katedraaleista.

Totta: Sun ja HP valmistavat tietokoneita, rautaa. He tekevät laatikoita. Tehdäkseen rahaa pöytäkoneilla, heille on välttämätöntä, että käyttöliittymä, joka on pöytäkoneiden oheistuote, on hyödyke. Miksi he eivät käytä Ximianille antamaansa rahaa kehittääkseen oman ikkunoidun käyttöliittymän? He yrittivät sitä jo (Sunilla oli NeWS ja HP:lla New Wave), mutta kummatkin ovat pohjimmiltaan rautavalmistajia, joilla ei ole erityisiä taitoja kehittää softaa. Lisäksi heille on välttämätöntä, että ikkunointijärjestelmä on halpa hyödyke, ei kaupallinen lisäarvo, jonka kehittämisestä heidän pitää maksaa. He siis palkkasivat Ximianin kaverit tekemään tämän. Ja samasta syystä Sun osti Star Officen ja julkaisi sen avoimella lisenssillä: kun ohjelmista tulee hyödykkeitä, Sun tekee rahaa tietokoneilla.

Otsikko: Sun kehittää Javan; Uusi "tavukoodi"-järjestelmä tekee mahdolliseksi kirjoittaa koodi kerran ja ajaa missä vain.

Tavukoodi-idea ei ole uusi -- ohjelmoijat ovat aina yrittäneet saada koodinsa toimimaan niin monella koneella kuin mahdollista. (Niin tehdään hyödykkeitä oheistuotteista.) Jo vuosia sitten Microsoftilla oli oma p-koodi -kääntäjänsä ja siirrettävä ikkunointirajapinta, jonka ansiosta Excel toimii Macissä, Windowsissa ja OS/2:ssa Motorola-, Intel-, Alpha-, MIPS- ja PowerPC-alustoilla. Quarkilla on koodia, jonka ansiosta Macintosh-koodi toimii Windowsissa. C-ohjelmointikieltä kuvataan joskus laitteistoriippumattomaksi assembleriksi. Tässä ei ole ohjelmoijille mitään uutta.

Jos saat ohjelmasi toimimaan kaikkialla, olet tehnyt laitteistosta hyödykkeen. Kun laitteiston hinta putoaa, markkina kasvaa, kasvattaen ohjelmistojen kysyntää (ja jättäen asiakkaille enemmän rahaa käytettäväksi ohjelmiin, jotka voivat nyt olla kalliimpia.)

Sunin WORA-innostus (Write Once, Run Anywhere) on vähintään outoa, koska Sun on laitevalmistaja. Kaikkein viimeiseksi heidän pitäisi haluta tehdä hyödykkeitä tietokonelaitteista.

Huuuuuuuuuuuuuuuupsista!

Sun on tietotekniikka-alan ennalta-arvaamattomin peluri. He valitsevat strategiansa ennemmin Microsoft-vihansa kuin oman etunsa perusteella, eivätkä pysty näkemään omaa pelkoaan ja inhoaan pidemmälle. Sunin kaksi strategiaa ovat (a) tehdä ohjelmistoista hyödykkeitä tukemalla ja puhumalla vapaiden ohjelmien puolesta (Star Office, Linux, Apache, Gnome, jne.) ja (b) tehdä laitteista hyödykkeitä edistämällä Javaa, sen tavukoodiin perustuvaa arkkitehtuuria ja write once, run anywhere -ideaa. Hyvä on, Sun, tuntsarikysymys: kun musiikki loppuu, mistä löydät tuolin, jolle istua? Ilman kaupallisesti hyödynnettäviä etuja laitteissa ja ohjelmistoissa, teidän täytyy myydä molempia hyödykehinnalla, joka niukin naukin kattaa halpojen meksikolaisten tehtaiden kulut, mutta tuskin Piilaakson tyylikkäitä toimistoja.

"Mutta Joel!", sanoo Jared. "Sun yrittää tehdä hyödykkeen käyttöjärjestelmästä, kuten Transmeta. Ei laitteistoista." Ehkäpä, mutta tosiasia on, että Javan tavukoodi tekee hyödykkeen myös laitteista ja se tulee aiheuttamaan Sunille melkoisesti päänvaivaa.

Näistä kaikista esimerkeistä on tärkeää huomata, että laitteista on helppoa tehdä hyödyke (ei tarvitse muuta kuin kirjoittaa ohut laitteiston abstrahoiva kerros koodia, aivan kuten Windows NT:n HAL, joka on todella pieni). Laitteiden on päinvastoin uskomattoman hankalaa tehdä ohjelmista hyödykkeitä. Yhtä ohjelmaa ei voi korvata toisella, kuten Star Officen markkinointitiimi on pikkuhiljaa huomaamassa. Vaikka tuote on ilmainen, asiakkaille tulee silti kuluja jos he haluavat vaihtaa Microsoft Officen. Ennen kuin vaihdon kustannukset ovat nolla, työpöytäohjelmistot eivät ole oikeita hyödykkeitä. Jopa pienimmät erot kahden ohjelman välillä voivat tehdä vaihdon hankalaksi. Siitäkin huolimatta, että Mozillassa on kaikki toiminnot, jotka tarvitsen ja oikeastaan haluaisin käyttää sitä, jo siitäkin syystä, että pääsisin eroon popup-mainoksista, en silti voi. Olen liian tottunut siihen, että Alt+D vie minut osoitekenttään. Yksi pieni ero ja se ei enää olekaan hyödyke. Toisaalta olen ottanut kovalevyjä IBM:n tietokoneista, tökännyt ne Dellin koneisiin ja boom, järjestelmä on bootannut ja toiminut täydellisesti, aivan kuin konetta ei olisikaan vaihdettu.

Amos Michelson, Creo:n toimitusjohtaja, kertoi minulle, että hänen yrityksessään jokaisen työntekijän pitää suorittaa kurssi nimeltä "Talousajattelu." Mahtava idea. Jopa mikrotalouden yksinkertaisimmat käsitteet auttavat paljon joidenkin aikamme murrosten ymmärtämisessä.



Artikkeli on alunperin esiintynyt englanniksi nimellä Strategy Letter V  

Joel Spolsky on Fog Creek Softwaren, pienen New Yorkilaisen ohjelmistoyrityksen, perustaja. Hän valmistui Yalen yliopistosta ja on työskennellyt ohjelmoijana ja esimiehenä Microsoftilla, Viacomilla ja Junolla.


Nämä sivut esittävät vain yhden henkilön mielipiteitä.
Kaikki sisältö Copyright ©1999-2005 Joel Spolsky. Kaikki oikeudet pidätetään.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky