Saturday, November 24, 2007

Better than Thou

Återigen en engelsk titel, det bor uppenbarligen en liten Dolph i mig.

Ni har kanske råkat ut för den det här inlägget handlar om: idealisten, evangelisten. Då talar jag inte om alla de corporate evangelists det vimlar av från Sun och Microsoft främst, utan den verklige idealisten som har sett ljuset och sen inte kan låta bli att försöka sprida det till alla som vill (och efter ett tag inte vill) lyssna.

I mitt fall rörde det sig om Smalltalk. Alltså, det var Smalltalk som företeelse som var 'ljuset'. Och i min närhet fanns idealisten som höll Smalltalks fana högst i alla lägen.

Inget ont om Smalltalk och dess olika dialekter - mer OO-purism än så är svårt att tänka sig - allt är objekt - även klasser och integers (1+2 innebär att man skickar meddelandet '+' till objektet 1 med parameter objektet '2'). Para det med grymma utvecklingsmiljöer och en varm och cosy feeling som bara Smalltalk kan ge och man har en vinnande kombination. Eller?

Problemet kommer när man skall jobba kommersiellt tillsammans med idealisten. Kommersiellt innebär att man skall jobba för pengar som nån känner sig villig att hosta upp.

Det innebär ofta också att man ska jobba i ett team tillsammans med folk som har kompetens på den valda plattformen (och den valda plattformen är en kommersiellt gångbar plattform = inte Smalltalk).

Smalltalk hade kunnat vara vad Java och C# är idag - preferred choice of språk och utvecklingsmiljö för bulken av alla nystartade utvecklingsprojekt.

Det är som sagt squeaky (förlåt vitsen) clean vad gäller objektorientering. Det saknar också den ofta (enligt min mening) onödiga statiska typningen i Java/C++/C#.

Helt enkelt en produktiv miljö second to none.

Men, marknadens vägar äro outgrundliga, eller snarare beroende av smarta marknadsförare med stora pengasäckar i bakfickan (läs Sun, Microsoft).

Hade det funnits en dylik pengasäck bakom marknadsföring av Smalltalk på den tiden då Javas showcase var vinkande tomte-appleten, så hade Sun kunnat lägga ner den satsningen.

Då var Smalltalk sedan länge redan moget och hade bevisat vad det gick för (det var under en period ganska stort i USA som plattform för t ex banksystem och administrativa system).

Resultatet av den frånvarande marknadsföringspengapåsen är att det inte finns nån marknad (i alla fall inte i Sverige) för Smalltalk.

Då återkommer vi till problemet med idealisten. Att sitta i projekt med honom (i en kommersiellt gångbar miljö) blir en evig whine-fest.
"Aaargh. I Smalltalk hade det varit mycket enklare".
"Varför tycker alla Java/C#/C++-människor att det är så j-a bra. Det suger ju jämfört med Smalltalk".

Kort sagt ingen rolig person att dela skyttegrav med.

Och omöjlig (eftersom han är en idealist) att få att inse att det handlar om stålar. Den bästa teknologin vinner inte - det är den med mest buzz som vinner och på den fronten står sig Smalltalk slätt.

Jag älskar idealister - må de sprida sina tankar och visioner till massorna i evig tid - bara jag slipper sitta i samma projekt som dem...

Thursday, November 22, 2007

Singing along with the Choir

När jag ser tillbaka på mina inlägg hittills har de, till största delen, drupit av negg.

Uppenbarligen har en det öppnats en ventil, ett utlopp genom vilket jag kan negga om företeelser i systemutvecklingsbranschen.

Därför känns det jobbigt att, i strid med tidigare inlägg, verkligen plussa nåt:

Test-driven utveckling

När man insett storheten finns det inget sätt att vända åter. Att köra utan är samma känsla som att cykla mitt i stan (bilar är hårdare än människor) utan cykelhjälm (om man nu haft det alltid i 10 år (ja, jag är en farbror)).

