Nivåer av stabilitet

Publisert 2017-10-28. Skrevet av Teodor Heggelund.

Stikkord: orden, kaos, utvikling.

Vi trenger stabilitet for å kunne tenke. Vi trenger orden. Vi trenger fastsatte rammer som vi vet ikke kommer til å endre seg uten forvarsel.

Den naive løsningen er å bannlyse endringer. Endringer er ikke lov. Vi skal ha ting som det er. Dette etablerer dogmer. Det er noen ting du ikke skal tenke på; for disse tingene er fastsatt. Du skal ikke vurdere å rokke ved disse.

Motparten er alt flyter. Alt kan endres, til enhver tid. Ingenting er fastsatt. Rammeverket som skriver om hele API-et sitt ved hver nye versjon. Oppstartsbedriften der ingenting er dokumentert, men alt flyter. Siste versjon finnes i folks hoder, uten at den er skrevet ned noe sted.

Vi trenger stabilitet for å kunne tenke. Vi trenger endring for å kunne forbedre.

Vi beholder stabilitet og kan gjøre endringer ved å ha tydelige nivåer med forskjellig grad av stabilitet. Det mest stabile går i en kjerne. Ytterkanten er mykere. Hard kjerne, mykere skall.

Systemanalyse i lys av nivåer av stabilitet

Systemer med mange deler har større behov for en hard kjerne.

Dess flere komponenter som finnes i systemet, jo større er behovet for noe fast. Noe trygt. Noe man kan forutsette som sant. En grad av orden. Grunnen mener jeg er økonomisk. Flere personer som skal ha informasjon om noe fører til større marginalkostnader ved endring av systemer. Dersom en initiativtaker raser fram og presenterer noe som er vanskelig å lære, risikerer initiativtakeren å miste feltet bak seg. Hvor fantastisk systemet initiativtakeren lager spiller ingen rolle om ikke andre kan forholde seg til hva han har laget på en god måte.

Verdien av en endring må sees i lys av systemet.

I systemer med stor, god tradisjon ligger det mye taus kunnskap. Denne tause kunnskapen har en verdi! Den er ikke noe som skal forkastes uten å vurdere hva vi vinner mot hva vi taper. Verdien av tradisjon mot verdien av nyskaping varierer mellom systemer. I en nyoppstartet bedrift finnes det derimot kanskje ikke en etablert standard i det hele tatt.

Systemutviklere som kaosbekjempere og verktøybyggere

Hvis stabilitet og endringsvilje er en kontrast, hvilke systemforbedringer kan vi da gjøre?

Mennesker har fokusert på kampen for orden i møte med kaos helt siden den sumeriske skapermyten, der helten Marduk kjemper mot kaosdragen Tiamat. Marduk beseirer ikke kun dragen – han lager himmel og jord ut av bitene av dragen; han lager en verden av orden ut av naturens kaos. Å lage orden ut av kaos er ikke mindre aktuelt i dag enn det var for fire tusen år siden.

Beskrivelsen av kampen mot kompleksitet i systemutvikling i dag er essensielt den samme fortellingen. Hvordan kan vi kjempe mot kompleksitet? Vi kutter kompleksiteten opp i småbiter og lager orden ut av bitene.

Smak på ordet systemutvikler. Snu det på hodet, og smak på kaosbekjemper. Kampen mot kaos er en systemutviklers daglige arbeid. Vi har også en annen rolle. Gjennom utvikling bygger vi kontinuerlig verktøy. Disse kan være integrert i koden som gode abstraksjoner eller frakoblet fra koden som script for automatiserte bygg. Kanskje skal vi vedlikeholde et sanntidssystem? I så fall trenger vi oversikt, vi trenger verktøy for å spørre om hva som skjer. Kanskje lager vi dette som en chatbot. Kanskje lager vi et grafisk grensesnitt som er tilgjengelig for flere.

La oss bekjempe kaos ved å bygge verktøy for å lage nivåer av stabilitet!

Jeg har postulert at kaos og orden er motpoler der vi trenger begge, og at systemutviklerens posisjon er på frontlinjen mot kaoset. Vi trenger imidlertid ikke bære ansvaret alene – når vi kan legge til rette for at andre kan bidra. Hvis vi ikke bare bygger nivåer av stabilitet, men også legger til rette for at andre kan lage stabil kunnskap – da har vi kommet en lang vei.

Noen konkrete forslag: