Friday, January 11, 2008

Complexity Killed the Cat

Att utveckla system är en komplex verksamhet. Det ska fungera tekniskt, kommersiellt och användarna ska vara glada. Inte så att det krävs övermänniskor för att genomföra projekt, mer så att varje nytt projekt är så olikt det förra - det finns sällan ett facit.

Det känns som om risken att nåt ska gå snett och få ett projekt att gå i stöpet är så mycket större än möjligheten att det ska gå bra att det är helt magiskt att folk satsar pengar på systemutvecklingsprojekt. Det vittnar verkligen om människans obotliga optimism (och ofta också downright stupidity).

Nu menar jag inte att det är bara det tekniska som kan fallera. Riskerna är minst lika stora på business-planet.

Lek med tanken att alla de tiotals miljarder som brändes under IT-bubblan istället investerats i kort som vi alla vet är säkra (porr-, sprit- och vapenindustrierna), så hade de varit hundratals miljarder idag (jag förbehåller mig rätten att bortse från alla etiska implikationer ;).

Det finns såklart andra verksamheter som är så komplexa att det svindlar. Tänk t ex på det otroliga faktum att vi får en färsk nytryckt DN/SvD eller whatever i brevlådan varje dag. Ett journalistiskt (nåja inte alltid), tekniskt och logistiskt Labero-trick varje dag.

Skillnaden är att de utför samma trick varje dag. De har kunnat finslipa sitt projekt under årtionden och kan genomföra det med precision just för att det är same-old same-old varje dag.

Vi har sällan den lyxen.

Problemet är att själva kaoskomponenten i ett systems livscykel - från idé till fungerande system (eller kod i malpåse) - gör att det inte med framgång går att ta fram ett recept för hur man skall göra. Tumregler är det bästa vi kan hoppas på.

Och denna ovisshet går att slå mynt av. Det dyker oavbrutet upp folk som menar att de har svaret på alla frågor. Lösningen på alla problem. The silver bullet to rule them all...

Min tro är att tumregler är all we can hope for.

Det finns inte:

  • ett språk/miljö som löser alla problem
  • en metodik (vattenfall, scrum, xp, rup...) som passar alla utvecklingsprojekverktygsstöd
  • verktygsstöd (oavsett hur mycket man betalar) som gör projektet till en walk-in-the-park

En rimlig fråga är kanske 'Ge mig tumreglerna du jiddrar om, mannen?'.

Där kan jag inte ge nåt svar (jag vill ju inte vara killen med silverkulan)...

Det enda jag hoppas är att lite av min luttrade cyniska attityd kan smitta av sig lite lagom på alla entusiastiska oerfarna systemutvecklare out there.

Tänk efter innan ni hakar på the-most-recent-best-thing-since-sliced-bread, så slipper ni göra samma misstag som jag gjorde i min ungdom...

No comments: