Du har kanskje ikkje tenkt på korvidt det fins likskapar mellom politikk og programmering. Det er du langt frå aleine om. Men dei fins, og det er mange av dei. Ein periode var eg usikker på om eg skulle programmere på heiltid og drive med politikk på fritida eller omvendt. Da tenkte eg at det var lite felles mellom dei. Etter kvart som eg brukte tid på begge delar, innsåg eg at eg hadde tatt heilt feil: parallellane og likskapane var mange. Vi kan gå gjennom ei rekke av dei.

1. Valkamp og tilbodsprosess

Store offentlege prosjekt må regelmessig ut på anbod, typisk omtrent kvart fjerde år. Da sett både leverandøren som har prosjektet per no og andre håpefulle seg ned og bruker store mengder tid og krefter på å fortelje kva ein skal gjera dei neste fire åra, korfor ein sjølv er betre enn konkurrentane og korfor ein ikkje lenger skal gjera ein einaste av feilane ein tidlegare har gjort.

Du skal ikkje bytte ut mange ord i avsnittet over før det handlar om politisk valkamp heller enn eit offentleg anbod.

Felles for begge er at det

  • krev masse arbeid som for fleire ikkje botnar ut i noko særleg til slutt
  • er eit vanvittig ressurssluk for både den som skal utøve (leverandør/politisk parti) og den som skal sette seg inn i det som tilbys (kunden/veljaren)
  • alltid er mange som ender opp med fullstendig tap og meir eller mindre alt arbeidet bortkasta
  • tar fokus vekk frå dagleg drift og det vanlege arbeidet, som i ein lang periode hamnar i bakleksa medan alt er innretta på å få lov til å gjera arbeid dei neste åra.
  • er veldig fort gjort å love altfor mykje som det i ettertid blir dyrt og vanskeleg å halde.

2. Alltid verre å miste eksisterande enn å ikkje få nytt

Det er alltid store protestar mot å kutte eit lokalsjukehus som allereie står der og er i bruk, medan reaksjonen på at det nye sjukehuset ikkje kom i år heller er langt meir nedtona.

På samme måte trekk brukarane kanskje litt på skuldrane om dei ikkje får den nye funksjonaliteten i denne versjonen heller, men dei blir fort veldig misfornøgde om du tar bort funksjonalitet dei allereie har og bruker.

Og det er alltid innmari kjipt å ikkje vinne ein ny anbodsperiode på eit prosjekt du allereie har. Det å ikkje vinne eit nytt prosjekt er kjipt, men typisk ikkje på langt nær like ille.

3. Prioriteringar

Prioriteringar er av natur utakknemlege: Dei er heilt nødvendige, men ser alltid dårleg ut utanfrå. Når ei krone kun kan brukast éin gong, må det prioriterast. Prioriteringar er alltid der, uavhengig av om dei er eksplisitte og bevisste eller ikkje.

Det er alltid lettare å prioritere noko opp enn noko ned, og det er så godt som alltid nokon som er misfornøgde med prioriteringane.

Skjønt, her er faktisk programmerarar og særleg kundar ofte flinkare enn politikarar Har du nokon gong sett ein politikar seie “dette er ikkje ei viktig sak, så vi nedprioriterer det”? Det hender det faktisk at produkteigarar gjer – og da hender det ofte at alle aksepterer det.

4. Det blir aldri bra nok

Det er alltid meir du kan gjera i eit politisk parti. Det er alltid ein kronikk å skrive, alltid eit møte å førebu, alltid ein telefon å ta, alltid eit argument å finslipe.

På samme måte har du som utviklar alltid litt teknisk gjeld, alltid litt utgreiing å dykke ned i, alltid ein produksjonsfeil som burde ha vore fiksa eller litt systemdokumentasjon å forbetre.

Og, som eg var innom i stad, vil nokon alltid vera misfornøgde. Samme kva og kor mykje du gjer.

5. Småting er veldig synlege

Du lager tidenes kulaste algoritme og massevis av fancy ny funksjonalitet, men det einaste brukarane og kundane ser er skrivefeilen i teksten og de nye fargene dei ikkje liker.

Tilsvarande kan du lage ei omfattande pakke for å endre heile helsevesenet eller skoleverket, og det du får spørsmål om på pressekonferansen der du presenterer det er kor du kjøpte kjolen din og korleis du klarer å kombinere politikken med familielivet.

6. Programmering og politikkutforming er enkelt

Det å lage løysingane er eigentleg lett. Det vanskelege er å få folk med på det. Både å lage noko dei liker, å lage kva dei vil ha og ikkje minst å finne ut kva dei faktisk vil ha.

Eller det å gi gode tilbakemeldingar til kollegene dine når du gjer kodegjennomgang og kvalitetssikrar koden dei har skrive. Det er forresten innmari viktig!

7. Estimering, derimot

Estimering er himla vanskeleg, det vil alle utviklarar du møter vera krystallklare på. Det er alltid ein risiko for at det dukkar opp ting du ikkje har tenkt på, og det er aldri godt å seie kor lang tid dét vil ta å komme seg rundt.

Ein ting er å estimere kor lang tid det vil ta å utvikle eit stykke programvare. Noko anna er estimat av kor godt det kjem til å gå i val, samtidig er det mange parallellar å trekke mellom estimering og meiningsmålingar. Eit veldig tydeleg illustrering av dette er dei amerikanske delstatane Michigan og Wisconsin, som «alle» var sikre på at den demokratiske presidentkandidaten Hillary Clinton ville vinne, og der ho i dei aller fleste målingane leda klart. Heilt fram til valdagen, for når valresultatet  kom, endte begge delstatane opp med republikansk fleirtal.

Så både estimat og meiningsmålingar er høgst usikre, og kun ein peikepinn som på langt nær kan takast for gitt.

8. Oppfordring: kall ting det det er

Dette er ei oppfordring til både politikarar og programmerarar: kall ting det det er.

Politisk klare eksempel på dette er angrepskrigar i mange land, som har vorte kalt alt mogleg rart, men sjeldan krig. Korea-krigen var for eksempel ein «politiaksjon» frå USA si side.

Det gir ein dårlegare debatt der det er vanskelegare å henge med på kva som skjer, og resultatet blir ofte dårlege prosessar der det er færre som heng med, færre som bestemmer, der resultata ofte blir dårlegare og fleire folk er misfornøgde med dei i etterkant.

Akkurat tilsvarande er det med programmering også. Du gjer det så innmari mykje lettare for deg sjølv og alle andre om du kallar variablar, metodar og klassar for det dei faktisk er. Det fins heile metodikkar bygd rundt nettopp dette prinsippet, så essensielt er det.[Can someone explain DDD in plain English please] [Donkey code]

9. Du skal tene for nokon andre

Politikarar skal tene samfunnet og folket dei representerer, medan ein utviklar skal tene kunden.

Samtidig er ikkje alltid løysingane kunden seier dei vil da dei beste. Henry Ford adresserte i si tid dette: «If I had asked people what they wanted, they would have said faster horses.»

Like fullt er det viktig å ta deira behov og ønske på alvor. Viss ikkje blir dei naturleg nok misfornøgde, og sjansen for å vinne i neste val eller anbodsprosess minkar drastisk.

 

Dette er berre eit lite utdrag av dei heilt reelle likskapane mellom politikk og programmering. Det er mange fleire parallellar der ute. Har eg gløymt nokre? Legg igjen ein kommentar!

 

Her er video fra lyntalen på Booster 2017.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *