Dvojno razmišljanje za kaotične sustave
Ventil u podrumu
Najbolja lekcija koju sam ikad dobio o binarnim odlukama nije došla s računala. Došla je od upravitelja zgrade koji je stajao u podrumu pokraj vodenog ventila. Zgrada iznad nas imala je senzore, pumpe, brojila, stanare, alarme, izvođače, energetski ugovor, zaostatak u održavanju i odbor koji je bio vrlo vješt u korištenju riječi holistički. Ventil je imao dva položaja. Otvoren ili zatvoren.
To zvuči primitivno sve dok cijev ne procuri. U trenutku kada voda putuje kroz strop, sustav ne treba bogatu raspravu o djelomičnoj namjeri. Treba mu granica koju umorna osoba s baterijskom svjetiljkom može provjeriti. Je li ventil zatvoren, da ili ne. Odgovor ne rješava cijelu zgradu. Ali stvara stabilnu činjenicu oko koje ostatak zgrade može postati manje nerazuman.
Softverski timovi često govore o binarnom razmišljanju kao o moralnom neuspjehu. Nijanse su dobre, pa binarno mora biti loše. Pogreška je tretirati binarno razmišljanje kao svjetonazor umjesto kao inženjerski alat. Svijet je kaotičan. Ljudi su nedosljedni. Podaci su nepotpuni. Institucije mijenjaju mišljenje s povjerenjem pisača koji tvrdi da ima papira. Ništa od toga ne znači da svaka unutarnja granica treba biti zid magle.
Složen sustav postaje provjerljiv kada su neke njegove granice namjerno binarne. Zahtjev je prihvaćen ili odbijen. Zapis je zapečaćen ili nije zapečaćen. Odgovor modela smije ući u tijek rada ili se zadržava na pregledu. Verzija pravila je aktivna ili neaktivna. Izvor podataka je u opsegu ili izvan opsega. To nisu tvrdnje da stvarnost ima samo dvije nijanse. To su upravljačke površine. One daju operaterima mjesto na kojem mogu stajati.
Binarno nije isto što i pojednostavljeno
Pojednostavljeno razmišljanje uklanja informacije jer su nezgodne. Binarno inženjerstvo čuva informacije, a zatim donosi usku odluku na određenoj točki. Ta razlika nije kozmetička. Bolnički trijažni sustav može bilježiti simptome, nesigurnost, povijest bolesti, čimbenike rizika i bilješke kliničara, dok i dalje odlučuje treba li se pacijent odmah prebaciti na višu razinu skrbi. Platni sustav može zadržati signale prijevare, kontekst ponašanja, dokaze s uređaja i verzije pravila, dok i dalje odlučuje hoće li transakciju pustiti ili zadržati.
Šteta počinje kada timovi pomiješaju binarni rezultat s cijelim procesom rasuđivanja. Ako sustav jednostavno kaže odobreno ili odbijeno i baci trag, dobio je najgore od oba svijeta: tešku odluku s mekim dokazima. To nije jasnoća. To je birokracija prerušena u korisničko sučelje. Ispravan binarni dizajn održava lanac dokaza netaknutim kako bi se da ili ne moglo osporiti, ponoviti i poboljšati.
Postoji i praktičan ljudski razlog zašto volimo jasne granice. Ljudi koji upravljaju stvarnim sustavima moraju znati u kakvom su stanju. Tijek rada koji je možda poslan, uglavnom odobren, vjerojatno usklađen i duhovno dovršen nije tijek rada. To je mali vremenski obrazac s priloženim računima. Jasni prijelazi stanja smanjuju pogreške jer uklanjaju interpretativni rad iz trenutaka koji su već puni pritiska.
Zato korisno pitanje nije trebamo li razmišljati u binarnim kategorijama. Korisno pitanje je gdje treba postaviti binarnu granicu i što se mora sačuvati na obje njezine strane. Postavite je prerano i spljoštit ćete svijet. Postavite je prekasno i sustav će propuštati dvosmislenost u svaki nizvodni proces. Postavite je na pravi spoj i složenost postaje provjerljiva.
Granica mora zaslužiti svoj autoritet
Binarnim vratima nikada ne treba vjerovati samo zato što su odlučna. Odlučnost je laka. I pokvarena vrata su odlučna. Vrata zaslužuju autoritet tako što objavljuju pravila koja su koristila, dokaze koje su vidjela, kontekst koji su zanemarila, vlasnika odgovornog za promjene i put za iznimke. Bez tih dijelova, binarna vrata postaju proročište. Proročišta su vrlo impresivna sve dok nabava ne pita koliko koštaju.
Razmotrite automatizirani tijek rada za provjeru podobnosti za javnu uslugu. Podnositelj zahtjeva može imati djelomičnu dokumentaciju, promjenjiv sastav kućanstva, različite izvore prihoda i povijest u nekoliko sustava. Konačno administrativno stanje možda mora biti podoban ili nepodoban jer se novac ne može isplatiti napola iz filozofskog uvjerenja. Ali sustav ne smije pretvarati da je podnositelj zahtjeva bio binaran. Mora tretirati osobu kao složenu, a stanje isplate kao binarno.
Ta razlika štiti obje strane. Institucija dobiva jasno stanje djelovanja. Podnositelj zahtjeva dobiva zapis koji se može osporiti. Operater dobiva tijek rada koji se može nadzirati. Inženjer dobiva ugovor koji se može testirati. Revizor dobiva nešto bolje od snimke zaslona zalijepljene u dokument nazvan final-final-v3. Svi ostaju smrtni, ali barem su imenice na svom mjestu.
Zašto neuredni sustavi trebaju manje sivih zona
Sive zone djeluju humano jer ostavljaju prostora za prosudbu. One također mogu postati skrovišta za zanemarenu odgovornost. U neurednom sustavu svako dvosmisleno stanje ima cijenu. Netko ga mora protumačiti. Netko ga mora uskladiti. Netko mora objasniti zašto se promijenilo. Netko mora reći kupcu da sustav kaže gotovo, što rijetko zadovoljava kao odgovor osim ako kupac nije naručio juhu.
Binarne granice smanjuju broj stanja koja nizvodni sustavi moraju razumjeti. One čine integraciju sigurnijom jer primatelj točno zna što se dogodilo. Čine testove jačima jer se očekivano ponašanje može potvrditi. Čine nadzor jasnijima jer se prijelaz stanja ili dogodio ili nije. Čine odgovor na incident smirenijim jer prvo pitanje postaje koja je vrata promijenila stanje, umjesto kakav je ovaj oblak djelomičnih događaja danas.
To je važno u sustavima s naglaskom na umjetnu inteligenciju jer su izlazi modela često probabilistički, dok tijekovi rada nisu. Model može dodijeliti vjerojatnost, rangirati alternative, procijeniti rizik ili sažeti dokaze. Tijek rada i dalje mora znati treba li poslati e-poštu, odobriti povrat, proslijediti predmet na višu razinu, zaključati račun ili uključiti čovjeka. Tretiranje vjerojatnosti kao radnje način je na koji sustavi dobivaju skupe osobnosti. Granica pretvara izlaz modela u institucionalno ponašanje, i to mora činiti promišljeno.
Model može ostati nijansiran. Vrata ne mogu. Vrata mogu reći da je rezultat ispod praga i da je zapis nepotpun, pa uputiti na ljudsku provjeru. Mogu reći da je izvor izvan opsega, pa odbiti odgovoriti. Mogu reći da je verzija pravila istekla, pa blokirati radnju. Ta odbijanja mogu kratkoročno smetati ljudima. I crveno svjetlo na semaforu smeta. Civilizacija nekako opstaje.
Dobre binarne odluke otkrivaju loše pretpostavke
Jedna tiha prednost binarnih granica jest da prisiljavaju pretpostavke da izađu na vidjelo. Ako se tim ne može odlučiti što se smatra u opsegu, vjerojatno ne razumije tijek rada. Ako nitko ne posjeduje prag, prag nije tehnički parametar. To je neupravljana politika. Ako sustav ne može reći koji su dokazi uzeti u obzir, binarni rezultat nije revidibilan. Vrata upravljaju maglom.
Zato je binarno oblikovanje korisno tijekom otkrivanja, ne samo implementacije. Pitajte prisutne što mora biti istinito prije nego se predmet može pomaknuti naprijed. Pitajte što mora biti neistinito prije nego sustav odbije. Pitajte koji su dokazi potrebni da se možda pretvori u da. Odgovori otkrivaju gdje nedostaje politika, gdje su ugovori o podacima nejasni, gdje je vlasništvo teatralno i gdje se proces oslanja na herojsku interpretaciju jedne osobe koja uskoro ide na godišnji odmor.
Binarne granice također su izvrsne u otkrivanju skrivene povezanosti. Jednostavno odobreno stanje može ovisiti o provjeri identiteta, statusu plaćanja, privoli, zadržavanju podataka, pouzdanosti modela, jurisdikciji i ljudskoj provjeri. Ako sve to mora biti istinito, granica nije jednostavna. Ona je složena. To je u redu, sve dok je složeni uvjet imenovan i zabilježen. Opasnost je pretvarati se da su složena vrata samo dojam.
Disciplina povratnih rubova
Binarna odluka ne bi smjela biti zamka, osim ako to domena doista ne zahtijeva. Većina operativnih granica treba kontroliran način povratka. Povratno ne znači ležerno. Znači da sustav zna što mora sačuvati kako kasnija ispravka ne bi postala nova misterija. Predmet se može ponovno otvoriti, ali staro stanje ostaje vidljivo. Plaćanje se može poništiti, ali razlog i ovlast se bilježe. Dopuštenje se može povući, ali trag pristupa ostaje. To je razlika između ispravke i amnezije.
Timovi se često opiru jasnim odlukama jer se boje pogreške. Bolji odgovor nije nejasnoća. To je osmišljavanje puta za pogrešku. Što se dogodi ako vrata odbiju predmet koji je trebao proći. Što se dogodi ako prihvate zapis koji je trebao biti zadržan. Tko može promijeniti stanje. Koje nizvodne sustave treba obavijestiti. Koji prethodni izlazi postaju zastarjeli. Koja izvješća trebaju označiti poništenje. Granica koja odgovori na ta pitanja može biti čvrsta bez da postane okrutna.
To je osobito važno tamo gdje automatizirani sustavi dolaze u dodir s ljudima. Građanin, pacijent, zaposlenik ili kupac ne bi smjeli biti prisiljeni raspravljati se s duhom stanja. Ako sustav kaže ne, zapis bi trebao pokazati zašto. Ako je zapis pogrešan, institucija bi trebala znati kako ga popraviti bez tihe zamjene prošlosti. Ljudsko dostojanstvo u tehničkom tijeku rada često je manje poetsko nego što želimo. Ponekad je to jednostavno pravo da se pronađe stanje, pročita razlog i zamoli imenovana osoba da ga promijeni.
Povratni rub štiti i inženjere. Testovima daje nešto stvarno za provjeru. Odgovoru na incidente daje poznati put. Sprječava timove za podršku da izmišljaju sjenovite postupke u chatu jer službeni proces ima emocionalni raspon mokrog kartona. Kad put poništenja postoji u sustavu, rukovanje iznimkama postaje uređen posao, a ne narodna predaja.
Pogrešna mjesta za binarno razmišljanje
Postoje loše upotrebe binarnog razmišljanja i ne zaslužuju milost. Ljudi nisu čiste kategorije. Društvene situacije nisu if naredbe. Medicinska prosudba, pravni argument, obrazovanje, dizajn, pregovaranje i istraživanje sadrže nesigurnost koju treba pošteno prikazati. Sustav koji sažima složenu osobu u dobar ili loš, siguran ili nesiguran, vrijedan ili nevrijedan ne bavi se inženjerstvom. To je ubrzano loša sociologija.
Pravilo je jednostavno: binarne odluke koristite za stanje sustava, ne za ljudsku vrijednost. Datoteka može biti potpuna ili nepotpuna. Dopuštenje može biti odobreno ili odbijeno. Zahtjev može biti unutar ili izvan propisane politike. Osobu se ne smije svesti na izlaznu oznaku. To zvuči očito, no mnogi su sustavi uspjeli postati impresivni protuprimjeri.
Binarne granice također su pogrešne kada je cijena pogreške skrivena od sustava. Ako pristupnik uskrati uslugu, tko vidi štetu. Ako klasifikator blokira račun, tko se može žaliti. Ako automatizirani proces odluči ne prikazati informaciju, kako institucija sazna da je taj izbor bio štetan. Binarni pristupnik bez povratne informacije nije stabilan. On je samo tih. Tihi neuspjeh popularan je jer održava grafove urednima.
Što je granica posljedičnija, to put revizije mora biti eksplicitniji. To nije protiv automatizacije. To je ono što automatizaciju čini održivom. Odbijanje koje se može objasniti i osporiti često je humanije od nesigurnog možda koje osobu šalje kroz tri odjela i jedan portal koji radi tek poslije ručka.
Inženjerski oblik
U softveru, dobra binarna granica obično ima mali skup vidljivih dijelova. Postoji ugovor o ulazu. Postoji pravilo ili izlaz modela. Postoji funkcija odlučivanja. Postoji trajno pohranjen rezultat. Postoji kod razloga. Postoji vlasnik. Postoji put ponovne reprodukcije. Postoji put revizije ili nadjačavanja. Ništa od toga ne zahtijeva katedralu. Zahtijeva disciplinu, a možda i manje nadzornih ploča koje se pretvaraju da su upravljanje.
Funkcija odlučivanja trebala bi biti dovoljno dosadna za testiranje. To ne znači da je analiza na višoj razini jednostavna. Analiza može biti bogata, probabilistička i iz više izvora. Konačni prijelaz trebao bi biti uzak. Na primjer: ako su potrebni dokazi prisutni, izvor je unutar politike, rezultat premašuje propisani prag i nijedno pravilo isključenja se ne aktivira, tada se slučaj prosljeđuje. U suprotnom se odbija ili upućuje na reviziju. To nije romantično. To je ugovor.
Testiranje tada postaje smisleno. Možete testirati rubne slučajeve oko pragova. Možete ponovno reproducirati povijesni slučaj s novom verzijom pravila. Možete dokazati da se izvori izvan opsega odbijaju. Možete usporediti broj ljudskih revizija prije i poslije promjene. Možete se upitati proizvodi li pristupnik više žalbi iz jedne skupine ili regije. Binarne odluke ne uklanjaju etiku. One čine mjesto na kojem etika ulazi u sustav lakšim za nadzor.
Koreografija oko pristupnika
Sam binarni prolaz obično je malen. Koreografija oko njega je mjesto gdje sustavi ili postanu civilizirani ili počnu gomilati probleme. Prijem mora imenovati ulaz. Kvalifikacija mora reći je li izvor dopušten. Funkcija odlučivanja mora emitirati jedno operativno stanje. Perzistencija mora spremiti razloge i verzije. Obavijest mora reći pogođenim sustavima što se promijenilo. Revizija mora osigurati put natrag. Upravljanje promjenama mora spriječiti da se pravilo tiho mijenja između dva slučaja koja su trebala biti usporediva.
Ništa od ovoga nije glamurozna arhitektura. Bliže je označavanju ladica. Zato i funkcionira. Prave operacije ovise o tome da mala ponavljana djela budu nedvosmislena. Ako je narudžba otkazana, inventar je ne bi trebao tretirati kao duhovno na čekanju. Ako je privola povučena, analitički cjevovod ne bi trebao nastaviti raditi samo zato što je stari izvadak zgodno optimističan. Ako inačica pravila istekne, sljedeća odluka ne bi trebala posuditi autoritet od jučer samo zato što je cron posao bio stidljiv.
Nazivi stanja ovdje su važni. Na čekanju za reviziju nije isto što i odbijeno. Odbijeno uz žalbu nije isto što i konačno odbijanje. Odobreno uz čekanje na dokaze često je znak problema, osim ako tijek rada nema vrlo jasan razlog za to. Timovi ponekad stvaraju međustanja jer ne žele riješiti pitanje upravljanja. Baza podataka tada postaje ormar za spise institucionalne neodlučnosti. Računala će to vjerno pohraniti. Ona nemaju ukusa.
Dobar model stanja drži broj stanja malim, a značenje svakog stanja oštrim. Također čuva dokaze dovoljno bogatima da malo stanje ne bude glupo. Ta kombinacija je srce metode: sačuvaj složenost u zapisu, suzi stanje djelovanja i učini kretanje između stanja dovoljno eksplicitnim da ga osoba kasnije može pratiti bez da postane amaterski arheolog.
Zašto je to neugodno
Binarni dizajn može djelovati grubo jer uklanja utjehu nejasnoće. Nejasni sustav dopušta svima da vjeruju kako je njihovo tumačenje još uvijek živo. Binarna granica traži od institucije da odabere. To je politički nezgodno. To je također razlog zašto je granica vrijedna. Sustavi koji nikada ne odaberu na pravoj razini svejedno odaberu kasnije, obično kroz odgodu, nedosljednost ili slučajni autoritet onoga tko najbrže odgovori na pristiglu poštu.
U tome postoji nizozemska praktičnost koja mi se sviđa. Ako biciklistička staza završi, boja ne filozofira. Ona prestane. Tada se svi mogu svađati o tome je li dizajn dobar, ali barem znaju gdje svađa počinje. Jasna granica ne čini politiku ispravnom. Ona čini politiku dovoljno vidljivom da se može poboljšati. To je skromna vrlina te stvari.
Najbolji binarni sustavi su ponizni. Ne tvrde da razumiju cijeli svijet. Kažu: u ovoj točki ovog tijeka rada, s obzirom na ove dokaze i ovu inačicu pravila, ući ćemo u ovo stanje i sačuvati zapis. Ta poniznost je korisnija od velikih tvrdnji o inteligentnoj automatizaciji. Priznaje da je granica napravljena, a ne otkrivena s nebesa.
Pouka
Neuredni sustavi ne postaju sigurniji time što svaki dio učine neurednim. Postaju sigurniji odlučivanjem gdje je dvosmislenost dopuštena, gdje se mora sačuvati i gdje mora prestati. Binarno razmišljanje opasno je kao ideologija, a korisno kao arhitektura. Trik je znati razliku.
Dobra binarna granica štiti složenost na ulazu, donosi jasnu odluku na pravoj točki, čuva dokaze na izlazu i ostavlja put za reviziju. Ona nije neprijatelj nijansi. Ona je jedan od načina na koji nijanse preživljavaju kontakt s operacijama. Bez takvih granica složeni sustavi postaju pristojne močvare. S njima ih mogu pregledavati ljudi koji imaju druge obveze, a to je većina ljudi.