Necessary Preconditions for the Bazaar Style

Milloin basaari toimii

On hyvä, jos löydetään letkeä tapa muotoilla otsikko. - Jopi

Välttämättömät edellytykset basaarityylille


Early reviewers and test audiences for this essay consistently raised questions about the preconditions for successful bazaar-style development, including both the qualifications of the project leader and the state of code at the time one goes public and starts to try to build a co-developer community.

Tämän kirjoituksen luonnosvaiheen lukijat ja koeyleisöt kysyivät, millaisissa oloissa basaarityylinen ohjelmistokehitys voi toimia. He pohtivat työn vetäjän pätevyysvaatimuksia ja sitä, missä ohjelmistokehityksen vaiheessa ohjelman lähdekoodin voi julkaista ja kehittäjien yhteisöä voi käydä rakentamaan.

'Reviewer' ei ole tässä arvostelija. - Jopi

"Tämän esseen ensimmäiset arvostelijat ja koeyleisö esittivät johdonmukaisesti samoja kysymyksiä menestyksekkään basaarityylisen kehitysprojektin edellytyksistä. Kysymykset edellytyksistä liittyivät projektin vetäjän pätevyyteen, koodin kehitystilanteeseen julkaisuhetkellä ja hetkeen jolloin kannattaa aloittaa apukehittäjien yhteisön luominen."


It's fairly clear that one cannot code from the ground up in bazaar style [IN]. One can test, debug and improve in bazaar style, but it would be very hard to originate a project in bazaar mode. Linus didn't try it. I didn't either. Your nascent developer community needs to have something runnable and testable to play with.

On varsin ilmeistä, että ohjelmiston kehitystä ei voi aloittaa aivan nollapisteestä basaarityylillä [IN]. Tyyli sopii ohjelmiston testaukseen, virheiden korjaamiseen ja paranteluun, mutta sillä olisi vaikeaa polkaista kehityshanketta käyntiin. Linus ei yrittänyt sitä, enkä minäkään. Orastava kehittäjäyhteisö tarvitsee lähtökohdaksi ajokelpoisen ohjelman, jota voi testata ja jolla voi leikkiä.


When you start community-building, what you need to be able to present is a plausible promise. Your program doesn't have to work particularly well. It can be crude, buggy, incomplete, and poorly documented. What it must not fail to do is (a) run, and (b) convince potential co-developers that it can be evolved into something really neat in the foreseeable future.

Alkuvaiheessa osallistujille on pystyttävä antamaan lupaava vaikutelma. Ohjelman ei vielä tarvitse toimia erityisen hyvin. Se voi olla vielä karkea, siinä voi olla virheitä, ja se voi olla keskeneräinen ja puutteellisesti dokumentoitu. Kuitenkin sen on (a) oltava ajettavissa ja (b) saatava yhteistyökumppanit uskomaan, että tulossa on jotain todella hienoa.

"Foreseeable" jätin pois, toimii näinkin


Linux and fetchmail both went public with strong, attractive basic designs. Many people thinking about the bazaar model as I have presented it have correctly considered this critical, then jumped from that to the conclusion that a high degree of design intuition and cleverness in the project leader is indispensable.

Kun Linuxin ja Fetchmailin ensimmäiset versiot julkaistiin, kummankin perusrakenne oli vahva ja kiinnostava. Tätä onkin pidetty aivan oikein ensiarvoisen tärkeänä hankkeiden onnistumiselle, kun on pohdittu basaarimallin hyödyntämistä. On kuitenkin hätäistä vetää sellaista johtopäätöstä, että kehitystyön vetäjältä vaaditaan huippuluokan intuitiota ja älyä.


But Linus got his design from Unix. I got mine initially from the ancestral popclient (though it would later change a great deal, much more proportionately speaking than has Linux). So does the leader/coordinator for a bazaar-style effort really have to have exceptional design talent, or can he get by through leveraging the design talent of others?

