Audititavust ei tohiks lisada hiljem

Auditability ei ole lakk, mida kantakse peale pärast seda, kui süsteem hakkab tegema olulisi otsuseid. See on disainiomadus, mis peab olemas olema juba...

Audititavust ei tohiks lisada hiljem

Kaust, mis jõudis kohale liiga hilja

Koosolekuruumis olid tavapärased institutsionaalse tõsiduse tunnused: klaasseinad, kohvimasin, mis andis endast parima surveanuma mulje, ja jagatud ekraanil kaust nimega tõendusmaterjalide pakett. Ülevaatuse all olev süsteem oli olnud töös üheksa kuud. See suunas edasi sisemisi juhtumeid, soovitas järgmisi samme, edastas osa neist spetsialistidele ja lükkas teised vaikselt tagasi, sest konfigureeritud künnised seda nõudsid. Keegi ruumis ei kirjeldanud seda hankeprotsessi ajal kõrge riskitasemega süsteemina. See oli tootlikkuse tööriist, mida organisatsioonid nimetavad otsustusinfrastruktuuriks enne, kui keegi küsib, keda see mõjutas.

Audiitor esitas väikese küsimuse. Selle juhtumi puhul, milline poliitikaversioon oli aktiivne siis, kui soovitus loodi. Tooteomanik vaatas arhitekti poole. Arhitekt vaatas andmejuhi poole. Andmejuht avas juhtpaneeli, seejärel logide ekspordi, seejärel pileti. Üks arendaja meenutas, et poliitikaversioone hoiti esimese väljalaske ajal keskkonnamuutujas ja pärast jaanuarimigratsiooni andmebaasitabelis. Keegi ütles, et muudatus oli tõenäoliselt kahjutu. See on harva see lause, mis audiitori lõdvestuma paneb.

Miski polnud loodud halva kavatsusega. Meeskonnal olid logid, monitooring, juurdepääsukontroll, varukoopiad, intsidentide piletid ja sisemine viki, kus oli piisavalt lehti, et printer ära rikkuda. Kuid tõendusmaterjal ei olnud süsteemi omadus. See oli rekonstrueerimisharjutus, mis viidi läbi tagantjärele inimeste poolt, kes mäletasid veel juurutust. See ei ole auditeeritavus. See on suuline ajalugu ajatemplitega.

Auditeeritavust ei tohiks lisada hiljem, sest hiljem on just see aeg, mil mälust on saanud poliitiline küsimus. Inimesed on närvilised. Süsteem on muutunud. Tarnijad on vahetunud. Juhtpaneelid on ümber kujundatud. Ainus insener, kes mõistis algset andmete importi, kannab nüüd teist ametinimetust ja räägib sellest perioodist rahulikult, nagu keegi, kes on üle elanud torustikuõnnetuse. Kui kirjet ei loodud töö toimumise ajal, sisaldab hilisem lugu alati rohkem tõlgendust kui tõendusmaterjali.

Hiline tõendusmaterjalide pakett on rekonstrueerimisharjutus; käitusaegne kviitung oleks teinud küsimusele vastamise võimalikuks.

Auditeeritavus on disainiomadus

Paljud meeskonnad käsitlevad auditeeritavust dokumentatsioonina. Nad kujutavad seda ette diagrammide, kontrollide, kinnituste, ekspordinuppude ja poliitikaavalduste kogumina, mille saab kokku panna, kui süsteem on väljalaskele lähedal. See vaade on ahvatlev, sest dokumentatsioon tundub odavam kui disain. See laseb projektil edasi liikuda, samal ajal kui valitsemine ootab viisakalt koridoris hinnakirjaga. Arve jõuab kohale hiljem, koos intressiga.

Auditeeritavus on kestlikkusele lähemal kui dokumentatsioonile. Kestlik süsteem ei muutu kestlikuks sellepärast, et keegi kirjutab aruande, et katus ilmselt peab vihmale vastu. Katus kas juhib vee ära või ei juhi. Auditeeritav süsteem kas säilitab faktid, mida on vaja selle käitumise kontrollimiseks, või ei säilita. Faktid võivad olla igavad: versioon, allikas, ajatempel, tegija, reegel, läviväärtus, erand, kinnitus, mudeli identifikaator, viipamall, andmete ulatus, säilitusolek. Igavus on okei. Silda hoiavad samuti igavad osad. Dekoratiivlambid ei kanna koormust.

Raske osa on see, et auditeerimisfaktid tuleb jäädvustada samal tasandil, kus otsuseid tehakse. Kui töövoog kasutab poliitikareeglit, kuulub reegli versioon sündmuse juurde. Kui mudeli väljund võetakse vastu toimiku juurde, kuuluvad mudeli versioon, usaldusväärsus, allika ulatus ja vastuvõtureegel andmestikku. Kui inimene tühistab soovituse, kuulub tühistamise põhjus tegevuse juurde, mitte koosoleku märkusse kaks nädalat hiljem. Süsteem ei tohiks nõuda ajaloolast, et see järeldaks, mida masin juba käitusajal teadis.

Seetõttu ei ole auditeeritavus sama mis logimine. Logid on kasulikud, kuid nende esmane eesmärk on tavaliselt operatsioonide toetamine. Need selgitavad tõrkeid, ajastusi, uuestiüritamisi, erandeid ja jõudlust. Auditeeritavus küsib teistsuguseid küsimusi: millist volitust kasutati, milliseid tõendeid kaaluti, milline olek muutus, kes või mis selle põhjustas ja kas järjestust saab kontrollida ilma praegust teenust usaldamata. Logid võivad seda tööd toetada. Harva kannavad nad seda üksi.

Esimene otsus on see, mis loeb

Enne kui süsteem saab olla auditeeritav, peab organisatsioon otsustama, mis loeb auditeeritavaks sündmuseks. See kõlab halduslikult, kuid siit algab tegelik arhitektuur. Kui iga klõps on sündmus, muutub andmestik prügilaks. Kui ainult lõpptulemused on sündmused, muutub andmestik mustkunstitrikiks. Kasulik kesktee on jäädvustada hetked, kus volitus, tõendid või olek vahetavad omanikku.

Juhtumi vastuvõtt on selline hetk. Lähtedokumendi ulatusse sisenemine on teine. Mudeli soovitus on üks, kui see võib mõjutada tööd. Poliitikavärava käivitumine on üks. Inimese kinnitus on üks. Keeldumine, edastamine, erand, andmete parandamine, säilituse muutmine, kustutamistaotlus ja edasikaebus on kõik kandidaadid. Asi ei ole selles, et säilitada süsteemi iga hingetõmmet. Asi on säilitada liitekohad, kus hilisem kontrollija küsiks mõistlikult: miks liikus süsteem siit sinna.

See valik peab olema selgesõnaline. Muidu avastab meeskond kontrollimise käigus, et oluline sündmus elas kahe komponendi vahelises varjus. Esiosa teab, et kasutaja nägi hoiatust. Taustsüsteem teab, et juhtum liikus olekus. Mudeliteenus teab, et see tagastas skoori. Töövoo mootor teab, et haru valiti. Ükski üksik andmestik ei ütle, et hoiatus, skoor, reegel ja haru kuulusid samasse otsusesse. Igaühel on tükk vaasi. Laud on veel märg.

Kui sündmuste hulk on nimetatud, saavad insenerid kujundada selle ümber lepingud. Igal sündmusel võivad olla kohustuslikud väljad. Igal väljal võib olla omanik. Iga skeemimuudatust saab versioonida. Iga säilitusreegli saab siduda õigusliku ja operatiivse vajadusega. See ei ole paberimajandus, mis istub süsteemi kõrval. See on osa süsteemi piirist. Andmestikust saab töövoo toode, mitte vabandus, mille töövoog kirjutab pärast lõunat.

Kasulik sündmuste hulk on nende liidete hulk, kus volitus, tõendusmaterjal või olek vahetab omanikku.

Aeg ei ole kaunistus

