Revidējamību nevar pievienot vēlāk

Revidējamība nav laka, ko uzklāj pēc tam, kad sistēma sāk pieņemt nozīmīgus lēmumus. Tā ir dizaina īpašība, kurai jābūt klāt, kamēr darbs vēl ir ikdienišķs.

Revidējamību nevar pievienot vēlāk

The folder that arrived too late

The meeting room had the usual signs of institutional seriousness: glass walls, a coffee machine doing its best impression of a pressure vessel, and a folder called evidence pack on the shared screen. The system under review had been live for nine months. It routed internal cases, recommended next actions, escalated some of them to specialists, and quietly rejected others because the configured thresholds said so. Nobody in the room described it as a high-risk system during procurement. It was a productivity tool, which is what organisations call decision infrastructure before anyone asks who was affected.

The auditor asked a small question. For this case, which policy version was active when the recommendation was produced. The product owner looked at the architect. The architect looked at the data lead. The data lead opened a dashboard, then a log export, then a ticket. A developer remembered that policy versions had been stored in an environment variable during the first release and in a database table after the January migration. Someone said the change was probably harmless. This is rarely the sentence that makes an auditor relax.

Nothing had been built with bad intent. The team had logs, monitoring, access control, backups, incident tickets, and an internal wiki with enough pages to damage a printer. But the evidence was not a property of the system. It was a reconstruction exercise performed after the fact by people who still remembered the deployment. That is not auditability. That is oral history with timestamps.

Auditability should not be added later because later is exactly when memory has become political. People are nervous. The system has changed. Suppliers have rotated. Dashboards have been redesigned. The one engineer who understood the original data import now has a different job title and speaks of that period with the calm of someone who survived a plumbing incident. If the record was not created when the work happened, the later story will always contain more interpretation than evidence.

The late evidence pack is a reconstruction exercise; the runtime receipt is what would have made the question answerable.

Auditability is a design property

Many teams treat auditability as documentation. They imagine it as a set of diagrams, controls, approvals, export buttons, and policy statements that can be assembled once the system is close to release. This view is tempting because documentation feels cheaper than design. It lets the project keep moving while governance waits politely in the corridor with a clipboard. The bill arrives later, with interest.

Auditējamība ir tuvāk izturībai nekā dokumentācijai. Izturīga sistēma nekļūst izturīga tāpēc, ka kāds uzraksta ziņojumu, ka jumts, visticamāk, izturētu lietu. Jumts vai nu novada ūdeni, vai nē. Auditējama sistēma vai nu saglabā faktus, kas nepieciešami tās darbības pārbaudei, vai nē. Fakti var būt garlaicīgi: versija, avots, laikspiedols, veicējs, noteikums, slieksnis, izņēmums, apstiprinājums, modeļa identifikators, uzvednes veidne, datu tvērums, saglabāšanas stāvoklis. Garlaicīgums ir pieņemams. Tiltu arī notur garlaicīgas daļas. Dekoratīvās lampas nav slodzi nesošā konstrukcija.

Sarežģītākais ir tas, ka audita fakti ir jāfiksē tajā pašā līmenī, kur tiek pieņemti lēmumi. Ja darbplūsma izmanto politikas noteikumu, noteikuma versijai ir jābūt notikumā. Ja modeļa izvade tiek pieņemta lietas failā, modeļa versijai, ticamībai, avota tvērumam un pieņemšanas noteikumam ir jābūt ierakstā. Ja cilvēks atceļ ieteikumu, atcelšanas iemeslam ir jābūt blakus darbībai, nevis sapulces protokolā divas nedēļas vēlāk. Sistēmai nevajadzētu prasīt vēsturnieku, lai secinātu to, ko mašīna jau zināja izpildes laikā.

Tieši tāpēc auditējamība nav tas pats, kas žurnālfaili. Žurnālfaili ir noderīgi, bet to galvenais mērķis parasti ir darbības uzturēšana. Tie izskaidro kļūmes, laikus, atkārtotus mēģinājumus, izņēmumus un veiktspēju. Auditējamība uzdod citu jautājumu kopumu: kāda pilnvara tika izmantota, kādi pierādījumi tika izskatīti, kāds stāvoklis mainījās, kas vai kas to izraisīja, un vai secību var pārbaudīt, neuzticoties pašreizējam pakalpojumam. Žurnālfaili var atbalstīt šo darbu. Tie reti to veic vieni.

Pirmais lēmums ir tas, kas tiek uzskatīts par audita notikumu

Pirms sistēma var būt auditējama, organizācijai ir jāizlemj, kas tiek uzskatīts par audita notikumu. Tas izklausās administratīvi, bet tieši šeit sākas īstā arhitektūra. Ja katrs klikšķis ir notikums, ieraksts kļūst par atkritumu izgāztuvi. Ja tikai galīgie rezultāti ir notikumi, ieraksts kļūst par burvju triku. Noderīgais vidusceļš ir fiksēt mirkļus, kad mainās pilnvara, pierādījumi vai stāvoklis.

Lietas pieņemšana ir šāds mirklis. Avota dokumenta iekļaušana tvērumā ir vēl viens. Modeļa ieteikums ir viens, ja tas var ietekmēt darbu. Politikas vārtu aktivizēšanās ir viens. Cilvēka apstiprinājums ir viens. Atteikums, eskalācija, izņēmums, datu labošana, saglabāšanas izmaiņas, dzēšanas pieprasījums un pārsūdzība ir kandidāti. Mērķis nav saglabāt katru sistēmas elpu. Mērķis ir saglabāt savienojumus, kur vēlāks pārskatītājs pamatoti jautātu: kāpēc sistēma pārvietojās no šejienes uz turieni.

Šai atlasei ir jābūt skaidrai. Pretējā gadījumā komanda pārskatīšanas laikā atklāj, ka svarīgais notikums dzīvoja ēnā starp diviem komponentiem. Priekšgals zina, ka lietotājs redzēja brīdinājumu. Aizmugurgals zina, ka lieta mainīja stāvokli. Modeļa pakalpojums zina, ka tas atgrieza rezultātu. Darbplūsmas dzinējs zina, ka tika izvēlēts atzars. Neviens ieraksts nenorāda, ka brīdinājums, rezultāts, noteikums un atzars piederēja vienam lēmumam. Katram ir vāzes gabals. Galds joprojām ir slapjš.

Kad notikumu kopa ir nosaukta, inženieri var izstrādāt kontraktus ap to. Katram notikumam var būt obligātie lauki. Katram laukam var būt īpašnieks. Katras shēmas izmaiņas var būt versētas. Katrs saglabāšanas noteikums var būt saistīts ar juridisko un operatīvo vajadzību. Tas nav papīrs, kas atrodas blakus sistēmai. Tā ir daļa no sistēmas robežas. Ieraksts kļūst par darbplūsmas produktu, nevis atvainošanos, ko darbplūsma uzraksta pēc pusdienām.

Noderīgo notikumu kopums ir to savienojumu kopums, kuros mainās pilnvaras, pierādījumi vai stāvoklis.

Laiks nav dekorācija

Audita darbā laiks tiek uzsvērts pamatota iemesla dēļ. Lēmums, kas pieņemts pirms politikas maiņas, nav tas pats, kas lēmums pēc tās. Modeļa izvade, kas radīta pirms datu labojuma, nav tā pati, kas pēc tā. Lietas eskalācija pēc termiņa atšķiras no eskalācijas pirms termiņa. Laiks nav metadati, kas uzkaisīti virs notikumiem. Tas ir daļa no notikuma nozīmes.

Izkliedētās sistēmas padara laiku sarežģītu. Pulksteņi aizklīst. Rindas pārkārtojas. Notiek atkārtoti mēģinājumi. Darbinieki apstrādā ziņojumus novēloti. Partijas tiek ielādētas naktī ar darbiem, kas 2021. gadā tika nosaukti par pagaidu un tagad ir kulturāli pastāvīgi. Ja audita dizains pieņem vienu kārtīgu laika līniju, pirmais incidents to izglītos. Šī izglītošana parasti notiek izklājlapā, kas ir dārga mācību klase.