On muistettava, että Linus käytti hyväkseen Unixin perusrakennetta. Itse tukeuduin varhaiseen POP-asiakasohjelmaan, joka tosin koki sitten suhteellisesti suurempia muodonmuutoksia kuin Linux. Onko basaarityylillä toteutetun hankkeen vetäjän tai koordinaattorin oltava erityisen lahjakas ohjelmistosuunnittelija, vai voiko hanke onnistua muiden osallistujien taitojen varassa?

"ancestral popclient" - esikuvana toiminut ohjelma; idean lainaajana toiminut ohjelma; kommentti "omata"-verbin käyttöön - ei ole "epäsuomea", vaan tietyissä tapauksissa, kuten tässä sitä voisi harkiten käyttää, mutta toimii ilmankin ;-)


I think it is not critical that the coordinator be able to originate designs of exceptional brilliance, but it is absolutely critical that the coordinator be able to recognize good design ideas from others.

Mielestäni olennaista ei ole se, että koordinaattori pystyy itse häikäisevään ohjelmistosuunnitteluun, vaan se että hän pystyy arvioimaan, mitkä toisten tuottamista ideoista ovat hyviä.


Both the Linux and fetchmail projects show evidence of this. Linus, while not (as previously discussed) a spectacularly original designer, has displayed a powerful knack for recognizing good design and integrating it into the Linux kernel. And I have already described how the single most powerful design idea in fetchmail (SMTP forwarding) came from somebody else.

Tätä väitettä voidaan perustella sekä Linux- että Fetchmail-projektilla. Kuten sanottua, Linus ei ole ollut huikean omintakeinen ohjelmistosuunnittelijana, mutta hänellä on ollut armoitettu kyky tunnistaa hyviä suunnitteluideoita ja hyödyntää niitä Linuxin ytimessä. Vastaavasti Fetchmailin tärkein idea, SMTP-välitys, ei ollut minun keksintöni.


Early audiences of this essay complimented me by suggesting that I am prone to undervalue design originality in bazaar projects because I have a lot of it myself, and therefore take it for granted. There may be some truth to this; design (as opposed to coding or debugging) is certainly my strongest skill.

Tämän esseen luonnosvaiheen lukijat arvelivat kohteliaasti, että saatan aliarvioida basaarimallin ohjelmistosuunnittelun omintakeisuutta, koska olen itse omintakeinen ja otan sen itsestäänselvyytenä. Siinä voi olla perää, koska ohjelmistosuunnittelu on varmasti vahvin puoleni, toisin kuin ohjelmointi ja virheiden korjaaminen.


But the problem with being clever and original in software design is that it gets to be a habit—you start reflexively making things cute and complicated when you should be keeping them robust and simple. I have had projects crash on me because I made this mistake, but I managed to avoid this with fetchmail.

Nokkelassa ja luovassa ohjelmistosuunnittelussa on se ongelma, että siitä voi tulla tapa. Asiaa ajattelematta alkaa hakea silmää viehättäviä ja monimutkaisia ratkaisuja silloinkin, kun pitäisi tavoitella vakautta ja yksinkertaisuutta. Joitakin omia projektejani on kaatunut siihen, että olen tehnyt tällaisen virheen, mutta Fetchmailin kehityksessä onnistuin välttämään sen.


So I believe the fetchmail project succeeded partly because I restrained my tendency to be clever; this argues (at least) against design originality being essential for successful bazaar projects. And consider Linux. Suppose Linus Torvalds had been trying to pull off fundamental innovations in operating system design during the development; does it seem at all likely that the resulting kernel would be as stable and successful as what we have?

Fetchmail taisi onnistua osaksi sen ansiosta, että en sortunut viisasteluun. Voi siis sanoa, että ohjelmistosuunnittelun omaperäisyys ei ole välttämätöntä basaarimallissa. Ajatellaanpa vaikka, miten olisi käynyt jos Linus Torvalds olisi kehitystyössään yrittänyt luoda perustavaa laatua olevia käyttöjärjestelmäsuunnittelun innovaatioita. Tuskinpa meillä silloin olisi nykyisen kaltaista vakaata, laajaan käyttöön levinnyttä ydintä.