Audititöö on aja suhtes põhjusega tähelepanelik. Otsus, mis tehti enne poliitika muutust, ei ole sama mis otsus pärast seda. Mudeli väljund, mis loodi enne andmeparandust, ei ole sama mis väljund pärast seda. Juhtum, mis eskaleeriti pärast tähtaega, erineb juhtumist, mis eskaleeriti enne seda. Aeg ei ole metaandmed, mis sündmustele peale puistatakse. See on osa sündmuse tähendusest.

Hajussüsteemid muudavad aja ebamugavaks. Kellad triivivad. Järjekorrad järjestavad ümber. Taaskatsed juhtuvad. Töötlejad töötlevad sõnumeid hilja. Partiid laaditakse öösel töödega, mis nimetati 2021. aastal ajutisteks ja on nüüdseks kultuuriliselt püsivad. Kui auditikujundus eeldab ühte korralikku ajajoont, siis esimene intsident harib seda. See harimine toimub tavaliselt tabelarvutuses, mis on kallis õpiklass.

Auditeeritav kujundus eristab sündmuse aega, töötlemise aega, kehtivuse aega ja ülevaatuse aega seal, kus erinevus on oluline. Sündmuse aeg ütleb, millal asi äriprotsessis juhtus. Töötlemise aeg ütleb, millal komponent seda käsitles. Kehtivuse aeg ütleb, millal reegel või olek kehtima hakkas. Ülevaatuse aeg ütleb, millal keegi hiljem seda kontrollis või parandas. Need eristused võivad tunduda tüütud, kuni üks juhtum ületab kesköö, üks reegel muutub kell 09:00 ja üks järjekord tühjeneb aeglaselt, sest keegi muutis töötlejate arvu enesekindlalt ja ilma tõenditeta.

Sama hoolikus kehtib identiteedi kohta. Tegutseja võib olla inimene, teenus, agent, ajastatud töö, delegeeritud kasutaja või väline süsteem. Süsteem peaks ütlema, kes. See ei tohiks peituda administraatori taha, sest seal elab integratsioonikonto. Kui volitus on delegeeritud, peaks delegeerimine olema nähtav. Kui teenus tegutseb automaatselt, peaksid omanikteenus ja reegel olema nähtavad. Auditeeritavus nõuab nimetatud vastutust, isegi kui nimi ei ole inimene.

Rekonstrueerimine ei ole taasesitus

Kui meeskonnad lisavad auditeeritavuse hilja, lepivad nad sageli rekonstrueerimisega. Nad koguvad logisid, andmebaasi hetktõmmiseid, piletid, vestlussõnumid ja väljalaskemärkmed. Nad ehitavad usutava ajajoone. Mõnikord on ajajoon õige. Mõnikord on see väga korralik väljamõeldis siiraste autoritega. Probleem ei ole selles, et inimesed valetavad. Probleem on selles, et rekonstrueerimine palub inimestel täita lüngad surve all ja institutsioonid on väga head muutma lüngad tahtlikuks, kui kõrgem koosolek on alanud.

Replay on teistsugune standard. Replay tähendab, et süsteem säilitas piisavalt struktureeritud ajalugu, et saaks sündmuste jada uuesti läbi käia. See ei tähenda, et algset mudelit tuleb uuesti välja kutsuda või et iga välist sõltuvust saab taaselustada. See tähendab, et kirjest on näha, milline sisend vastu võeti, milline reegliversioon käivitus, milline väljund loodi, milline toiming tehti ja milline olek selle tulemusel tekkis. Ülevaataja peaks saama ahelat kontrollida ilma, et ta peaks lootma praeguse rakenduse ilusale jutule oma noorema versiooni kohta.

Replay muudab inseneritöö käitumist. Kui meeskond teab, et otsuseid saab hiljem taasesitada, on raskem peita poliitikat kooditeedesse nimedega nagu helper2. Raskem on lasta lävenditel triivida ilma, et salvestataks, kes neid muutis. Raskem on kohelda prompti malle kui kohalikke käsitööesemeid sülearvutis. Replay nõuab, et iga oluline toiming kannaks endaga kaasa oma konteksti. See on tüütu samamoodi nagu turvavööd: enamasti enne õnnetust.