Auditējams dizains nošķir notikuma laiku, apstrādes laiku, spēkā esamības laiku un pārskatīšanas laiku tur, kur atšķirībai ir nozīme. Notikuma laiks norāda, kad lieta notika biznesa procesā. Apstrādes laiks norāda, kad komponents to apstrādāja. Spēkā esamības laiks norāda, kad noteikums vai stāvoklis kļuva derīgs. Pārskatīšanas laiks norāda, kad kāds vēlāk to pārbaudīja vai laboja. Šīs atšķirības var šķist sīkumainas, līdz viena lieta šķērso pusnakti, viens noteikums mainās pulksten 09:00 un viena rinda iztukšojas lēni, jo kāds mainīja darbinieku kopas lielumu ar pārliecību un bez pierādījumiem.

Tāda pati rūpība attiecas uz identitāti. Dalībnieks var būt cilvēks, pakalpojums, aģents, plānotais darbs, deleģēts lietotājs vai ārēja sistēma. Sistēmai jānorāda, kurš tas ir. Tai nevajadzētu slēpties aiz lietotāja administratora, jo tur dzīvo integrācijas konts. Kad pilnvaras ir deleģētas, deleģēšanai jābūt redzamai. Kad pakalpojums darbojas automātiski, īpašniekam un noteikumam jābūt redzamiem. Auditējamība prasa nosauktu atbildību, pat ja vārds nav cilvēks.

Rekonstrukcija nav atkārtošana

Kad komandas auditējamību pievieno vēlu, tās bieži samierinās ar rekonstrukciju. Tās vāc žurnālus, datubāzes momentuzņēmumus, biļetes, tērzēšanas ziņojumus un laidiena piezīmes. Tās veido ticamu laika līniju. Dažreiz laika līnija ir pareiza. Dažreiz tā ir ļoti kārtīga fikcija ar sirsnīgiem autoriem. Problēma nav tā, ka cilvēki melo. Problēma ir tā, ka rekonstrukcija liek cilvēkiem aizpildīt robus zem spiediena, un iestādes ir ārkārtīgi labas, lai robi izskatītos apzināti, tiklīdz sākusies vecāko darbinieku sanāksme.

Replay ir cits standarts. Replay nozīmē, ka sistēma ir saglabājusi pietiekami strukturētu vēsturi, lai secību varētu izstaigāt vēlreiz. Tas nenozīmē, ka sākotnējais modelis ir jāsauc vēlreiz vai ka katru ārējo atkarību var atjaunot. Tas nozīmē, ka ieraksts var parādīt, kāda ievade tika pieņemta, kura noteikumu versija tika izpildīta, kāda izvade tika radīta, kāda darbība tika veikta un kāds stāvoklis no tā izrietēja. Recenzentam ir jāspēj pārbaudīt ķēdi, nepaļaujoties uz to, ka pašreizējā lietotne stāsta glaimojošu stāstu par savu jaunāko versiju.

Replay maina inženierijas praksi. Ja komanda zina, ka lēmumus var atskaņot vēlreiz, kļūst grūtāk slēpt politiku koda ceļos ar nosaukumiem, piemēram, helper2. Kļūst grūtāk ļaut sliekšņiem novirzīties, neierakstot, kurš tos mainīja. Kļūst grūtāk izturēties pret uzvedņu veidnēm kā pret lokāliem amatniecības objektiem klēpjdatorā. Replay pieprasa, lai katra nozīmīga darbība nestu līdzi savu kontekstu. Tas kaitina tāpat kā drošības jostas: galvenokārt pirms avārijas.

Replay arī ļauj pārvaldībai kļūt par ikdienas praksi. Tā vietā, lai gaidītu incidentu, komandas var atlasīt gadījumus, pārbaudīt ķēdes, salīdzināt rezultātus starp politikas versijām un atklāt trūkstošus ierakstus. Revīzijas taka kļūst par kaut ko tādu, ko organizācija izmanto, nevis par kaut ko tādu, ko tā rada tikai tad, kad ir iedzīta stūrī. Šai atšķirībai ir nozīme. Kontrolēm, kuras tiek īstenotas tikai baiļu brīžos, ir tendence būt dekoratīvām.

Replay ir noderīgs, jo tas padara revīzijas darbu par daļu no normālas darbības, pirms visi ir noguruši un aizsardzības pozīcijās.

Izmaksas, ja to pievieno vēlāk