Korjattu virhe: 'pull off fundamental innovations' ei tarkoita innovaatioiden riisumista, vaan niiden toteuttamista (yllättäen, ikään kuin hatusta vetämällä). - Jopi

"Fundamental innovations" - keksinnöt, perusteet, innovaatiot?


A certain base level of design and coding skill is required, of course, but I expect almost anybody seriously thinking of launching a bazaar effort will already be above that minimum. The open-source community's internal market in reputation exerts subtle pressure on people not to launch development efforts they're not competent to follow through on. So far this seems to have worked pretty well.

Totta kai tarvitaan jonkinlainen perustason tietämys ohjelmistosuunnittelusta ja ohjelmoinnista. Jokainen joka harkitsee basaarityylin kehityshankkeen käynnistämistä, on luultavasti kuitenkin edistynyt jo paljon pidemmälle. Avoimen lähdekoodin yhteisössä toimivat maineen sisämarkkinat ohjaavat varomaan sellaisten hankkeiden lanseeraamista, joiden loppuun saattamiseen omat kyvyt eivät riitäkään. Toistaiseksi tämä näyttää toimineen hyvin.


There is another kind of skill not normally associated with software development which I think is as important as design cleverness to bazaar projects—and it may be more important. A bazaar project coordinator or leader must have good people and communications skills.

On kuitenkin taitoja, joita ei tavallisesti liitetä ohjelmistosuunnitteluun ja jotka ovat basaariprojekteissa mielestäni yhtä tärkeitä tai ehkä tärkeämpiäkin kuin suunnitteluäly. Basaariprojektin koordinaattorilla tai vetäjällä on oltava hyvät ihmissuhde- ja viestintätaidot.


This should be obvious. In order to build a development community, you need to attract people, interest them in what you're doing, and keep them happy about the amount of work they're doing. Technical sizzle will go a long way towards accomplishing this, but it's far from the whole story. The personality you project matters, too.

Senhän pitäisi olla itsestään selvää. Jotta voi muodostaa kehittäjäyhteisön, on vedettävä mukaan ihmisiä, herätettävä heidän mielenkiintonsa ja pidettävä heidät tyytyväisinä työn määrään. Tekniikan uudistamisessa syntyvä kuhina auttaa paljon, mutta se ei riitä. Projektin vetäjän itsestään antama vaikutelma on tärkeää sekin.

"Technical sizzle" - tekninen läppä; tässä tarvitaan jokin ohjelmointiyhteisöille yleinen puheenparsi; sinä-passiivi ei ole suosikkini, mutta sitä on käytetty muiden suomentamissa kappaleissa; sinä-passiivista yritetään päästä eroon, nyt se rupeaa jo käymään niin vähiin, ettei iske silmään, vaan tuo paikoin vaihtelua, teos puhuttelee lukijaa (saa korvata sinä-passiivit loppuun asti pois)


It is not a coincidence that Linus is a nice guy who makes people like him and want to help him. It's not a coincidence that I'm an energetic extrovert who enjoys working a crowd and has some of the delivery and instincts of a stand-up comic. To make the bazaar model work, it helps enormously if you have at least a little skill at charming people.

Ei ole mikään sattuma, että Linus on mukava heppu, joka saa muut pitämään itsestään ja tarjoamaan apua. Eikä ole sattumaa, että itse olen energinen ekstrovertti; minusta on mukavaa innostaa joukkoja, ja siinä auttavat synnynnäisen lavakoomikon vaistot. Basaarityylin työnjohdossa on suurta etua, jos osaa edes vähän hurmata ihmisiä.

Huom. Working a crowd on mitä pop-tähti tai poliitikko tekee yleisölleen innostaessaan sitä, se ei ole samaa kuin working with a crowd. - Jopi


Katedraali ja basaari: Luku10 (last edited 2009-04-07 03:10:35 by b305)