Bináris gondolkodás rendezetlen rendszerekhez

Binary choices are often mocked as simplistic. Used at the right boundary, they can make complex systems clearer, safer, and easier to inspect without...

Bináris gondolkodás rendezetlen rendszerekhez

A pince szelepe

A legjobb leckét, amit valaha a bináris döntésekről kaptam, nem egy számítógéptől tanultam. Egy létesítményvezetőtől jött, aki egy pince állt egy vízszelep mellett. Az épület fölöttünk tele volt érzékelőkkel, szivattyúkkal, mérőórákkal, bérlőkkel, riasztókkal, vállalkozókkal, energia szerződéssel, karbantartási hátralékkal és egy bizottsággal, amely nagyon ügyesen használta a holisztikus szót. A szelepnek két állása volt. Nyitva vagy zárva.

Ez primitívnek hangzik, amíg el nem kezd szivárogni a cső. Abban a pillanatban, amikor a víz átutazik a mennyezeten, a rendszernek nincs szüksége gazdag vitára a részleges szándékról. Egy határra van szüksége, amelyet egy fáradt ember is ellenőrizhet egy zseblámpával. Zárva van-e a szelep, igen vagy nem. A válasz nem oldja meg az egész épületet. De létrehoz egy stabil tényt, amely körül az épület többi része kevésbé ostobává válhat.

A szoftvercsapatok gyakran úgy beszélnek a bináris gondolkodásról, mintha erkölcsi kudarc lenne. Az árnyaltság jó, tehát a binárisnak rossznak kell lennie. A hiba az, ha a bináris gondolkodást világnézetként kezeljük ahelyett, hogy mérnöki eszközként használnánk. A világ rendezetlen. Az emberek következetlenek. Az adatok hiányosak. Az intézmények olyan magabiztossággal változtatják meg a véleményüket, mint egy nyomtató, amely azt állítja, hogy van papírja. Egyik sem jelenti azt, hogy minden belső határnak ködösnek kellene lennie.

Egy összetett rendszer ellenőrizhetővé válik, ha néhány határa szándékosan bináris. Egy kérést elfogadnak vagy elutasítanak. Egy rekord le van pecsételve vagy nincs lepecsételve. Egy modell válasza bekerülhet egy munkafolyamatba, vagy visszatartják felülvizsgálatra. Egy szabályzatverzió aktív vagy inaktív. Egy adatforrás a hatókörön belül van vagy kívül. Ezek nem azt állítják, hogy a valóságnak csak két árnyalata van. Ezek vezérlőfelületek. Stabil pontot adnak az üzemeltetőknek.

Egy bináris döntés akkor hasznos, ha egy elnevezett határnál helyezkedik el, nem pedig akkor, ha a környező káosz megértésének helyettesítőjeként használják.

A bináris nem ugyanaz, mint a leegyszerűsítés

A leegyszerűsítő gondolkodás azért távolít el információt, mert az kényelmetlen. A bináris mérnöki munka megőrzi az információt, majd egy szűk döntést hoz egy adott ponton. Ez a különbségtétel nem pusztán esztétikai. Egy kórházi triázsrendszer rögzítheti a tüneteket, a bizonytalanságot, a kórtörténetet, a kockázati tényezőket és a klinikusok megjegyzéseit, miközben mégis eldönti, hogy egy beteget azonnal tovább kell-e irányítani. Egy fizetési rendszer megtarthatja a csalásjelzéseket, a viselkedési kontextust, az eszközre vonatkozó bizonyítékokat és a szabályzatverziókat, miközben mégis eldönti, hogy elengedjen vagy visszatartson egy tranzakciót.

A kár akkor kezdődik, amikor a csapatok összekeverik a bináris kimenetet a teljes gondolkodási folyamattal. Ha egy rendszer egyszerűen azt mondja, hogy jóváhagyva vagy elutasítva, és eldobja a nyomvonalat, akkor mindkét világ legrosszabbját hozta létre: kemény döntést puha bizonyítékokkal. Ez nem világosság. Ez bürokrácia felhasználói felületbe öltöztetve. A megfelelő bináris tervezés érintetlenül tartja a bizonyítékok láncát, hogy az igen vagy nem megkérdőjelezhető, újrajátszható és javítható legyen.