Vēlīnai revidējamībai ir ļoti specifiska smarža. Tā smaržo pēc jaunām tabulām ar nosaukumiem, piemēram, audit_log_final. Tā smaržo pēc datu eksporta, kurā ir lielākā daļa kolonnu, bet ne tās, kas saistītas ar jautājumu. Tā smaržo pēc konsultanta, kurš jautā, vai pastāv vienots patiesības avots, un saņem ekskursiju pa piecām sistēmām. Tā smaržo, galvenokārt, pēc nolūka rekonstrukcijas no blakusefektiem.

Tiešās izmaksas ir inženierijas laiks. Komandām ir jāidentificē, kur lēmumi tika pieņemti, jāpievieno notikumu ierakstīšana, jāaizpilda vēsturiskie ieraksti, jānovērš nepilnības, jādokumentē pieņēmumi un jāizveido eksporta saskarnes. Šis darbs bieži notiek, kad sistēmai jau ir lietotāji, incidenti, funkciju pieprasījumi un cerības. Netiešās izmaksas ir sliktākas: uzticība samazinās. Ja organizācija nevar atbildēt uz pamatjautājumiem par savu sistēmu, katra vēlākā atbilde tiek uztverta ar aizdomām, pat pareizās.

Ir arī dizaina izmaksas. Kad sistēma jau ir uzbūvēta bez auditejamības, tās robežas var nesakrist ar pierādījumu vajadzībām. Lēmums var būt sadalīts starp komponentiem. Stāvoklis var tikt pārrakstīts, nevis papildināts. Iemesli var tikt aprēķināti attēlošanai, bet neuzglabāti. Modeļa ievaddati var tikt pārveidoti un izmesti. Cilvēku veiktās korekcijas var dzīvot komentāros. Tad auditejamības pievienošana retroaktīvi kļūst mazāk līdzīga loga ielikšanai un vairāk līdzīga atklājumam, ka siena ir nesoša.

Izmaksas nav tikai tehniskas. Vēlīna auditejamība rada politiskus strīdus par to, kas patiesībā notika. Cilvēki aizstāv savas komandas. Piegādātāji aizstāv savas saskarnes. Vadītāji aizstāv palaišanas lēmumus. Ikviens kļūst par amatierfilozofu cēloņsakarību jautājumos. Tas ir saprotami un pārsvarā bezjēdzīgi. Labs ieraksts samazina vajadzību pēc personības virzītas patiesības. Tas ļauj iestādei strīdēties par politiku un uzlabojumiem, nevis par to, vai pagātne pastāv.

Labi ieraksti nav novērošanas teātris

Pastāv pamatotas bailes, ka auditejamība kļūst par novērošanu. Dažas organizācijas dzird "ierakstiet visu" un uzvedas tā, it kā katra cilvēka vilcināšanās būtu pelnījusi laika zīmogu. Tā nav auditejamība. Tā ir institucionāla trauksme ar pievienotu krātuvi. Laba audita dizains ir selektīvs, samērīgs un piesaistīts būtiskām izmaiņām. Tas ieraksta pilnvaras un stāvokli, nevis privātu troksni.

Darbiniekiem šī atšķirība ir svarīga. Operators, kurš apstiprina izņēmumu, var sagaidīt, ka apstiprinājums tiks ierakstīts. Viņam nevajadzētu sagaidīt, ka katra kursora kustība kļūs par daļu no pastāvīgas morāles izrādes. Speciālists, kurš atceļ modeļa ieteikumu, atstāj iemesla kodu un piezīmi, kad lēmums ietekmē lietu. Viņu nedrīkst sodīt par nepiekrišanu automatizācijai, kas jau sākotnēji bija nenoteikta. Auditejamībai vajadzētu padarīt profesionālo spriedumu redzamu, nevis padarīt profesionāļus bailīgus.

Pilsoņiem, klientiem, pacientiem vai studentiem auditejamībai vajadzētu atbalstīt tiesības. Tai vajadzētu ļaut izskaidrot lēmumu, labot nepareizus datus, apstrīdēt iznākumu, pierādīt dzēšanu vai parādīt, ka avots netika izmantots. Ieraksts, kas aizsargā tikai iestādi, ir nepilnīgs. Audita pēdas nedrīkst būt vienvirziena spogulis. Ja sistēma ietekmē cilvēkus, ierakstam vajadzētu palīdzēt atbildēt arī uz viņu pamatotajiem jautājumiem.

