(ακολουθεί ιδέα που χρειάζεται ανάπτυξη)
Οι περισσότεροι προγραμματιστές και χρήστες που συμμετέχουν στην ανάπτυξη ανοικτού λογισμικού (Open Source Software) κατέχουν, έστω και ασυνείδητα, μία μοναδική εμπειρία και γνώση. Σε μεγάλο βαθμό η εμπειρία αυτή έχει γίνει κτήμα και όλων όσων συμμετέχουν σε αυτό που ονομάζουμε “συμμετοχικά μέσα”, social media. Είναι η εμπειρία της συμμετοχής και η αξία που προκύπτει από την δυνατότητα να συμμετέχει κάποιος ελεύθερα σε ένα εγχείρημα.
Στέκομαι όμως στο Ανοικτό Λογισμικό και όχι στα social media διότι η ανάπτυξη λογισμικού έχει ένα αυξημένο βαθμό πολυπλοκότητας που δεν συναντάμε συχνά στα social media. Οι εκατομμύρια γραμμές κώδικα που συνθέτουν το Linux, το Apache, το GNOME κ.λ. χρειάζεται να είναι σε απόλυτη αρμονία, αλλιώς έχουμε ένα προϊόν ασταθές, δύσχρηστο, αναποτελεσματικό.
Υπάρχουν κυρίως δύο μοντέλα για την ανάπτυξη λογισμικού. Οι μεγάλες εταιρείες όπως η Microsoft ακολουθούν ένα αυστηρά ιεραρχικό μοντέλο και το Ανοικτό Λογισμικό ακολουθεί διάφορες παραλλαγές ενός πιο χαοτικού, αλλά και συμμετοχικού μοντέλου. Μία από τις καλύτερες παρουσιάσεις των διαφορών μεταξύ των δύο μοντέλων είναι το κείμενο του Eric S. Raymond, The Cathedral and Bazaar -υπάρχει και η μετάφραση στα ελληνικά, Ο Καθεδρικός και το Παζάρι.
Διαβάστε το Cathedral and Bazaar. Αν δεν είσαστε προγραμματιστές και σας φαίνεται βαρετό, απλά αντικαταστήστε τις λέξεις, όπως θα διαβάζετε: αντί για “χρήστης” βάλτε “πολίτης”, αντί για “λογισμικό” διαβάστε “νόμους”, “διαγωνισμούς” ή “δημόσια έγγραφα”, αντί για “bug” διαβάστε “παραθυράκια” ή “διαφθορά”.
Αυτή είναι άλλωστε και η ιδέα που λέω στην αρχή ότι χρειάζεται ανάπτυξη. Πώς θα μεταφραζόντουσαν οι διάφορες αρχές του “Cathedral and Bazaar” (και γενικότερα του Ανοικτού Λογισμικού) σε πολιτική διαδικασία; Ορίστε ένα παραδείγμα
“έχοντας αρκετά μάτια, οποιαδήποτε διαφθορά θα αποκαλυφθεί” (given enough eyeballs all bugs are shallow)
Πριν μου το πείτε: ξέρω ότι δεν είναι τόσο απλή η μεταφορά από το ένα στο άλλο. Για παράδειγμα το λεγόμενο “fork” (σχίσμα;) όπου κάποιος αποφασίζει ότι θα αναπτύξει ένα πρόγραμμα Ανοικτού Κώδικα με τον δικό του τρόπο, δεν μπορώ να φανταστώ πώς θα είχε νόημα σε νόμους. Αλλά, υπάρχουν αρκετές δοκιμασμένες ιδέες και μία φιλοσοφία που πιστεύω ότι θα άξιζε να εξετάσουμε.
Δείτε το ως τροφή για σκέψη. Φαντάζομαι ότι κάποιος, κάπου έχει γράψει σχετικά με πολύ πιο εμπεριστατωμένο τρόπο.
Panagioti, xtes to bradi ksana-diabaza to sigkekrimeno keimeno!
Malista ekana extract ta quotes etsi gia na ta exo stin sillogi mou
Simptosi :)
Xristos
Παναγιώτη ανοίγεις μεγάλο θέμα και καλό.
Το forking είναι μια ενδιαφέρουσα περίπτωση αν προσπαθήσεις να το μεταφέρεις σε μια συμμετοχική πολιτεία. Είναι εφικτό αν και δεν θα είναι τόσο δραματικό όσο τα forks που βλέπουμε συχνά σε διάφορα εγχειρήματα ανοιχτού λογισμικού. Τί εννοώ.
Σε εγχειρήματα ανοιχτού λογισμικού, η διχάλα οφείλεται συχνότερα σε προσωπικές τριβές παρά σε τεχνικούς λόγους.
Σε μια συμμετοχική πολιτεία το fork μπορεί να συμβεί για τοπικούς και οικονομικούς λόγους. Κάτι τέτοιο φυσικά προϋποθέτει ώριμη και σταθερή πολιτικη τοπικής αυτοδιοίκησης. Αυτό δεν ισχύει στην Ελλάδα, ακόμη. Το ζω όμως καθημερινά στις ΗΠΑ.
Έχουμε δηλαδή forking σε δυο επίπεδα: στον διαχωρισμό ομοσπονδιακού και πολιτειακού κράτους (τα περίφημα state rights δηλαδή) και στον διαχωρισμό πολιτειακού κράτους και δήμου.
Ένα παράδειγμα είναι το fork που επιχείρησαν οι πολιτείες Μασαχουσέτι και Καλιφόρνια στο θέμα του γάμου μεταξύ ομοφύλων. Άλλο fork είναι τα όρια ταχύτητας στους πολιτειακούς δρόμους. Και φυσικά η μεγάλη διχάλα, για οικονομικούς λόγους, είναι οι τοπικοί φόροι (κάθε πολιτεία αλλά και κάθε δήμος ή κομιτεία έχουν τη δυνατότητα να εισπράτουν φόρο εισοδήματος απευθείας από τον πολίτη). Δηλαδή πληρώνω το 28-30% του εισοδήματός μου στην ομοσπονδιακή κυβέρνηση. Αλλά πληρώνω κι άλο ένα 3% στην πολιτεία του Illinois.
Επιπλέον ό,τι αγοράζω εντός του δήμου Oak Park που κατοικώ, επιβαρύνεται με 8.75% ΦΠΑ. Ενώ αν κάνω τις ίδιες αγορές στο Oak Brook 10 χιλιόμετρα παραπέρα, ο ΦΠΑ είναι 2.5%. Αλλά οι δήμοι έχουν νομοθετήσει έτσι ώστε για συγκεκριμένες αγορές να εισπράτουν τον ΦΠΑ όπου κι αν γίνει η αγορά. Δηλαδή αν αγοράσω αυτοκίνητο από αντιπρόσωπο στο Oak Brook (όπου ο τοπικός ΦΠΑ είναι 2,5%), θα πληρώσω ΦΠΑ 8,75% που θα αποδοθεί στον δήμο όπου θα σταθμεύει το όχημα, δηλαδή στο Oak Park.
Έτσι πετυχαίνουμε μια δικαιότερη κατανομή προσόδων αλλά και εξασφαλίζουμε θέσεις εργασίας σε database developers που συντηρούν όλη την μηχανογραφική υποδομή για τα αλισβερίσια αυτά :)
Προϋπόθεση λοιπόν είναι η ώριμη και σταθερή πολιτική τοπικής αυτοδιοίκησης για να υπάρξει η συμμετοχική κοινοκτημοσύνη που ευδοκιμεί στις κοινότητες ανοιχτού λογισμικού.
ΥΓ: Σκέφτομαι πως το bug δεν είναι ταυτόσημο ούτε με το παραθυράκι ούτε με τη διαφθορά. Το bug είναι ένα λάθος που δεν γίνεται με πρόθεση. Τα παραθυράκια του νόμου είναι προϊόντα πρόθεσης. Η διαφθορά είναι κι αυτή προϊόν πρόθεσης και προδιάθεσης.
Μία άλλη παράμετρος πολύ σημαντική είναι σε τι θα αντιστοιχεί ο προγραμματιστής.
Εάν το αντιστοιχίσουμε στον πολίτη (τον κάθε πολίτη) έχουμε να αντιμετωπίσουμε την άγνοια (που σε open source projects δύσκολα αποτελεί πρόβλημα καθώς υπάρχει η επιλογή του χρήστη εάν θα το χρησιμοποιήσει).
Εάν τον αντιστοιχίσουμε στον πολίτη γνώστη νομικών και κοινωνικών παραμέτρων, τότε μειώνουμε τα προφανή προβλήματα (άγνοια, αναποτελεσματικότητα, υστεροβουλία) αλλά καταλήγουμε σε ολιγαρχικό και ελιτιστικό σύστημα.
Το μεγαλύτερο εμπόδιο που πρέπει να περάσει μια τέτοια λογική είναι το γεγονός πως το OSS χρησιμοποιείτε στην πραγματικότητα ως αποτέλεσμα επιλογής, αλλά το νομικό πλαίσιο είναι αδύνατο να εφαρμόζεται ως τέτοιο, οφείλει να έχει καθολική ισχύ.
Σίγουρα πρόκειται για ελκυστική λογική πάντως.
Πολύ ενδιαφέρον, σκεφτόμουν αντίστοιχα πράγματα όταν έπεσα πάνω σε αυτό: http://blog.businessofsoftware.org/2008/05/is-your-country.html
Ειναι ένας bug-tracker για χώρες! Οι πολίτες δημιουργούν tickets, και ψηφίζουν για τα πιο σημαντικά ζητήματα.
Πηγαίνοντας ένα βήμα παραπέρα, οι βουλευτές/νομοθέτες (κυβέρνηση και αντιπολίτευση) βάζουν προτεραιότητες και αναλύουν το σκεπτικό τους για το πως θα πρέπει να λειτουργεί κάτι.
Νομίζω δίνει στη δημοκρατία μια άλλη διάσταση, ειδικά όταν θες να συμπεριλάβεις χρονικά όρια/κόστος υλοποίησης/προτεραιότητες.
Σκεφτόμουν να φτιάξω ένα για την Ελλάδα, αλλά είμαι μακριά και δεν γνωρίζω από πρώτο χέρι τα προβλήματα…
Τα έργα ΕΛΛΑΚ παρουσιάζουν μεγάλες διαφορές στη διοίκηση. Το ένα άκρο είναι πχ το FreeBSD που υπάρχει σχετικά μεγάλη ελευθερία. Το άλλο άκρο είναι το Apache Foundation, πχ για τον Apache server το λογισμικό στην ουσία γράφεται από μια ομάδα το πολύ 18 ατόμων (αν θυμάμαι καλά) και για να περάσει ένα patch περνάει τα χίλια μύρια και γενικώς το μοντέλο θεωρείται άκρως ολιγαρχικό!
Οπότε είναι θέμα μηχανισμού (και εδώ), αν κάποιος ανακαλύψει μια διαφθορά, ποιός πότε και τί θα διορθώσει… Εκτός κι αν κάποιος διατηρεί ένα δικό του τροποποιημένο αντίγραφο (έναν δικό του “μικρόκοσμο”;)
Το forking τις περισσότερες φορές είναι θέμα διαφορών τόσο πολιτικών όσο και στρατηγικών, δε θα μπορούσα να φανταστώ τι θα γινόταν εάν κάθε φορά που υπήρχε διαφωνία σε επίπεδο αρχηγών, θα έπαιρνε την ομάδα του αυτός που διαφωνεί και θα πήγαινε παραπέρα να δημιουργήσει μια άλλη κοινωνία; Γιατί στο ΕΛΛΑΚ κάπως έτσι γίνεται…
Η ιδέα έχει ζουμί. Αλλά το θέμα δεν είναι να προσπαθήσουμε να βρούμε εννοιολογικά αντίστοιχα (προγραμματιστής πολίτης, bug διαφθορά κτλ). Αυτά περισσότερο θα περιορίσουν παρά θα διαφωτίσουν.
Αυτό που πρέπει αρχικά να ξεκαθαριστεί είναι ποιά θα είναι τα ‘εργα’. Δεν ξέρω αν οι νόμοι μπαίνουν σε ένα τέτοιο παράδειγμα κι αν μπαίνουν σίγουρα θα είναι οι δικηγόροι που θα έχουν ένα πρώτο λόγο στην διαμορφωσή τους. Μήπως θα έπρεπε να ξεκινήσουμε από την βάση της πολιτικής: τα προγράμματα των κομμάτων; Αντί για διαδικασίες με συνέδρια, τα προγράμματα θα μπορούσαν να παράγονται απ’ όλο τον κόσμο. Γιατί τουλάχιστον σ’ αυτό το κόσμος μπορεί να έχει λόγο: στο τι θέλει. Το πως αυτό θα υλοποιηθεί αναγκαστικά θα πρέπει να περνάει από μια μικρότερη κοινότητα (πάλι με open source διαδικασίες), αυτών δηλαδή που έχουν την σχετική γνώση κι εμπειρία για το θέμα.
Ξέρω/υποψιάζομαι τις διάφορες αδυναμίες που έχει η 1-1 μεταφορά. Αλλά θεωρώ ότι υπάρχουν χρήσιμες ιδέες που μπορούν να προκύψουν. Αντί να κάτσω να τα μελετήσω εγώ, που μάλλον δεν έχω και όλη την απαραίτητη γνώση και αντίληψη, προτίμησα το “release early, release often” της ιδέας και να δω αν άλλοι μπορούν να την πάνε παραπέρα.
Μπορείτε να με κατηγορήσετε ότι κάνω αυτό που λέει ο Linus:
“I’m basically a very lazy person who likes to get credit for things other people actually do.”
;-)
Είτε ανοιχτό είτε κλειστό, ένα λογισμικό που είναι κακογραμένο είναι ευκολότερο και πάνω απ’όλα έχει λιγότερο κόστος να το ξαναγράψεις from scratch από να χρησιμοποιήσεις τις διαθέσιμες libraries και apis για να προσθέσεις complexity σε αυτό.
Η αντιστοιχία κάνει πιο δύσκολα τα πράγματα και μη συγκρίσιμα διότι οι κανόνες γραφής λογισμικού ακόμη και με μια δύσχρηστη και αχρείαστα πολύπλοκη γλώσσα (βλέπε perl πχ) είναι πολύ συγκεκριμένοι και αφήνουν πολύ πιο λίγα περιθώρια για παρερμηνείες, ενώ οι νόμοι, συμφωνίες κλπ αν δεν κωδικοποιηθούν χωρίς να αφήνουν περιθώρια για διαφορετικές ερμηνείες απλά κάνουν το σύστημα πολύ χαοτικό.
Παρόλ’αυτά δεν είναι άσχημη ιδέα το γενικό brainstorming που γίνεται…
Pingback: open* - το Ανοικτό Λογισμικό ως πολιτική διαδικασία (;)