Van egy gyakorlati, emberi ok is, amiért érdemes szeretni az éles határokat. Azoknak, akik valódi rendszereket üzemeltetnek, tudniuk kell, milyen állapotban van az adott rendszer. Egy munkafolyamat, amely talán beküldve, nagyjából jóváhagyva, valószínűleg megfelelő és lelkileg kész, az nem munkafolyamat. Az egy kis időjárási front, amelyhez számlák vannak csatolva. Az egyértelmű állapotátmenetek csökkentik a hibák számát, mert megszüntetik az értelmezési munkát olyan pillanatokban, amelyek amúgy is feszültek.

Ezért nem az a hasznos kérdés, hogy binárisan gondolkodjunk-e. A hasznos kérdés az, hogy hová kerüljön a bináris határ, és mit kell megőrizni annak mindkét oldalán. Ha túl korán húzzuk meg, ellaposítjuk a világot. Ha túl későn, a rendszer minden downstream folyamatba kiszivárogtatja a kétértelműséget. Ha a megfelelő illesztési pontra kerül, a komplexitás áttekinthetővé válik.

A határnak ki kell érdemelnie a tekintélyét

Egy bináris kaput soha nem szabad pusztán azért elfogadni, mert határozott. Határozottnak lenni könnyű. Egy törött ajtó is határozott. A kapu akkor érdemli ki a tekintélyét, ha kijelenti, milyen szabályokat használt, milyen bizonyítékokat látott, milyen kontextust hagyott figyelmen kívül, ki a felelős tulajdonos a változtatásért, és mi az eltérés kezelésének módja. Ezen elemek nélkül a bináris kapu jóslóvá válik. A jóslók nagyon lenyűgözőek, amíg a beszerzés meg nem kérdezi, mennyibe kerülnek.

Vegyünk egy automatikus jogosultsági munkafolyamatot egy közszolgáltatásban. A kérelmezőnek lehetnek hiányos dokumentumai, változó háztartási összetétele, különböző jövedelemforrásai és előzményei több rendszerben. A végső adminisztratív állapotnak jogosultnak vagy nem jogosultnak kell lennie, mert a pénzt nem lehet filozófiai hajlam alapján félbefizetni. A rendszernek azonban nem szabad úgy tennie, mintha a kérelmező bináris lenne. Az embert komplexként kell kezelnie, a fizetési állapotot pedig binárisként.

Ez a megkülönböztetés mindkét felet védi. Az intézmény egyértelmű cselekvési állapotot kap. A kérelmező olyan nyilvántartást kap, amely ellen fellebbezhet. Az üzemeltető felügyelhető munkafolyamatot kap. A mérnök tesztelhető szerződést kap. Az ellenőr valami jobbat kap, mint egy képernyőkép, amelyet egy final-final-v3 nevű dokumentumba illesztettek. Mindenki halandó marad, de legalább a főnevek rendben vannak.

A kemény él csak akkor védhető, ha a lágy kontextust olyan nyilvántartásba vitték, amelyet a későbbi olvasók átvizsgálhatnak.

Miért van szükség kevesebb szürke zónára a kaotikus rendszerekben

A szürke zónák emberinek tűnnek, mert teret hagynak az ítélőképességnek. Ugyanakkor búvóhelyévé is válhatnak az elhanyagolt felelősségnek. Egy kaotikus rendszerben minden kétértelmű állapotnak ára van. Valakinek értelmeznie kell. Valakinek egyeztetnie kell. Valakinek meg kell magyaráznia, miért változott. Valakinek meg kell mondania az ügyfélnek, hogy a rendszer szerint majdnem, ami ritkán kielégítő válasz, hacsak az ügyfél nem levest rendelt.