Šeit satiekas datu minimizēšana un auditejamība. Atbilde nav glabāt visu mūžīgi. Atbilde ir glabāt pareizos faktus pareizo laika periodu, ar skaidru mērķi, piekļuves noteikumiem un dzēšanas vai saglabāšanas loģiku. Reti, labi strukturēts ieraksts bieži ir cieņpilnāks un noderīgāks nekā milzīga uztverto datu kaudze. Kaudze šķiet droša, līdz kāds jautā, kas tajā ir. Tad tā kļūst par saistību ar meklēšanu.

Riska reģistram vajadzētu sarunāties ar notikumu shēmu

Riska reģistri bieži dzīvo pārvaldības dokumentos, bet notikumu shēmas dzīvo inženierijas repozitorijos. Šī atdalīšana ir ērta un bīstama. Riska reģistrs saka, ka pastāv neatļautas eskalācijas risks. Notikumu shēmai tāpēc vajadzētu ierakstīt, kurš eskalēja, ar kādām pilnvarām, no kāda stāvokļa, uz kādu stāvokli un vai eskalācija bija automātiska vai manuāla. Ja shēma neuztver šos faktus, kontrole ir tikai vēlme. Vēlmes ir lētākas nekā kontroles, kas izskaidro to popularitāti.

Tas pats attiecas uz modeļa risku. Ja reģistrs saka, ka zemas ticamības ieteikumi ir jāpārskata, sistēmai vajadzētu ierakstīt ticamību, slieksni, pārskatīšanas prasību, pārskatītāju, iznākumu un iemeslu izlaišanai vai atteikumam. Ja reģistrs saka, ka avota tvērums ir svarīgs, notikumiem vajadzētu ierakstīt avota tvērumu. Ja saglabāšana ir risks, notikumiem vajadzētu ierakstīt saglabāšanas stāvokļa izmaiņas. Riska reģistram nevajadzētu būt prozai, kas peld virs programmatūras. Tam vajadzētu būt apgalvojumu kopumam, ko izpildlaiks var palīdzēt pārbaudīt.

Tas nenozīmē, ka katra pārvaldības prasība uzreiz kļūst par kodu. Daži kontroles mehānismi ir cilvēciski, līgumiski vai organizatoriski. Bet pat cilvēciskiem kontroles mehānismiem ir vajadzīgi pierādījumi. Manuāla pārskatīšana joprojām var radīt ierakstu. Līgumisks pienākums joprojām var atbilst pieprasītai apliecinājuma formalitātei. Piegādātāja procesu joprojām var attēlot ar saņemtu notikumu, parakstītu ziņojumu vai trūkstoša pierādījuma stāvokli. Būtība ir savienot riska valodu ar pierādījumu valodu, pirms sistēma sāk radīt sekas.

Klusais ieguvums ir labāka saruna. Inženieri pārstāj uztvert pārvaldību kā vēlīnu aizrādījumu. Pārvaldības komandas pārstāj uztvert inženieriju kā malu gadījumu festivālu. Abas puses var skatīties uz vienu un to pašu notikumu shēmu un jautāt, vai tajā ir fakti, kas vajadzīgi riska pārvaldībai. Tas nav tik spoži kā mākslīgā intelekta stratēģijas darbnīca. Taču arī mazāk ticams, ka tā radīs PDF failu, kuru neviens nevar izmantot praksē.

Riska reģistrs kļūst operacionāls, kad katram nopietnam riskam ir atbilstoša notikumu lauka forma.

Revidējamība maina izstrādes sarunu

Kad revidējamība ir klāt no paša sākuma, dizaina pārskati kļūst konkrētāki. Komanda ne tikai jautā, vai funkcija darbojas. Tā jautā, kādu ierakstu funkcija atstāj. Tā jautā, kurš var pārbaudīt ierakstu, cik ilgi tas tiek glabāts, ko var labot, ko nekad nedrīkst pārrakstīt un uz kādu nākotnes jautājumu tam būtu jāspēj atbildēt. Šie jautājumi uzlabo funkciju, jo atklāj slēptu stāvokli un neskaidru pilnvarojumu.