Osäkert - minus frihetskänslan man får med vinden i håret.

Processen är solklar:

  1. få en spec på en ny feature

  2. skriv ett testfall som testar din nya feature

  3. kör testfallet

  4. Testa om det funkar. Om ja - avbryt

  5. Ändra/bygg om tills du tror att det funkar

  6. Gå till punkt 4 - lather, rinse, repeat!



Om alla gjorde så skulle världen be a better place...

Wednesday, November 21, 2007

Stating the Bleeding Obvious

Jag har tidigare redovisat min personliga taxonomi över svenska utvecklingsbloggar (Someone else's News), men måste nu tillfoga en ny - The Bleeding Obvious-bloggen.

En dylik blog handlar om nåt extremt basalt och har lägre höjd än Nederländerna.

Nu kanske jag svär i kyrkan när jag pekar ut en medbloggare som hemmahörande i denna kategori, men den ligger 11:a på http://bloggtoppen.se (Data/IT), så så jävla synd är det inte om honom: http://www.svensk-server.info/

Det gick dessutom inte att kommentera utan att registrera sig först (och som jag har längtat efter ett membership på svensk-server.info - not), så han får finna sig i att jag gnäller här istf på hans blog.

Den första artikeln har the groundbreaking title HTML Dokument (jo det var utan bindestreck) och redovisar hur man ska använda bla <html>-taggen...

En blick på en bra html cheat sheet site (t ex http://www.psacake.com/web/dy.asp) ger massor mer info befriat från särskrivningar och putslustiga kommentarer.

Ibland önskar man att det inte var riktigt så enkelt att publicera saker på webben. Hade det bara varit lite svårare så hade vi sluppit en hel del bleeding obvious skräp producerat av medelmåttor...

Tuesday, November 20, 2007

Bjarne Spilling the Beans

No Java pun intended (beans alltså).

Lyckades leta reda på den här intervjun som jag minns att jag läste för ett tag sen:

http://members.safe-t.net/jwalker/programming/interview.html (not working anymore)
http://artlung.com/smorgasborg/Invention_of_Cplusplus.shtml

Bjarne Stroustrup (mr C++ för oinvigda läsare) berättar vad han egentligen tycker om sin kreation.

Den bekräftar vad jag tyckt väldigt länge: C++ är datavärldens motsvarighet till att skruva i en spik med en fogsvans - du kommer slinta och såga dig i benet.

Det är ju faktiskt så att C++ nog inte är rätt verktyg nånsin; ska du skriva ett operativsystem eller drivrutiner så vill du inte ha overheaden som OO innebär med t ex traversering av funktionspekararrayer för att hitta rätt implementation - du väljer good ole' C istället.

Ska du bygga vilken-annan-applikation-som-helst så vill man ju ha:


  • bounds checking
  • garbage collect
  • ett språk som inte på ett så uppenbart sätt inbjuder till att skjuta sig själv i foten med

Hoppsan. Hamnade nästan in i en språk A är bättre än språk B-rant och sånt är ju aldrig roligt.

Roligt är det däremot när folk säger sanningar som man förvånas av.

Stå på dig, Bjarne. Tell it like it is...

Four Letter Word

Påminn mig att jag ska skalla alla som använder ordet 'agil' i svenska språket.

Det är inte ett ord, har inte varit ett ord och kommer inte bli ett ord på svenska.

Det är nog irriterande med agile hit och agile dit på engelska.

15 minuter daglig masspsykos

Varje morgon kl 09:00 samlas Sveriges alla (nåja majoriteten känns det som i alla fall) systemutvecklare i små grupper om 5 - 15 pers, berättar vad de gjort den senaste dagen och vad de tänker göra idag.

Nej, det är inte improviserade AA-möten som utspelar sig på landets alla IT-arbetsplatser. Det är såklart Scrum.

Inte nånsin har jag varit med om att någon metod/metodik/metodologi har fått en sån fullständig impact på så kort tid. Från att knappt ha hört talas om fanskapet till att folk inte gärna sitter bredvid en på tunnelbanan om man inte är Certified Scrum Master.

Det är inte så att jag tycker det är dåligt eller så, men jag blir alltid skeptisk när nåt nästan övergår i religion. "Vad säger Scrum att man ska göra i den här situationen" som om Scrum-väsenet tryckte i nåt dammigt hörn i konferensrummet och hade nåt viktigt att dela med sig av.

Backlogen är helig (ordet backlog betyder väl egentligen saker man borde gjort men inte hunnit. I Scrum (helgat varde dess namn) så är nåt man precis kommit på en backlog item (alltså nåt man redan borde gjort fast man precis kom på det)). Snacka om att ge Losec-marknaden en extra skjuts.

Finns det inte i sprinten så ska man inte göra det. Tanken är sund; isolera utvecklings-teamet från den yttre världens alla krav-glidningar och scope creeps. Sprinten blir ett 300 DPS Sword of Scope Defence som teamet kan vifta med när de bakåtslickade frisyrerna kommer och försöker få in lite features som kan hjälpa dem att kränga skiten till nån ny kund.

Problemet kommer då man inser att man faktiskt inte får med allt man verkligen gör i backlogen och senare i sprintarna. Man ser ut som en lat jävel när det visar sig att man har en sprint-velocity som Micke Persbrandt på väg hem från krogen.

Sprintplaneringen blir också en speciell upplevelse eftersom det (vad jag vet) inte finns nåt utrymme (=tidpunkt, dedikerad tid) egentligen för att _speca_ en backlog item. Den är oftast på formen 'Användaren ska kunna skicka meddelanden till andra och notifieras när han får ett meddelande sänt till sig'.
Spec behövs minst på områdena Info-design, databasdesign, protokollnivå, kravbild (ska t ex användaren kunna lägga upp nån på en ignore-list? Framgår inte av backlog-itemet).

Urspungskravet kommer ju oftast från nån som inte håller på med implementation och därför inte kan antas kunna speca på den nivån (eller ens veta att det behöver specas på den nivån).

Vad det hela kokar ner till är att man försöker tidsskatta i princip helt ospecade krav. Under upp-taskningen sker ju nån slags specning, men det sker inför hela gruppen och blir frustrerande efter fyra-och-en-halv timme, let me tell you.

Vet inte om det bara är jag som upplevt det, men det verkar som om Scrum (oh, herde på livets stig), inte riktigt tycker att man ska speca (= en (eller ett par tre) person(er) samlas, ritar pilar och streck, kommer överens och skriver ihop ett snärtigt dokument på 1-1,5 A4 som beskriver hur implementationen skall gå till).

Speca är fult. Luktar vattenfalls-modellen och gammal död hud. Fast där nånstans brister illusionen lite.

Behold, the revolting underbelly of Scrum...

Saturday, November 17, 2007

Pärlor för ingen?

Inser plötsligt att det jag jobbar med (och skriver om i den här bloggen) kanske intresserar ungefär en promille av Sveriges befolkning.

Det kanske kan översättas till en promille av en promille av världens befolkning, eftersom intresset för utveckling av datasystem (eller snarare nån som gnäller om detsamma) kan antas avta med kvadraten på risken att dö i svält/hamna i husarrest i Öst-Timor/få fågel-influensa/hamna under vatten pga växthuseffekten... etc you name it.

Är det då värt det? Hittills har ingen. Och jag menar _ingen_ hittat min blog. Inga kommentarer har reggats (utom mina egna patetiska). Jag skulle lika gärna kunna vara den sista utvecklar-gnäll-bloggen på jorden. Tänk er den filmen. 'Utvecklar-gnäll-bloggarnas planet'. På slutet hittar de frihetsgudinnan i sanden med the collective works of Donald Knuth under armen.

Sad sad developer.