A bináris határok csökkentik azoknak az állapotoknak a számát, amelyeket a downstream rendszereknek értelmezniük kell. Biztonságosabbá teszik az integrációt, mert a fogadó pontosan tudja, mi történt. Erősebbé teszik a teszteket, mert a várt viselkedés ellenőrizhető. Átláthatóbbá teszik a monitorozást, mert egy állapotátmenet vagy bekövetkezett, vagy nem. Nyugodtabbá teszik az incidenskezelést, mert az első kérdés az lesz, hogy melyik kapu váltott állapotot, nem pedig az, hogy mit érzékeltet ma ez a részleges eseményekből álló felhő.

Ez a mesterséges intelligenciát nagy mértékben használó rendszerekben azért fontos, mert a modellkimenetek gyakran valószínűségi jellegűek, miközben a munkafolyamatok nem azok. Egy modell megbízhatósági szintet rendelhet, rangsorolhat alternatívákat, kockázatot becsülhet vagy összegezhet bizonyítékokat. Egy munkafolyamatnak mégis tudnia kell, hogy elküldje-e az e-mailt, jóváhagyja-e a visszatérítést, továbbítsa-e az ügyet, zárolja-e a fiókot vagy emberi döntést kérjen-e. Ha a valószínűséget cselekvésként kezeljük, a rendszer drága személyiséget kap. A határ a modellkimenetet intézményi viselkedéssé alakítja, és ezt szándékosan kell tennie.

A modell árnyalt maradhat. A kapu nem. A kapu mondhatja, hogy a pontszám a küszöbérték alatt van, és a rekord hiányos, ezért emberi felülvizsgálatra kell irányítani. Mondhatja, hogy a forrás kívül esik a hatókörön, ezért megtagadja a választ. Mondhatja, hogy a szabályzatverzió lejárt, ezért blokkolja a műveletet. Ezek a megtagadások rövid távon bosszanthattják az embereket. A piros közlekedési lámpa is. A civilizáció valahogy mégis továbbmegy.

A jó bináris döntések felszínre hozzák a rossz feltételezéseket

A bináris határok egyik csendes előnye, hogy a feltételezéseket a felszínre kényszerítik. Ha egy csapat nem tudja eldönteni, mi számít a hatókörbe tartozónak, valószínűleg nem érti a munkafolyamatot. Ha senki sem felelős a küszöbértékért, akkor az nem technikai paraméter. Nem kezelt szabályzat. Ha a rendszer nem tudja megmondani, mely bizonyítékokat vette figyelembe, akkor a bináris eredmény nem auditálható. A kapu ködösítéssel menedzsel.

Ezért hasznos a bináris tervezés a felderítés során is, nem csak a megvalósításban. Kérdezd meg a résztvevőktől, minek kell igaznak lennie ahhoz, hogy egy ügy előrehaladhasson. Kérdezd meg, minek kell hamisnak lennie ahhoz, hogy a rendszer megtagadja a választ. Kérdezd meg, milyen bizonyíték szükséges ahhoz, hogy egy talán igenné váljon. A válaszok felfedik, hol hiányzik a szabályzat, hol homályosak az adatszerződések, hol színpadi a felelősségvállalás, és hol támaszkodik a folyamat egyetlen személy hősies értelmezésére, aki éppen szabadságra készül.

A bináris határok a rejtett csatolások feltárásában is kiválóak. Egy egyszerű jóváhagyott állapot függhet személyazonosság-ellenőrzéstől, fizetési státusztól, hozzájárulástól, adatmegőrzéstől, modellmegbízhatóságtól, joghatóságtól és emberi felülvizsgálattól. Ha mindennek igaznak kell lennie, a határ nem egyszerű. Összetett. Ez rendben van, amíg az összetett feltétel el van nevezve és dokumentálva. A veszély az, ha egy összetett kaput hangulatnak adunk ki.

A bináris határok nem csupán végrehajtási eszközök. Feltételezés-érzékelők is, ami kevésbé csillogó, mint a stratégiai munka, de gyakran hasznosabb.