Mainās arī iepirkums. Tā vietā, lai jautātu piegādātājiem, vai viņi atbalsta audita žurnālus, uz ko gandrīz visi var atbildēt ar priecīgu jā, organizācija var pieprasīt konkrētas pierādījumu iespējas. Vai politikas versijas var eksportēt kopā ar katru lēmumu. Vai var iekļaut modeļa identifikatorus un avota darbības jomas. Vai cilvēka veiktas atcelšanas var atšķirt no automatizētām darbībām. Vai ierakstus var saglabāt, dzēst, parakstīt vai atkārtoti atskaņot saskaņā ar mūsu noteikumiem. Vai mēs varam pārbaudīt izsekošanas ķēdi, nemaksājot par varonīgu profesionālo pakalpojumu piedzīvojumu. Pēdējais punkts bieži ir tas, kur telpa kļūst izglītojoša.

Mainās arī darbība. Incidentu atbildes kļūst mazāk spekulatīvas. Komanda var identificēt skartos gadījumus, salīdzināt tos ar zināmām politikas versijām, atrast trūkstošos ierakstus un parādīt ceļu no signāla līdz darbībai. Atbilstības darbs kļūst mazāk sezonāls. Produkta uzlabošana kļūst godīgāka, jo komanda redz ne tikai to, ko sistēma darīja, bet arī kādos apstākļos tā to darīja. Revidējamība nav bremze piegādei. Tā ir viena no lietām, kas neļauj piegādei kļūt par nākotnes izrakumiem.

Neviens no šiem aspektiem nepadara sistēmu perfektu. Pārbaudāma sistēma joprojām var pieņemt sliktus lēmumus. Tā joprojām var iestrādāt vāju politiku, izmantot vājus datus vai tikt vadīta no cilvēkiem, kuriem vienkārši ir ļoti cilvēciska slikta diena. Pārbaudāmība negarantē gudrību. Tā garantē, ka iestādei ir lielāka iespēja redzēt, kas noticis, mācīties no tā un pierādīt, ka tā atbildi nav vienkārši izdomājusi pēc fakta.

Mācība

Galvenā kļūda ir uzskatīt, ka pārbaudāmība pieder beigām, jo revīzijas notiek beigās. Tā nav. Revīzijas notiek pēc sekām, bet pārbaudāmībai ir jāpastāv pirms sekām. Ierakstam ir jādzimst kopā ar darbību. Notikumam ir jānes līdzi savs konteksts, kamēr konteksts vēl ir patiess. Sistēmai ir jāsaglabā atšķirība starp faktu, secinājumu, politiku, ignorēšanu un labojumu.

Tas nav aicinājums uz smagu procesu ap katru mazu rīku. Tas ir aicinājums uz samērīgumu. Jo vairāk sistēma maina tiesības, piekļuvi, naudu, drošību, atbilstību, darba slodzi vai iestādes atmiņu, jo vairāk tai ir jāatstāj strukturēti pierādījumi. Sāciet ar nozīmīgajām robežām. Nosauciet notikumus. Versējiet noteikumus. Saglabājiet laiku un identitāti. Padariet labojumus aditīvus. Pārbaudiet atkārtošanu, pirms bailes ienāk telpā.

Šajā disciplīnā ir kaut kas gandrīz komisks. Uzticamas automatizācijas nākotne mazāk ir atkarīga no spoža intelekta nekā no atcerēšanās, kurš noteikums tika aktivizēts kādā lietainā trešdienā februārī. Bet nopietnas iestādes ir būvētas no šāda veida atmiņas. Tās neuzticas sistēmām tāpēc, ka sistēmas izklausās pārliecinātas. Tās uzticas sistēmām tāpēc, ka sistēmas var pārbaudīt, kad pārliecība vairs nav pietiekama.

Tāpēc pievienojiet pierādījumus, kamēr darbs vēl ir ikdienišķs. Pirms atklāšanas ballītes, pirms incidenta, pirms migrācijas, pirms komanda aizmirst, kāpēc šis lauks bija neobligāts. Vēlāk pienāks. Vēlāk vienmēr pienāk, nesot līdzi mapi ar nosaukumu pierādījumu komplekts un jautājumu, kas ir pelnījis labāku atbildi nekā varbūt.