Replay võimaldab ka valitsemisel muutuda rutiinseks. Selle asemel, et oodata intsidenti, saavad meeskonnad valimeid juhtumeid, kontrollida ahelaid, võrrelda tulemusi erinevate poliitikaversioonide lõikes ja tuvastada puuduvaid kirjeid. Auditijälg muutub asjaks, mida organisatsioon kasutab, mitte millekski, mida toodetakse ainult siis, kui ollakse nurka surutud. See erinevus loeb. Kontrollid, mida rakendatakse ainult hirmu ajal, kipuvad olema dekoratiivsed.

Replay on kasulik, sest see muudab audittöö osaks tavapärasest toimimisest, enne kui kõik on väsinud ja kaitsvad.

Hiljem lisamise hind

Hiline auditeeritavus omab väga spetsiifilist lõhna. See lõhnab uute tabelite järele nimedega nagu audit_log_final. See lõhnab andmeekspordi järele, millel on enamik veerge, kuid mitte need, mis on seotud küsimusega. See lõhnab konsultandi järele, kes küsib, kas on olemas tõeallikas, ja saab vastuseks ringkäigu viiest süsteemist. See lõhnab eelkõige kavatsuse tagurpidi insereerimise järele kõrvalmõjudest.

Otsene kulu on inseneriaeg. Meeskonnad peavad tuvastama, kus otsused toimusid, lisama sündmuste jäädvustuse, täitma ajaloolised kirjed, parandama lüngad, dokumenteerima eeldused ja ehitama ekspordipinnad. See töö langeb sageli ajale, mil süsteem kannab juba kasutajaid, intsidente, funktsioonisoove ja ootusi. Kaudne kulu on hullem: usaldus langeb. Kui organisatsioon ei suuda vastata põhiküsimustele omaenda süsteemi kohta, suhtutakse igasse hilisemasse vastusesse kahtlusega, isegi õigetesse.

Ka disainil on oma hind. Kui süsteem on ehitatud ilma auditeeritavuseta, ei pruugi selle piirid ühtida tõendusvajadustega. Otsus võib olla jagatud mitme komponendi vahel. Olekuid võidakse üle kirjutada, mitte juurde lisada. Põhjuseid võidakse arvutada kuvamiseks, kuid mitte salvestada. Mudeli sisendeid võidakse teisendada ja kõrvale heita. Inimeste tehtud ülekirjutused võivad elada kommentaarides. Auditeeritavuse järelpaigaldamine muutub siis vähem akna lisamiseks ja rohkem avastuseks, et sein on kandev.

Kulud ei ole ainult tehnilised. Hiline auditeeritavus tekitab poliitilisi vaidlusi selle üle, mis tegelikult juhtus. Inimesed kaitsevad oma meeskondi. Tarnijad kaitsevad oma liideseid. Juhid kaitsevad turuletoomisotsuseid. Kõigist saavad amatöörfilosoofid põhjuslikkuse teemal. See on mõistetav ja enamasti kasutu. Hea andmestik vähendab vajadust isiksusekesksete tõdede järele. See võimaldab institutsioonil vaielda poliitika ja parenduste üle, mitte selle üle, kas minevik on olemas.

Hea andmestik ei ole valvepornograafia

On õigustatud hirm, et auditeeritavusest saab järelevalve. Mõned organisatsioonid kuulevad „salvesta kõik" ja käituvad, nagu iga inimlik kõhklus vääriks ajatemplit. See ei ole auditeeritavus. See on institutsionaalne ärevus koos salvestusmahuga. Hea auditi disain on valikuline, proportsionaalne ja seotud oluliste muudatustega. See salvestab volituse ja oleku, mitte privaatset müra.

Töötajate jaoks on vahe oluline. Operaator, kes kinnitab erandi, peaks ootama, et kinnitus salvestatakse. Ta ei peaks ootama, et iga kursori liigutus muutub osaks püsivast moraalinäidendist. Spetsialist, kes teeb mudeli soovitusest ülekirjutuse, peaks jätma põhjusekoodi ja märkuse, kui otsus mõjutab juhtumit. Teda ei tohiks karistada eriarvamuse eest automatiseeritusega, mis oli niigi ebakindel. Auditeeritavus peaks muutma professionaalse hinnangu nähtavaks, mitte muutma professionaale pelglikuks.

Kodanike, klientide, patsientide või õpilaste jaoks peaks auditeeritavus toetama õigusi. See peaks võimaldama selgitada otsust, parandada valesid andmeid, vaidlustada tulemust, tõendada kustutamist või näidata, et allikat ei kasutatud. Andmestik, mis kaitseb ainult institutsiooni, on puudulik. Auditijälg ei tohiks olla ühesuunaline peegel. Kui süsteem mõjutab inimesi, peaks andmestik aitama vastata ka nende õigustatud küsimustele.

Siin kohtuvad andmete minimeerimine ja auditeeritavus. Vastus ei ole hoida kõike igavesti. Vastus on hoida õigeid fakte õige aja jooksul, selge eesmärgi, juurdepääsureeglite ning kustutamis- või säilitusloogikaga. Hõre, hästi struktureeritud andmestik on sageli lugupidavam ja kasulikum kui hiiglaslik kogum kogutud heitgaasi. Hunnik tundub ohutu, kuni keegi küsib, mis selles on. Siis muutub see otsinguga kohustuseks.

Riskiregister peaks rääkima sündmuste skeemiga

Riskiregistrid elavad sageli juhtimisdokumentides, samas kui sündmuste skeemid elavad insenerihoidlates. See eraldus on mugav ja ohtlik. Riskiregister ütleb, et on volitamata eskaleerimise risk. Sündmuste skeem peaks seetõttu salvestama, kes eskaleeris, millise volituse alusel, millisest olekust millisesse olekusse ja kas eskaleerimine oli automaatne või käsitsi. Kui skeem neid fakte ei jäädvusta, on kontroll pelgalt soovituslik. Soovitused on odavamad kui kontrollid, mis seletab nende populaarsust.

Sama kehtib mudeliriski kohta. Kui register ütleb, et madala usaldusväärsusega soovitusi tuleb üle vaadata, peaks süsteem salvestama usaldusväärsuse, läve, ülevaatusnõude, ülevaataja, tulemuse ja vabastamise või keeldumise põhjuse. Kui register ütleb, et allikate ulatus on oluline, peaksid sündmused salvestama allikate ulatuse. Kui säilitamine on risk, peaksid sündmused salvestama säilitusoleku muudatusi. Riskiregister ei tohiks olla tarkvara kohal hõljuv proosa. See peaks olema väidete kogum, mida käitusaeg saab aidata kontrollida.

See ei tähenda, et iga juhtimisnõue muutuks kohe koodiks. Mõned kontrollid on inimlikud, lepingulised või organisatoorsed. Kuid isegi inimlike kontrollide kohta on vaja tõendusmaterjali. Käsitsi ülevaatus võib siiski luua kirje. Lepinguline kohustus võib siiski olla seotud nõutava kinnitusega. Tarnija protsessi saab siiski esindada saadud sündmus, allkirjastatud aruanne või puuduv tõendusolek. Mõte on ühendada riskikeel tõenduskeeles enne, kui süsteem hakkab tagajärgi tootma.

Vaikne kasu on parem vestlus. Insenerid lõpetavad juhtimise kuulmise kui hilises etapis tehtava noomituse. Juhtimismeeskonnad lõpetavad inseneritöö kuulmise kui erandjuhtumite festivali. Mõlemad saavad vaadata sama sündmuste skeemi ja küsida, kas see kannab riske juhtimiseks vajalikke fakte. See on vähem glamuurne kui AI strateegia töötuba. Samuti on vähem tõenäoline, et see toodab PDF-i, mida keegi ei suuda rakendada.

Riskiregister muutub toimivaks, kui igal olulisel riskil on vastav sündmuste välja kuju.

Auditeeritavus muudab arendusvestlust

Kui auditeeritavus on algusest peale olemas, muutuvad disainiülevaatused konkreetsemaks. Meeskond ei küsi ainult seda, kas funktsioon töötab. Ta küsib, millise kirje funktsioon jätab. Ta küsib, kes saab kirjet kontrollida, kui kaua see säilib, mida saab parandada, mida ei tohi kunagi üle kirjutada ja millisele tulevasele küsimusele see peaks suutma vastata. Need küsimused parandavad funktsiooni, sest need toovad esile varjatud oleku ja ebaselge volituse.

