Enkla lösningar

februari 7, 2010

Jerry Weinberg har sagt att: ”Det finns inga svåra problem, bara svåra lösningar.” Som programmerare är alltså din främsta uppgift att hitta enkla lösningar på de problem du ställs inför.

Det finns en stark tro på att verklighetens problem kräver komplexa lösningar.
I själva verket beror den uppfattningen på att vi har för vana att välja tekniker som medför oavsiktlig komplexitet. Företagsstandarder, modeord och svag teknisk kompetens gör att vi väljer tekniker som inte är lämpade för de problem vi ställs inför. ”Här gör vi allt i Java!”, ”Vi löser alla problem med en SOA-lösning!” och ”Vi väntar till dess Microsoft släpper ett verktyg för det här!” hörs systemutvecklare säga, gärna med viss stolthet i rösten.

Själv har jag, bland annat, sett hur man lagt hela applikationer som lagrade procedurer i relationsdatabaser. Ovanpå detta har man kopplat GUI’n som går direkt mot dessa lagrade procedurer. Eftersom man uppfattat det som problematiskt att låta samma GUI-applikation gå mot flera databaser har man dessutom använt en välkänd integrationsprodukt för att kopiera data mellan databaser så att GUI-applikationerna kan få se det data som låg i den främmande databasen. Ibland handlar det bara om en boolesk variabel. En etta eller en nolla. En ensam liten bit. För åskådliggörandet av denna enda lilla bit definieras ett företagsstandardiserat protokoll som en XSD för att beskriva hur ettan (eller nollan) ska serialiseras till text (XML) som sedan ska skickas på en kö så att den kan läsas av en annan integrationsmodul för att av den kunna skrivas ner i den andra relationsdatabasen från vilken GUI-applikationen läser denna etta (eller nolla).

Så vill vi inte ha det. Vi måste lära oss att se att en lösning inte bär sin vikt. Vi får inte skapa lösningar som i sig är större problem än ursprungsproblemet.
Misslyckas man med det har man även misslyckats som systemutvecklare.

Annonser