Automatisering er som en løk
- Innerst inne ligger funksjonaliteten. Dersom ikke en automatisert
oppgave faktisk løser oppgaven som er målet, så er og blir den
dysfunksjonell samme hvordan du snur og vender på det. Dette er
gjennomføringen, og de som tror dette er alt det er ved
automatisering, har misforstått noe fundamentalt.
- Neste nivå er stabilitet, som er et systems evne til å fortsette å
virke over tid. Det motsatte - et ustabilt system - er noe som mer
eller mindre faller sammen av seg selv. Stabilitet er viktig i en
automatisert oppgave fordi den skal fortsette å kjøre gang på gang i
overskuelig fremtid, men det tar tid og testing å sikre at den
automatiserte oppgaven er stabilt spesifisert og programmert.
- Tredje nivå er robusthet, som er beslektet med stabilitet, men
allikevel fundamentalt forskjellig. Med robusthet menes et systems
evne til forsatt å virke selv om omgivelsene rundt det endrer seg. Et
stabilt korthus fortsetter å stå av seg selv, mens et robust korthus i
tillegg takler at du puster på det og rugger litt i bordet. Stabilitet
er viktig for en automatisert oppgave fordi miljøet det skal kjøre
innen, garantert kommer til å endre seg over tid - du har kanskje ikke
planlagt endringene ennå, men de kommer!
- Det fjerde og siste nivået er elegant feiling. Det betyr at når systemet tross funksjonalitet, stabilitet og robusthet allikevel ikke kan fullføre oppgaven sin, så sier det ifra på en grei og informativ måte. Ting som den ikke har blitt programmert til å takle, skal den heller ikke forsøke å ordne.
Jeg misliker automatiserte jobber når de inntrengende, repeterende og pågående forteller meg om alt som er normalt. Jeg har allerede nok avbrytelser og oppmerksomhetsavledninger i arbeidsdagen til at jeg trenger noe som støyer bare for å fortelle meg at alt er i orden. Nettopp derfor er det viktig at en automatisert jobb holder kjeft sålenge alt er i orden, og kun skriker opp dersom noe er galt. Enkle, hyppige og lettolklige feil bør den settes opp til å håndtere selv, mens de øvrige bør videresendes til en systemadministrator i mest mulig ordrett kopi og med best mulig bakgrunnsinfo. Manuell, inkrementell tilpassing av den automatiserte oppgaven over tid er den enkleste måten å gjøre den stabil og robust på.
Dette betyr ikke at jeg har noe imot statistikkrapportering og logging av at alt er greitt. Det må imidlertid skilles skarpt mellom to ting som har hvert sitt bruksområde: På den ene siden er det som er tilstandslogging som en systemadministrator kan oppsøke for rapportgenerering eller post-mortem debugging. På den andre siden er det som varsler om at noe er galt, og som systemadministrator bør få som avbruddshåndtering.