Πώς οι νόμοι μπορούν να γίνουν κατανοητοί όχι μόνο από νομικούς, αλλά και από υπολογιστές — και γιατί αυτό μπορεί να αλλάξει τον τρόπο που η δημόσια διοίκηση εξυπηρετεί τους πολίτες.
Κάθε φορά που κάνετε αίτηση για ένα επίδομα, υποβάλλετε μια φορολογική δήλωση ή προσπαθείτε να καταλάβετε αν δικαιούστε μια παροχή, κάπου πίσω από την οθόνη υπάρχει ένας νόμος. Ο νόμος αυτός έχει γραφτεί σε φυσική γλώσσα, από νομοθέτες, με σκοπό να διαβαστεί από ανθρώπους. Όμως η υπηρεσία που σας εξυπηρετεί, είτε είναι μια ιστοσελίδα, είτε μια εφαρμογή, είτε ο υπάλληλος στο γκισέ, βασίζεται τελικά σε λογισμικό. Και το λογισμικό αυτό έχει γραφτεί από κάποιον προγραμματιστή, ο οποίος διάβασε τον νόμο, τον ερμήνευσε όπως καλύτερα μπόρεσε, και τον μετέτρεψε σε κώδικα.
Ανάμεσα σε αυτά τα δύο βήματα, τον νόμο και το λογισμικό, χάνονται πολά. Χάνεται χρόνος, χάνεται ακρίβεια, και πολλές φορές χάνεται και η εμπιστοσύνη των πολιτών. Το «Rules as Code» (RaC), ή στα ελληνικά κάτι σαν «κανόνες ως κώδικας», είναι μια ιδέα που προσπαθεί να γεφυρώσει ακριβώς αυτό το χάσμα.
Τι είναι το Rules as Code, με απλά λόγια
Η βασική ιδέα είναι απλή: όταν ένας κανόνας (νόμος, κανονισμός, εγκύκλιος) είναι αρκετά συγκεκριμένος ώστε να μπορεί να εφαρμοστεί με «ναι» ή «όχι» (π.χ. «δικαιούστε αυτό το επίδομα αν το εισόδημά σας είναι κάτω από Χ ευρώ»), τότε αυτός ο κανόνας μπορεί να γραφτεί ταυτόχρονα σε γλώσσα κατανοητή από ανθρώπους και σε μια μορφή κατανοητή από μηχανές. Όχι σαν δύο ξεχωριστά κείμενα που κάποιος πρέπει να συγχρονίζει με το χέρι, αλλά σαν μία και μοναδική, επίσημη πηγή αλήθειας.
Είναι σημαντικό να ξεκαθαρίσουμε από την αρχή κάτι: δεν υπάρχει ακόμα πλήρης συναίνεση για το τι ακριβώς σημαίνει «Rules as Code» ή πού ακριβώς βρίσκονται τα όριά του. Είναι ένα πεδίο που εξελίσσεται. Όπως λέει και μια γνωστή παροιμία από τη στατιστική, «όλα τα μοντέλα είναι λάθος, κάποια όμως είναι χρήσιμα», το ίδιο ισχύει και εδώ. Δεν χρειάζεται να πάρουμε την ιδέα κατά γράμμα για να δούμε γιατί αξίζει να τη σκεφτούμε σοβαρά.
Το πρόβλημα: «κανόνες μέσα στην ομίχλη»
Για να καταλάβουμε γιατί χρειαζόμαστε κάτι τέτοιο, ας δούμε πώς λειτουργούν σήμερα τα πράγματα στην πράξη. Μια πολιτική πρόταση γίνεται νόμος. Ο νόμος συνοδεύεται από προεδρικά διατάγματα, υπουργικές αποφάσεις, εγκυκλίους. Κάπου εκεί μέσα, μια ομάδα υπαλλήλων ή αναδόχων πρέπει να καταλάβει τι ακριβώς σημαίνει όλο αυτό σε πρακτικό επίπεδο, να το μετατρέψει σε διαδικασίες και ροές εργασίας, και τελικά σε λογισμικό που θα παράγει μια απόφαση: εγκρίνεστε ή απορρίπτεστε.
Το πρόβλημα είναι ότι σε κάθε βήμα αυτής της αλυσίδας, ο κανόνας περνάει από διαφορετικά χέρια, με διαφορετική εξειδίκευση, διαφορετικό λεξιλόγιο και συχνά διαφορετικούς στόχους. Οι νόμοι είναι δημόσιοι, αλλά συχνά είναι δύσκολο να βρει κανείς άκρη ανάμεσα σε πολλαπλά κείμενα. Και όταν βγαίνει η τελική απόφαση, ο πολίτης συχνά αναρωτιέται: «Εντάξει, αλλά γιατί; Είναι δίκαιο;», χωρίς να μπορεί εύκολα να πάρει απάντηση.
Ακόμα χειρότερα, οι επιχειρησιακοί κανόνες που τελικά μπαίνουν μέσα στο λογισμικό συχνά δεν δημοσιεύονται πουθενά, δεν ενημερώνονται όταν αλλάζει ο νόμος, και καταλήγουν να αποτελούν de facto «ιδιωτική πνευματική ιδιοκτησία» ενός αναδόχου ή μιας ομάδας πληροφορικής, παρόλο που προέρχονται από δημόσιο νόμο. Αυτό δημιουργεί ένα αόρατο παράδοξο: κάτι που ξεκίνησε ως δημόσιος κανόνας καταλήγει κλειδωμένο σε ένα «μαύρο κουτί».
Το αποτέλεσμα είναι δύσκολο να το γνωρίζουμε, να το αξιολογούμε, να το επιβεβαιώνουμε, και αυτό με τη σειρά του, διαβρώνει σιγά σιγά την εμπιστοσύνη των πολιτών στο κράτος.
Ποιοι κανόνες ταιριάζουν στο Rules as Code
Δεν μιλάμε φυσικά για όλους τους νόμους. Υπάρχουν κανόνες που είναι από τη φύση τους ασαφείς και απαιτούν ανθρώπινη κρίση, για παράδειγμα η γενική «πρόθεση» μιας πολιτικής ή γενικές κατευθυντήριες γραμμές. Το Rules as Code ταιριάζει καλύτερα σε κανόνες που είναι πιο «ντετερμινιστικοί», δηλαδή έχουν σαφή, μετρήσιμα κριτήρια: νομικές υποχρεώσεις τύπου «πρέπει» (must), λιγότερο σε κανόνες τύπου «θα έπρεπε» (should) που αφορούν εσωτερικές επιχειρησιακές διαδικασίες, και ακόμα λιγότερο σε απλές κατευθύνσεις ή οδηγίες (could).
Με άλλα λόγια, όσο πιο κοντά είναι ένας κανόνας σε κάτι που μπορεί να αυτοματοποιηθεί χωρίς να χαθεί το νόημά του, τόσο πιο κατάλληλος είναι για να εκφραστεί ως κώδικας. Πράγματα όπως η επιλεξιμότητα για ένα επίδομα, ο υπολογισμός ενός φόρου, ή τα κριτήρια για μια άδεια, είναι τυπικά παραδείγματα όπου το RaC μπορεί να αποδώσει.
Ας δούμε ένα απλό, καθημερινό παράδειγμα για να γίνει πιο απτό το πρόβλημα. Φανταστείτε έναν νόμο που λέει ότι «οικογένειες με ετήσιο εισόδημα κάτω από ένα συγκεκριμένο όριο, και με τουλάχιστον ένα ανήλικο τέκνο, δικαιούνται ένα οικογενειακό επίδομα». Αυτή η πρόταση μοιάζει απλή, αλλά για να μετατραπεί σε λειτουργική ψηφιακή υπηρεσία πρέπει πρώτα κάποιος νομικός να την αναλύσει και να εντοπίσει όλες τις σιωπηρές παραδοχές (τι θεωρείται «εισόδημα»; πώς υπολογίζεται όταν υπάρχουν πολλαπλές πηγές; τι γίνεται σε περίπτωση διαζυγίου ή επιμέλειας;). Στη συνέχεια, ένας αναλυτής πρέπει να μετατρέψει αυτή την ερμηνεία σε δομημένη λογική. Και τέλος, ένας προγραμματιστής πρέπει να τη μετατρέψει σε κώδικα που θα «τρέξει» πραγματικά. Σε κάθε ένα από αυτά τα τρία βήματα υπάρχει περιθώριο για μικρές αποκλίσεις από την αρχική πρόθεση του νομοθέτη, αποκλίσεις που αθροιστικά μπορεί να οδηγήσουν σε λάθος αποφάσεις για πραγματικούς ανθρώπους. Το Rules as Code προσπαθεί ακριβώς να μειώσει αυτές τις αποκλίσεις, κρατώντας μία και μόνο επίσημη πηγή αλήθειας, από την αρχή μέχρι το τέλος αυτής της αλυσίδας.
Ποια είναι τα οφέλη
Σύμφωνα με σχετική έρευνα του Οργανισμού Οικονομικής Συνεργασίας και Ανάπτυξης (ΟΟΣΑ), τα οφέλη ενός σωστά υλοποιημένου Rules as Code είναι πολλαπλά:
- Καλύτερα αποτελέσματα και ταχύτερες υπηρεσίες: Μειώνεται το χάσμα ανάμεσα στην πολιτική και την τελική εφαρμογή, οπότε ο πολίτης παίρνει την υπηρεσία του πιο γρήγορα και με λιγότερα λάθη.
- Μεγαλύτερη διαφάνεια: Η διαδικασία λήψης απόφασης γίνεται ανοιχτή, και μπορούν να αναπτυχθούν εργαλεία που βοηθούν τους πολίτες να καταλαβαίνουν τα δικαιώματα και τις υποχρεώσεις τους.
- Μεγαλύτερη ευελιξία: Το κράτος εξαρτάται λιγότερο από εξωτερικούς αναδόχους για κάθε αλλαγή, και μπορεί να ανταποκρίνεται πιο γρήγορα σε νέες ανάγκες.
- Πιο συνεπής και δίκαιη εφαρμογή: Όταν οι κανόνες είναι επίσημα κωδικοποιημένοι, όλοι εφαρμόζονται με τον ίδιο τρόπο, ανεξάρτητα από το ποιος υπάλληλος ή ποιο σύστημα χειρίζεται την υπόθεση.
- Λιγότεροι κίνδυνοι: Μία ενιαία, επίσημη πηγή κανόνων μειώνει τις ευπάθειες και τα λάθη που προκύπτουν από πολλαπλές, ασύγχρονες εκδοχές του ίδιου κανόνα.
- Διαλειτουργικότητα: Οι ίδιοι κανόνες μπορούν να χρησιμοποιηθούν και να ξαναχρησιμοποιηθούν από διαφορετικές υπηρεσίες και επίπεδα διακυβέρνησης, χωρίς να χρειάζεται να ξαναγραφτούν από την αρχή.
- Καινοτομία: Όταν οι θεσμικοί κανόνες γίνονται διαθέσιμοι ως ανοιχτή δημόσια υποδομή, ανοίγει ο δρόμος για νέες εφαρμογές και υπηρεσίες, ακόμα και από τον ιδιωτικό τομέα ή την κοινωνία των πολιτών.
Πού μπορεί να εφαρμοστεί στην πράξη
Οι χρήσεις του Rules as Code δεν περιορίζονται μόνο στο «τελικό στάδιο», δηλαδή στην ψηφιακή υπηρεσία που βλέπει ο πολίτης. Μπορεί να φανεί χρήσιμο σε ολόκληρο τον κύκλο ζωής μιας πολιτικής:
Στο επίπεδο της πολιτικής και της νομοθεσίας: Μπορεί να χρησιμοποιηθεί για την προσομοίωση μιας ρύθμισης πριν αυτή ψηφιστεί, για παράδειγμα, να δούμε πώς θα επηρεάσει μια φορολογική μεταρρύθμιση διαφορετικά νοικοκυριά, πριν γίνει νόμος. Μπορεί επίσης να ενισχύσει τη δημόσια διαβούλευση, αφού η δημόσια έκθεση των κανόνων σε πιο κατανοητή μορφή διευκολύνει τη συμμετοχή πολιτών και φορέων. Και βοηθά στη νομοτεχνική επεξεργασία, ενισχύοντας τη συνεργασία ανάμεσα σε νομικούς και τεχνολόγους, μέσα από κανόνες που μπορούν να διαβαστούν και από μηχανές.
Στο επίπεδο της υλοποίησης: Βοηθά στην ενσωμάτωση της συμμόρφωσης «εκ σχεδιασμού» μέσα στα ίδια τα συστήματα, διαχωρίζει καθαρά τη «λογική της απόφασης» από την τεχνική υλοποίηση (κάτι που κάνει τα συστήματα πιο απλά και πιο εύκολα στη συντήρηση), και προωθεί τη δημοσίευση έγκυρων μοντέλων κανόνων που μπορούν να χρησιμοποιήσουν οι μηχανικοί λογισμικού, ανοίγοντας τον δρόμο και σε πειραματισμό μέσα από ανοιχτά περιβάλλοντα δοκιμών.
Στο επίπεδο της παροχής υπηρεσιών προς τον πολίτη: Επιτρέπει σαφείς, έγκυρες εξηγήσεις των αποφάσεων προς τους πολίτες («γιατί απορρίφθηκε η αίτησή μου, ακριβώς;»). Μπορεί να τροφοδοτήσει «υπολογιστές επιλεξιμότητας» — απλά εργαλεία που σας λένε αν δικαιούστε κάτι πριν καν κάνετε αίτηση. Και μπορεί να στηρίξει προσωπικούς ψηφιακούς βοηθούς, που θα εντοπίζουν προληπτικά παροχές για τις οποίες δικαιούστε αίτηση, χωρίς να χρειάζεται να τις ψάξετε μόνοι σας.
Γιατί ο πηγαίος κώδικας δεν αρκεί
Μια συχνή παρανόηση είναι ότι, αν το λογισμικό μιας δημόσιας υπηρεσίας είναι ανοιχτού κώδικα, τότε το πρόβλημα λύνεται από μόνο του, αφού μπορεί κανείς να δει τι κάνει το σύστημα. Στην πράξη, αυτό δεν αρκεί. Ένα χαρακτηριστικό παράδειγμα προέρχεται από τη Γαλλία: όταν μελετητές προσπάθησαν να συγκρίνουν τον πηγαίο κώδικα που υπολογίζει τα στεγαστικά επιδόματα με τους πραγματικούς νόμους που τα διέπουν, βρέθηκαν μπροστά σε δύο διαφορετικά συστήματα. Το πρώτο, γραμμένο τη δεκαετία του '90, ήταν μεν δημοσιευμένο, αλλά γραμμένο σε τόσο παλιά και ειδική τεχνολογία που ήταν ουσιαστικά αδιάβαστο. Το δεύτερο, νεότερο σύστημα, ήταν κλειστού κώδικα και γραμμένο σε ιδιόκτητη γλώσσα προγραμματισμού, άρα εξίσου απρόσιτο, απλώς για διαφορετικό λόγο.
Το συμπέρασμα είναι σημαντικό: για να είναι πραγματικά χρήσιμος ένας κανόνας (είτε ως νόμος, είτε ως κώδικας) πρέπει να είναι ταυτόχρονα αναγνώσιμος (όχι κρυπτικός), κατανοητός από ανθρώπους διαφορετικής ειδικότητας, ανιχνεύσιμος πίσω στην αρχική του πηγή, ακριβής, αξιόπιστος (δηλαδή επαληθευμένος και πλήρης) και «αυτοματοποιήσιμος», ακόμα και όταν χρειάζεται ανθρώπινη επιτήρηση. Ο απλός δημόσιος πηγαίος κώδικας, από μόνος του, δεν εγγυάται τίποτα από αυτά.
Το παράδειγμα της Ολλανδίας: «Agile Law Execution»
Η Ολλανδία είναι μία από τις χώρες που έχουν προχωρήσει πρακτικά προς αυτή την κατεύθυνση, μέσα από μια προσέγγιση που ονομάζουν «Agile Law Execution» (ευέλικτη εφαρμογή του νόμου). Η φιλοσοφία της στηρίζεται σε τέσσερις αξίες: τη νομιμότητα (η υπηρεσία πρέπει πράγματι να συμμορφώνεται με τον νόμο), την επαληθευσιμότητα (πρέπει να μπορεί κανείς να ελέγξει ότι είναι σωστή), την επεξηγησιμότητα (ο πολίτης πρέπει να μπορεί να καταλάβει γιατί πήρε τη συγκεκριμένη απόφαση), και τη δικαιοσύνη προς τους πολίτες.
Στην πράξη, η προσέγγιση αυτή λειτουργεί σαν βρόχος: από τον νόμο δημιουργείται μία, και μόνο μία, επίσημη ερμηνεία, η οποία μετατρέπεται σε δομημένα μοντέλα (μέσω τυποποιημένης ανάλυσης). Αυτά τα μοντέλα είναι αναγνώσιμα τόσο από ανθρώπους όσο και από «μηχανές», και μετατρέπονται με ακρίβεια σε εκτελέσιμο κώδικα που τροφοδοτεί την ψηφιακή υπηρεσία. Το σημαντικό είναι ότι ο βρόχος κλείνει: νομικοί και νομοθέτες μπορούν να επαληθεύσουν ότι ο τελικός κώδικας αντιστοιχεί πράγματι σε αυτό που ήθελε ο νόμος, και η μετατροπή σε κώδικα γίνεται με αυτοματοποιημένο, ελεγχόμενο τρόπο, όχι με χειροκίνητη, ασύνδετη μετάφραση από κάποιον προγραμματιστή.
Βασικό εργαλείο σε αυτή τη διαδικασία είναι μια καθιερωμένη μεθοδολογία ανάλυσης νόμων, γνωστή ως «Wetsanalyse» (ανάλυση νόμου), η οποία είναι φτιαγμένη πρωτίστως για νομικούς (όχι για προγραμματιστές) αλλά ταυτόχρονα επιτρέπει πολλαπλές οπτικές (νομική, επιχειρησιακή, τεχνική), ώστε νομοθέτες και υλοποιητές να μιλούν την ίδια γλώσσα. Έχει ήδη αποδείξει την αξία της σε μαζική κλίμακα ψηφιακών υπηρεσιών στην Ολλανδία.
Ανοιχτό λογισμικό και ανοιχτή συνεργασία
Ένα άλλο σημαντικό σκέλος του Rules as Code αφορά το πόσο «ανοιχτό» πρέπει να είναι όλο αυτό το εγχείρημα, όχι μόνο τεχνικά, αλλά και ως προς τη δυνατότητα συμμετοχής διαφορετικών ανθρώπων. Ένας κανόνας μπορεί να εκφραστεί με πολλούς τρόπους: ως απλό κείμενο σε φυσική γλώσσα, ως ημι-τυποποιημένο διάγραμμα (όπως τα πρότυπα BPMN ή DMN που χρησιμοποιούνται για την περιγραφή επιχειρησιακών διαδικασιών), ή τελικά ως πηγαίος κώδικας λογισμικού.
Κάθε μορφή έχει διαφορετικό «κοινό»: ένας πολίτης μπορεί να καταλάβει ένα απλό κείμενο, ένας ειδικός ή αναλυτής μπορεί να διαβάσει ένα τυποποιημένο διάγραμμα, ενώ μόνο ένας προγραμματιστής μπορεί πραγματικά να διαβάσει τον τελικό κώδικα. Το ζητούμενο του Rules as Code, όταν γίνεται σωστά, είναι να διατηρούνται όσο το δυνατόν περισσότερες από αυτές τις μορφές συνδεδεμένες μεταξύ τους, ώστε να μην χάνεται κανείς στη μετάφραση, και, όπου γίνεται, να προτιμάται ο ανοιχτός κώδικας έναντι κλειστών, ιδιόκτητων λύσεων, ακριβώς επειδή διευκολύνει τον έλεγχο και την επαναχρησιμοποίηση.
Αυτό δεν σημαίνει ότι το εγχείρημα είναι απλό. Απαιτεί σωστή διαχείριση του «κύκλου ζωής» των κανόνων (ελέγχους εκδόσεων, δοκιμές, διαχείριση αλλαγών, αντιμετώπιση του κάθε κανόνα σαν ένα ζωντανό «ψηφιακό προϊόν») κάτι που ξεπερνά τα όρια ενός εισαγωγικού άρθρου, αλλά είναι εξίσου κρίσιμο με τον αρχικό σχεδιασμό.
Γιατί αξίζει να το παρακολουθούμε
Το Rules as Code δεν είναι μια μαγική λύση, και δεν ταιριάζει παντού. Υπάρχουν ακόμα ανοιχτά ερωτήματα σχετικά με το ποια μεθοδολογία ταιριάζει καλύτερα, ποιος πρέπει να έχει τον τελευταίο λόγο σε ασαφείς ερμηνείες, και πώς διαχειρίζεται κανείς πολύπλοκους νόμους με πολλές εξαιρέσεις. Αλλά η βασική ιδέα, ότι οι κανόνες που διέπουν τη ζωή μας θα έπρεπε να είναι κατανοητοί, ανιχνεύσιμοι και ανοιχτοί, και όχι κλειδωμένοι μέσα σε συστήματα που κανείς δεν μπορεί εύκολα να ελέγξει, αξίζει την προσοχή μας.
Σε μια εποχή όπου όλο και περισσότερες κρατικές υπηρεσίες μετακινούνται online, το πώς φτιάχνονται αυτές οι υπηρεσίες «από μέσα» έχει άμεση σχέση με το πόσο δίκαιες, κατανοητές και αξιόπιστες θα είναι για τον καθένα από εμάς. Το ταξίδι «από το ΦΕΚ στο API» δεν είναι απλώς ένα τεχνικό εγχείρημα, είναι ουσιαστικά, ένα εγχείρημα εμπιστοσύνης ανάμεσα στο κράτος και τον πολίτη.
Συχνές ερωτήσεις
Το Rules as Code σημαίνει ότι οι νόμοι θα γράφονται πλέον σε γλώσσα προγραμματισμού;
Όχι. Ο νόμος συνεχίζει να γράφεται σε φυσική γλώσσα από τους νομοθέτες. Αυτό που αλλάζει είναι ότι, παράλληλα, δημιουργείται και μια δομημένη, επίσημη εκδοχή του ίδιου κανόνα, κατάλληλη να «τροφοδοτήσει» απευθείας ένα ψηφιακό σύστημα, χωρίς ενδιάμεσες, ασύνδετες μεταφράσεις.
Χρειάζεται να είναι κανείς προγραμματιστής για να καταλάβει το Rules as Code;
Όχι απαραίτητα. Μεγάλο μέρος της δουλειάς αφορά τη νομική ανάλυση, δηλαδή τη σαφή αποτύπωση του τι πραγματικά λέει ένας νόμος, κάτι που είναι πρωτίστως δουλειά νομικών, όχι μηχανικών λογισμικού.
Εφαρμόζεται ήδη κάπου;
Ναι, χώρες όπως η Ολλανδία έχουν ήδη αναπτύξει και εφαρμόσει σχετικές μεθοδολογίες σε μαζική κλίμακα, ενώ το θέμα απασχολεί ενεργά διεθνείς οργανισμούς όπως ο ΟΟΣΑ.




0 Σχόλια