Rapport från JAOO, del 1

Första konferensdagen av JAOO 2006 (i Århus, Danmark) börjar närma sig sitt slut. I partytältet spelar fortfarande det enormt populära coverbandet Absolute Girls och på hotellrummen knapprar utvecklarnördarnas MacBooks mjukt. Här kommer en liten rapport från just ett sådant tangentbord.

Före middagen fick vi höra en version av Alistair Cockburns berömda föredrag “Methodologists are blue-green algae and methodologies are swimsuits”. En timmes dråplig och dräpande föreläsning med ett oväntat allvarligt budskap.

Alistair visade enkelt att människor, community, interaktion och vänlighet i verkligheten betyder såå mycket mer för resultatet än vilka rutor du har i din process. Scenen ur Matrix, där människor används som batterier, illustrerade tydligt vad han ansåg om de flesta processer.

Alistair visade också hur kartongen till RUP egentligen borde ha sett ut. En leksaksbyggsats som kunde byggas om till vad som helst. “So hot that it’s cool.” Både het och kall, både RUP och Agile, allt i en färgglad kartong.

Efter samtal med vänner på Agero utnämnde vi dock första dagen till Modelleringsdagen. Några kanske rynkar på näsan? Men här har talats modellering i en modernare, mer passande och kanske en mer ödmjuk framtoning. Inga “Software Factories” här, utan modeller byggda för ett specifikt syfte för att abstrahera och förstå en komplex domän. Ingen MDD här, utan domänspecifika språk för förenkla livet för en viss användning. Kanske har modeller, om uttrycket tillåts, sparkats till ödmjukhet?

Ian Cartwright från Thoughtworks fick den otacksamma uppgiften att ersätta en av världens bästa designers, pedagog och talare. Konferensens största återbud kom i förrgår från Martin Fowler som var hemma med ryggont. Ian pratade, lite oförberett, om några mönster som kan användas när man använder händelser för att styra och integrera delsystem, dvs händelsestyrda system.

Jag fick tillfälle att prata lite med Ian efter föredraget. Han medgav lakoniskt att så fort Martin var bättre skulle han döda honom. Kanske någon borde skicka Martin ett ryggträningsprogram? Eller ett vapen. Jag undrade om det fortfarande var kul att jobba på ThoughtWorks nu när “alla” ville börja på Google? Ian medgav att de faktiskt hade förlorat ett par personer till Google. Men det var fortfarande trevligt på TW, försäkrade han.

Eric Evans pratade Domain-Driven Design i två heltimmar på släpig amerikanska. Men tiden gick ändå fort när Eric, på ett mycket pedagogiskt och precist sätt, gick igenom grundtankarna. I korthet kan man säga att modeller är system av abstraktioner för att lösa problem i en domän. Enligt DDD bör man sträva efter att skapa modeller som åtminstone i kärnan av domänen är så rik och uttrycksfull som möjligt. Om en modell däremot har sidoeffekter och är svårförklarad vet vi att något luktar illa. En fattig domänmodell leder till ett fattigt språk. Motsatsen leder till det han kallar ett “ubiquitous language”, ett språk för alla i projektet, inklusive kunden.

Varje projekt har ofta flera parallella modeller, men det är helt ok, bara man vet om det och har tydliga gränser och kontextmappningar mellan dem. Det går inte att hitta en modell för en domän. Lika lite som det går att hitta en utvecklingsprocess för en domän. Rekommendation: Läs boken!

En reflektion jag gjorde var vilken kommunikativ kompetens som därigenom också läggs på oss utvecklare, när vi i modelleringssessioner med ovilliga kunder tillsammans ska hitta de rätta abstraktionerna för oss. Har vi utvecklare i gemen den förmågan? Orkar vi lära oss det också? Är utvecklare överhuvudtaget intresserade av domäners lite godtyckliga komplexitet? Eller vill vi bara göra kul, tekniska grejer?

Före dessa höjdare var det inte mycket att ha idag, tyvärr. Bertrand Meyer, mannen bakom Eiffel och design-by-contract (DBC) visade vara en lätt förvirrad professor med svåra mikrofonproblem. Han var en humoristisk man som lyckades med konststycket att få in både studentrevolten i Paris -68 och sig själv på livsuppehållande system och senare väckt av president Bush i ett tal om parallellprocessning! Prof Meyer har nu skapat SCOOP, Simple Concurrent OOP, i ett försök att använda DBC för att försöka förenkla parallellism. Mjae, lite akademiskt, kanske.

Ett spår kring relationsdatabaser besöktes som hastigast. Det var inte många personer i rummet. Värden för spåret, Mogens Nörgaard, såg fullständigt deprimerad ut och ironiserade över att personerna därinne var lika moderna som stordatorer. Databastillverkarna lägger på fler och fler funktioner som ingen använder. Ingen kan databaser längre och kaos är tydligen förestående. Men Mogens klagade inte, han var konsult, tog bra betalt och bryggde sitt eget öl (som vi fick smaka på kvällens party).

Visst kände man den unkna stanken av “bittra gamla män” där inne, men lite får jag ge Mogens en poäng. Måste pendeln svänga så kraftigt? Bara för att vi inte lägger affärslogik i databasen längre behöver väl inte det betyda att vi helt ska sluta använda databasen rätt?

Ibland känner jag lite att systemutvecklare underskattar behovet av bra DB-kompetens i projekten och överskattar sin egen förmåga att leverera den kompetensen. Men på sikt är trenden uppenbar: Relationsdatabaser är snart “legacy”, i alla fall om man tror på Mogens. Frågan är vad som skulle kunna komma istället?

Ikväll är det fest, lämpligt nog dagen före löpartävlingen. Så skönt danskt.

One thought on “Rapport från JAOO, del 1

Comments are closed.