Konfiguracija bez autoriteta je prevara
Konfiguracija sama po sebi nije opasna.
Konfiguracija bez autoriteta je prevara.
I. Obećanje konfiguracije
Konfiguracija je uvedena da razdvoji nadležnosti.
Poslovni korisnici su mogli da prilagode ponašanje.
Programeri su mogli da se fokusiraju na strukturu.
Promene su mogle da se dese bez deployment-a.
To je bilo obećanje.
II. Realnost konfiguracije
U praksi, konfiguracija je postala zadnja vrata.
Pravila koja su trebala biti apsolutna postala su podesiva.
Ograničenja koja su trebala biti sprovedena postala su opciona.
Upravljanje koje je trebalo biti obavezno postalo je podesivo.
Konfiguracija nije omogućila poslovnu agilnost.
Omogućila je tiho zaobilaženje.
III. Mehanizam prevare
Prevara zahteva prikrivanje.
Konfiguracija pruža prikrivanje kroz:
- skrivanje promena pravila u podešavanjima
- distribuciju odgovornosti preko timova
- stvaranje verodostojne odricanja
- činjenje prekršaja kao funkcionalnosti
Kada se prekršaj može konfigurisati, on više nije prekršaj.
On je “poslovna odluka.”
IV. Praznina autoriteta
Konfiguracija bez autoriteta stvara prazninu autoriteta.
Ko odlučuje šta može da se konfiguriše?
Ko odobrava promene konfiguracije?
Ko je odgovoran kada konfiguracija izazove grešku?
U većini sistema, odgovor je: niko.
Konfiguracija postoji van upravljanja.
Deluje bez nadzora.
V. Nemogućnost revizije
Kada ishodi zavise od konfiguracije:
- isti kod može proizvesti različite rezultate
- prošlo ponašanje se ne može rekonstruisati
- usklađenost postaje tumačenje
Revizija zahteva determinizam.
Konfiguracija uništava determinizam.
Revizija konfigurabilnog sistema nije revizija.
To je pričanje priča.
VI. Rešenje
Konfiguracija mora postojati iznad zakona, ne unutar njega.
Zakon definiše šta se dešava pri izvršavanju.
Konfiguracija definiše kontekst, parametre i granice.
Zakon sprovodi kernel.
Konfiguracija se validira protiv zakona.
Ako konfiguracija može da nadjača zakon, sistem nema zakon.
VII. Konačni zaključak
Konfiguracija bez autoriteta nije fleksibilnost.
To je prevara po dizajnu.
Upravljan sistem mora jasno razlikovati između:
- šta se može konfigurisati (kontekst)
- šta se ne može konfigurisati (zakon)
Svaka nejasnoća na ovoj granici je poziv na prekršaj.
Prekršaji nisu bagovi.
Oni su arhitekturalne greške.
SHA-256: 1b6144077dbaedcb3f19f4fe7f2d169ed90618a9782e21d583bbe610f342cb6d