A visszafordítható határok fegyelme

A bináris döntésnek nem szabad csapdának lennie, hacsak a terület valóban meg nem követeli. A legtöbb működési határnak szüksége van egy ellenőrzött visszaútra. A visszafordíthatóság nem jelent hanyagságot. Azt jelenti, hogy a rendszer tudja, mit kell megőriznie, hogy egy későbbi korrekció ne váljon újabb rejtéllyé. Egy ügy újranyitható, de a régi állapot látható marad. Egy fizetés visszavonható, de az ok és a felhatalmazás rögzítve van. Egy engedély visszavonható, de a hozzáférési nyom megmarad. Ez a különbség a korrekció és az amnézia között.

A csapatok gyakran ellenállnak a határozott döntéseknek, mert félnek a tévedéstől. A jobb válasz nem a homályosság. Hanem a tévedési út megtervezése. Mi történik, ha a kapu elutasít egy ügyet, amelynek át kellett volna mennie. Mi történik, ha elfogad egy rekordot, amelyet vissza kellett volna tartani. Ki változtathatja meg az állapotot. Mely downstream rendszereket kell értesíteni. Mely korábbi kimenetek válnak elavulttá. Mely jelentéseknek kell jelezniük a visszavonást. Egy határ, amely megválaszolja ezeket a kérdéseket, szilárd lehet anélkül, hogy kegyetlenné válna.

Ez különösen ott fontos, ahol automatizált rendszerek érintkeznek emberekkel. Egy polgárnak, betegnek, munkavállalónak vagy ügyfélnek nem szabad egy szellemállapot ellen érvelnie. Ha a rendszer nemet mond, a rekordnak mutatnia kell az okot. Ha a rekord hibás, az intézménynek tudnia kell, hogyan javítsa meg anélkül, hogy csendben felülírná a múltat. Az emberi méltóság egy technikai munkafolyamatban gyakran kevésbé költői, mint szeretnénk. Néha egyszerűen csak annyi, hogy az ember megtalálhassa az állapotot, elolvashassa az okot, és megkérhessen egy megnevezett személyt annak megváltoztatására.

A visszafordítható él a mérnököket is védi. Ad a teszteknek valami valósat, amire támaszkodhatnak. Ad az incidenskezelésnek egy ismert utat. Megakadályozza, hogy a támogató csapatok árnyékfolyamatokat találjanak ki a csevegésben, mert a hivatalos folyamat érzelmileg olyan, mint a nedves kartonpapír. Amikor a visszafordítási út létezik a rendszerben, a kivételkezelés szabályozott munkává válik, nem pedig folklórrá.

A bináris gondolkodás rossz helyei

A bináris gondolkodásnak vannak rossz felhasználásai, és ezek nem érdemelnek elnézést. Az emberek nem tiszta kategóriák. A társas helyzetek nem if-utasítások. Az orvosi ítélőképesség, a jogi érvelés, az oktatás, a tervezés, a tárgyalás és a kutatás mind tartalmaznak bizonytalanságot, amelyet őszintén kell ábrázolni. Egy rendszer, amely egy összetett embert jóra vagy rosszra, biztonságosra vagy veszélyesre, méltóra vagy méltatlanra tömörít, nem mérnöki munka. Gyorsabb szociológiát csinál.

A szabály egyszerű: a rendszer állapotához használjunk bináris döntéseket, ne az emberi értékhez. Egy fájl lehet teljes vagy hiányos. Egy engedélyt meg lehet adni vagy meg lehet tagadni. Egy kérés lehet egy kinyilvánított szabályzaton belül vagy kívül. Egy embert nem szabad leegyszerűsíteni a kimeneti címkére. Ez nyilvánvalónak hangzik, de sok rendszernek sikerült lenyűgöző ellenpéldává válnia.