Ka hanked muutuvad. Selle asemel, et küsida tarnijatelt, kas nad toetavad auditilogisid, millele peaaegu igaüks saab rõõmsalt jaatavalt vastata, saab organisatsioon küsida konkreetsete tõendusvõimete kohta. Kas poliitikaversioone saab eksportida koos iga otsusega. Kas mudelitunnuseid ja allikaulatusi saab lisada. Kas inimese tehtud ülekirjutamisi saab eristada automatiseeritud toimingutest. Kas kirjeid saab säilitada, kustutada, allkirjastada või taasesitada vastavalt meie reeglitele. Kas me saame jälge kontrollida ilma kallist professionaalsete teenuste seiklust maksmata. Viimane punkt on sageli see, kus ruum muutub harivaks.

Ka toimingud muutuvad. Intsidentidele reageerimine muutub vähem spekulatiivseks. Meeskond saab tuvastada mõjutatud juhtumid, võrrelda neid teadaolevate poliitikaversioonidega, leida puuduvad kirjed ja näidata teed signaalist tegevuseni. Vastavustöö muutub vähem hooajaliseks. Toote täiustamine muutub ausamaks, sest meeskond näeb mitte ainult seda, mida süsteem tegi, vaid ka seda, millistel tingimustel ta seda tegi. Auditeeritavus ei ole pidur tarnele. See on üks neist asjadest, mis takistab tarne muutumist tulevaseks väljakaevamiseks.

Miski sellest ei muuda süsteemi täiuslikuks. Auditeeritav süsteem võib siiski teha halbu otsuseid. See võib siiski kehastada halba poliitikat, kasutada nõrku andmeid või olla opereeritud inimeste poolt, kellel on väga inimlik teisipäev. Auditeeritavus ei taga tarkust. See tagab, et institutsioonil on parem võimalus näha, mis juhtus, sellest õppida ja tõestada, et ta ei leiutanud vastust lihtsalt tagantjärele.

Õppetund

Peamine viga on uskuda, et auditeeritavus kuulub lõppu, sest auditid toimuvad lõpus. Nad ei toimu. Auditid toimuvad pärast tagajärgi, kuid auditeeritavus peab eksisteerima enne tagajärgi. Kirje peab sündima koos tegevusega. Sündmus peab kandma oma konteksti, kuni kontekst on veel tõene. Süsteem peab säilitama erinevuse fakti, järelduse, poliitika, ülekirjutuse ja paranduse vahel.

See ei ole üleskutse raskele protsessile iga väikese tööriista ümber. See on üleskutse proportsionaalsusele. Mida rohkem süsteem muudab õigusi, juurdepääsu, raha, ohutust, abikõlblikkust, töökoormust või institutsionaalset mälu, seda rohkem peab see jätma struktureeritud tõendeid. Alustage tagajärgede piiridest. Nimetage sündmused. Versioneerige reeglid. Säilitage aeg ja identiteet. Muutke parandused liitvaks. Testige taasesitust enne, kui hirm tuppa astub.

Selles distsipliinis on midagi peaaegu koomilist. Usaldusväärse automatiseerimise tulevik sõltub vähem säravast intelligentsusest kui sellest, et mäletatakse, milline reegel käivitus märjal kolmapäeval veebruaris. Kuid tõsised institutsioonid on ehitatud sellisest mälust. Nad ei usalda süsteeme sellepärast, et süsteemid kõlavad enesekindlalt. Nad usaldavad süsteeme, sest süsteeme saab kontrollida, kui enesekindlusest enam ei piisa.

Nii et lisage tõendid, kui töö on veel tavaline. Enne käivitamispidu, enne intsidenti, enne migratsiooni, enne seda, kui meeskond unustab, miks see väli oli valikuline. Hiljem tuleb. Hiljem tuleb alati, kandes kaustikut nimega tõendite pakk ja küsimust, mis väärib paremat vastust kui ilmselt.