in Gelezen

Scott Rosenberg: Dreaming in code

dreaming in code kaftDreaming in code is een boek over software ontwikkelen. Om het leuk te houden heeft Scott Rosenberg drie jaar lang de bouw van Chandler, een open source Personal Information Manager gevolgd, beschrijft hij gedetailleerd hoe dat ging en maakt hij allerlei uitstapjes naar theorie?ɬ´n over software-ontwikkeling, internet en stuff that matters.

In het begin raakte ik een beetje de weg kwijt. Het boek is opgedeeld in allemaal redelijk kleine passages en die gaan soms qua onderwerp alle kanten op. Als je er eenmaal een beetje in zit komt het allemaal goed. Sterker: het wordt een pageturner, als je ook maar enigszins ge?ɬØnteresseerd bent in dat prachtige complexe proces van software uitdenken, ontwerpen, ontwikkelen, herontwerpen, repareren, herontwerpen, ontwikkelen, vervolmaken, releasen, beheren, managen, herontwerpen, marketen etc…

OSAF, de Open Source Applications Foundation, is een bedrijfje opgericht door Mitch Kapor, oprichter van Lotus. Kapor heeft een droom: een personal information manager waar je echt je leven mee onder controle kan houden, die zo flexibel is dat hij aan al je wensen tegemoet komt en die *in ieder geval beter is dan Outlook en Exchange*. En dan natuurlijk open source, want: dat zou de snelheid van bouwen kunnen verhogen, komt de kwaliteit ten goede en is geek-vriendelijk. Overigens was eerst het plan om een applicatie te maken waar mee je je muziekcollectie kunt beheren. Sorry? Dat doe je toch als je zestien bent? Download.com heeft terwijl ik dit schrijf al 318 Music Managers..

Wat volgt is een redelijk dramatisch verhaal over hoe Chandler (de werknaam) heeeeel langzaam tot stand komt. Begonnen in 2003, de stand van zaken is terwijl ik dit schrijf: in november 2006 is Chandler 0.7alpha4 gereleased, terwijl de oorspronkelijke verwachting ongeveer was dat de 1.0 versie in 2005 opgeleverd zou worden. Pikant detail: 0.7alpha5 zou in juni 2007 worden gereleased en vandaag is het 1 juli. Geen onbekend verhaal in de software wereld en daarom extra mooi om van dichtbij te volgen.

Het project begint met een aantal cracks, die tientallen jaren software-ervaring hebben met Kapor aan de leiding, die schatrijk is geworden door de verkoop van Lotus en wel wat geld over heeft voor een verzetje. Dat kan alleen maar een succesverhaal worden zou je zeggen. Wie schetst mijn verbazing: het is een bedrijf met echte mensen. Echte mensen die ontwerpfouten maken, die vaderschapsverlof nemen, die doordraaien omdat ze in een scheiding liggen, die geen beslissingen durven nemen of eindeloos terugkomen op gemaakte keuzes en die ieder hun eigen stokpaardjes erdoor willen drukken. En die na 4 jaar dus nog geen werkend product hebben opgeleverd.

Tussen de verhaallijn door maakt Rosenberg uitstapjes naar verschillende theorieen over software-ontwikkeling en beheer: CMM, watervalmodel, agile software development zoals SCRUM en Xtreme Programming en niet te vergeten de Mythical Man Month van Frederick P. Brooks.

Mooier nog zijn de wat meer praktische observaties uit de software wereld:

  • Linus Torvalds stelling: “Nobody should start to undertake a large project”. Begin met iets kleins en verwacht nooit dat het groot zal worden. Mooi toegepast in de producten van 37signals en haar ontwikkelmethode Getting Real, mooi verwoord in deze presentatie op Slideshare.
  • De pijn van het hergebruiken van software: ondanks alle heftige component based development strategieen lukt het ons maar moeizaam. Wordt dat anders met web services?
  • YAGNI: You Aren’t Gonna Need It, een fraai principe als iemand weer eens een nieuwe functionaliteit bedenkt die de planning in de war gooit en eigenlijk geen toegevoegde waarde heeft.
  • Mijn favoriet: “When the cry of “let’s build it ourselves!” arises, geeks are all too happy to rally and cheer”. Hoe vaak heb ik niet meegemaakt dat er honderden applicaties beschikbaar waren om iets op te lossen, en dat men toch in staat bleek net iets anders te willen en het dan maar zelf te bouwen met als gevolg: mooie beloftes van: “dat kan ik in een uur in elkaar draaien”, enorm veel verloren tijd omdat je opnieuw bouwt wat er al lang is en beloftes en niet te beheren applicaties waar geen enkele documentatie bevatten en die langzaam uitsterven na het vertrek van de bouwer. Grrrrrr..

Mijn eigen observaties:

  • telkens als een nieuwe persoon aangenomen wordt op het project zorgt dat voor een boost in de ontwikkeling: Mimi Yin zorgt voor een versnelling van de user interface, Andi Vajda zorgt voor keuzes en snelheid in de database, Donn Denman die de Chandler Presentation and Interaction Architecture vorm geeft en Lisa Dusseault die WebDav standaarden inbrengt. Tegelijkertijd worden daar ook gemaakte keuzes mee overhoop gegooid.
  • ze willen teveel: Chandler ontstond vanuit een prachtvisie maar is nu nog niet op het punt dat je daar iets concreets van kan zien. Want: hoe abstracter je visie is, des te meer verschillende meningen er zullen zijn over de invulling..
  • ze zijn intern gericht: terwijl web2.0 ontstond, iedereen webbased applicaties ging gebruiken, firefox een grote vlucht nam en gebruikers prima om leerden te gaan met rss en dergelijke, was OSAF aan het nadenken over de Chandler Presentation and Interaction Architecture, whatever that may be.

En dan Chandler het product: in 0.7alpha4 werkt nog veel niet, maar heeft het de potentie een waanzinnig succes te worden? Tsja.. wat ik zie is een gewone agenda. In 2002 overwoog men webbased te gaan of een plugin van mozilla te worden. Mijns inziens was dat een uitstekende keuze geweest, aangezien desktop applicaties imho ten dode zijn opgeschreven.. In het boek worden allerlei features genoemd, waar ik helemaal niet op zit te wachten (en dan beschouw ik mezelf nog als een superuser..). Ik zit overigens wel te wachten op een fatsoenlijke manier om mijn agenda op mijn telefoon, op mijn computer, op mijn kantoor en bij mijn opdrachtgevers fatsoenlijk te syncen. Maar als het ontwikkeltempo van Chandler zo doorgaat, ben ik tegen die tijd uit het raam gesprongen..

Hopelijk wordt mijn cynisme gelogenstraft.

Joel on Software schreef een recensie: http://www.joelonsoftware.com/items/2007/01/21.html

De website van het boek: http://www.dreamingincode.com/

Write a Comment

Comment