A bináris határok akkor is rosszak, ha a tévedés költsége rejtve marad a rendszer előtt. Ha egy kapu megtagadja a szolgáltatást, ki látja a kárt. Ha egy osztályozó zárol egy fiókot, ki fellebbezhet. Ha egy automatizált folyamat úgy dönt, hogy nem mutat meg információt, hogyan tanulja meg az intézmény, hogy a döntés káros volt. A visszajelzés nélküli bináris kapu nem stabil. Csak csendes. A csendes hiba azért népszerű, mert rendben tartja a diagramokat.

Minél nagyobb a tétje egy határnak, annál egyértelműbbnek kell lennie a felülvizsgálati útnak. Ez nem automatizációellenesség. Ez az, ami túlélhetővé teszi az automatizációt. Egy visszautasítás, amelyet meg lehet magyarázni és meg lehet támadni, gyakran emberségesebb, mint egy bizonytalan talán, amely három osztályon és egy olyan portálon kergeti át az embert, amely csak ebéd után működik.

Az elrendezés mérnöki szempontból

A szoftverekben egy jó bináris határnak általában kis számú látható része van. Van egy bemeneti szerződés. Van egy szabály vagy modellkimenet. Van egy döntési függvény. Van egy megőrzött eredmény. Van egy okkód. Van egy gazda. Van egy visszajátszási út. Van egy felülvizsgálati vagy felülbírálási út. Ehhez egyikhez sem kell katedrális. Fegyelem kell hozzá, és talán kevesebb irányítópult, amely kormányzásnak adja ki magát.

A döntési függvénynek elég unalmasnak kell lennie ahhoz, hogy tesztelhető legyen. Ez nem azt jelenti, hogy a felsőbb szintű elemzés egyszerű. Az elemzés lehet gazdag, valószínűségi alapú és több forrásból álló. A végső átmenetnek szűknek kell lennie. Például: ha a szükséges bizonyíték rendelkezésre áll, a forrás a szabályzaton belül van, a pontszám meghaladja a kinyilvánított küszöböt, és egyetlen kizárási szabály sem lép életbe, akkor az ügy továbbhalad. Ellenkező esetben elutasítja, vagy felülvizsgálatra irányítja. Ez nem romantikus. Ez egy szerződés.

A tesztelés ezután válik értelmessé. Tesztelheti a küszöbértékek körüli határeseteit. Visszajátszhat egy korábbi esetet egy új szabályverzió ellenében. Bizonyíthatja, hogy a hatókörön kívüli forrásokat elutasítják. Összehasonlíthatja az emberi felülvizsgálatok számát egy változtatás előtt és után. Megkérdezheti, hogy a kapu több fellebbezést produkál-e egy bizonyos csoportból vagy régióból. A bináris döntések nem távolítják el az etikát. Megkönnyítik annak vizsgálatát, hogy az etika hol lép be a rendszerbe.

A döntés egy hurok, nem egy csapóajtó. A rendszernek tanulnia kell a kihívásokból anélkül, hogy átírná a történelmet.

A kapu körüli koreográfia

A bináris kapu maga általában kicsi. A körülötte zajló koreográfia az, ahol a rendszerek vagy civilizálttá válnak, vagy elkezdik felhalmozni a bajt. A fogadásnak meg kell neveznie a bemenetet. A minősítésnek meg kell mondania, hogy a forrás engedélyezett-e. A döntési függvénynek egyetlen működési állapotot kell kibocsátania. A perzisztenciának el kell mentenie az indokokat és a verziókat. Az értesítésnek meg kell mondania az érintett rendszereknek, hogy mi változott. A felülvizsgálatnak visszavezető utat kell biztosítania. A változáskezelésnek meg kell akadályoznia, hogy a szabály némán átalakuljon két olyan eset között, amelyeknek összehasonlíthatónak kellett volna lenniük.

Egyik sem csillogó architektúra. Inkább olyan, mint a fiókok felcímkézése. Ezért működik. A valódi működés attól függ, hogy a kis, ismétlődő cselekedetek egyértelműek legyenek. Ha egy rendelést törölnek, a készlet ne kezelje úgy, mintha lelkileg függőben lenne. Ha a hozzájárulást visszavonják, az analitikai folyamat ne folytatódjon csak azért, mert a régi kivonat kényelmesen vidám. Ha egy szabályzatverzió lejár, a következő döntés ne kölcsönözzön tekintélyt a tegnaptól csak azért, mert a cron feladat félénk volt.

Az állapotnevek itt számítanak. A függőben lévő felülvizsgálat nem ugyanaz, mint az elutasítás. Az elutasítás fellebbezéssel nem ugyanaz, mint a végleges elutasítás. A jóváhagyott, bizonyítékra váró állapot gyakran gyanús, hacsak a munkafolyamatnak nincs nagyon egyértelmű oka rá. A csapatok néha azért hoznak létre köztes állapotokat, mert nem akarják megoldani egy irányítási kérdést. Az adatbázis ekkor az intézményi határozatlanság iratszekrényévé válik. A számítógépek ezt hűségesen tárolják. Nincs ízlésük.

Egy jó állapotmodell alacsonyan tartja az állapotok számát, és élesen tartja az egyes állapotok jelentését. Emellett elég gazdagon őrzi a bizonyítékokat ahhoz, hogy a kis állapot ne legyen buta. Ez a kombináció a módszer lényege: őrizd meg a komplexitást a nyilvántartásban, szűkítsd a cselekvési állapotot, és tedd az állapotok közötti mozgást elég egyértelművé ahhoz, hogy egy ember később követni tudja anélkül, hogy amatőr régésszé kellene válnia.

Miért tűnik kényelmetlennek

A bináris tervezés kegyetlennek tűnhet, mert elveszi a homályosság kényelmét. Egy homályos rendszer lehetővé teszi, hogy mindenki azt higgye, az ő értelmezése még él. Egy bináris határ arra kéri az intézményt, hogy válasszon. Ez politikailag kínos. De pont ezért értékes a határ. A rendszerek, amelyek soha nem döntenek a megfelelő szinten, később mégis döntenek, általában késlekedés, következetlenség vagy annak az akaratlan tekintélye révén, aki a leggyorsabban válaszol a bejövő üzenetekre.

Van ebben egy holland praktikusság, amit szeretek. Ha véget ér a kerékpárút, a festék nem filozofál. Megáll. Aztán mindenki vitatkozhat arról, hogy jó-e a tervezés, de legalább tudják, hol kezdődik a vita. Egy egyértelmű határ nem teszi helyessé a politikát. Elég láthatóvá teszi ahhoz, hogy javítani lehessen. Ez a dolog szerény erénye.

A legjobb bináris rendszerek alázatosak. Nem állítják, hogy megértik az egész világot. Azt mondják: ezen a ponton, ebben a munkafolyamatban, ezen bizonyítékok és ezen szabályverzió alapján ebbe az állapotba lépünk, és megtartjuk a nyilvántartást. Ez az alázat hasznosabb, mint az intelligens automatizálásra vonatkozó nagy hangú állítások. Elismeri, hogy a határ alkotott, nem pedig az égből felfedezett.

A tanulság

A rendetlen rendszerek nem válnak biztonságosabbá attól, hogy minden részük rendetlen. Attól válnak biztonságosabbá, hogy eldöntik, hol engedélyezett a kétértelműség, hol kell megőrizni, és hol kell megállnia. A bináris gondolkodás ideológiaként veszélyes, architektúraként viszont hasznos. A trükk az, hogy tudjuk a különbséget.

Egy jó bináris határ megvédi a komplexitást befelé menet, egyértelmű döntést hoz a megfelelő ponton, megőrzi a bizonyítékokat kifelé menet, és utat hagy a felülvizsgálatnak. Nem ellensége az árnyaltságnak. Ez az egyik módja annak, hogy az árnyaltság túlélje a működéssel való érintkezést. Ilyen határok nélkül a komplex rendszerek udvarias mocsarakká válnak. Velük viszont megvizsgálhatják őket olyan emberek, akiknek más dolguk is van, márpedig a legtöbb ember ilyen.