Next Previous Contents

9. Προϋποθέσεις για το Στυλ Παζαριού.

Οι πρώτοι αναγνώστες αυτού του κειμένου έθεταν ερωτήσεις για τις προϋποθέσεις για έναν επιτυχημένο προγραμματισμό σε στυλ παζαριού, συμπεριλαμβανομένων τόσο των προσόντων του επικεφαλή του εγχειρήματος, όσο και την κατάσταση του κώδικα κατά τη στιγμή που κάποιος, δημόσια, ξεκινά την προσπάθεια οργάνωσης μιας ομάδας συν-προγραμματιστών.

Είναι ξεκάθαρο ότι κανείς δεν μπορεί, με το παζαριώτικο στυλ, να δημιουργήσει κώδικα εκ του μηδενός στο Παζαριώτικο στυλ. Μπορεί κανείς να δοκιμάσει, να βελτιώσει και να κάνει debug κάποιου κώδικα, αλλά θα ήταν πολύ δύσκολο να δημιουργήσει εκ νέου ένα project μ' αυτή τη μέθοδο. Ούτε εγώ ούτε κι ο Linus το δοκιμάσαμε. Η ομάδα προγραμματισμού που μόλις δημιουργήσατε έχει ανάγκη κάτι που είναι χρησιμοποιήσιμο και δοκιμασμένο, για να ξεκινήσει.

Όταν ξεκινά κανείς την δημιουργία της ομάδας προγραμματισμού πρέπει να μπορείτε να παρουσιάσετε αληθοφανείς υποσχέσεις. Το πρόγραμμά σας δεν χρειάζεται να δουλεύει ιδιαίτερα καλά. Μπορεί να είναι αργό, όλο bugs, ατελές και φτωχά τεκμηριωμένο. Εκεί που δεν πρέπει να αποτύχετε είναι να πείσετε τους πιθανούς συν-προγραμματιστές σας ότι μπορεί να εξελιχθεί σε κάτι πετυχημένο μέσα στο προβλεπτό μέλλον.

Το Linux και το fetchmail δημοσιοποιήθηκαν έχοντας στιβαρό, ελκυστικό σχεδιασμό. Πολλοί άνθρωποι που σκέφτονται με το μοντέλο του παζαριού όπως την παρουσίασα, έχουν λάβει σοβαρά υπόψη αυτό το κρίσιμο σημείο και κατέληξαν στο συμπέρασμα ότι είναι απόλυτα αναγκαίο ο επικεφαλής του σχεδίου να διαθέτει σχεδιαστική διαίσθηση κι ευφυία.

$Αλλά ο Linus πήρε τα σχέδιά του από το Unix. Εγώ πήρα τα δικά μου αρχικά απ' το popclient (αν και αργότερα θα άλλαζε πάρα πολύ και περισσότερο αναλογικά με το Linux). Πρέπει, λοιπόν, ο επικεφαλής, συντονιστής μιας προσπάθειας παζαριώτικου στυλ να έχει εξαιρετικό σχεδιαστικό ταλέντο, ή μπορεί να προχωρήσει ενισχύοντας το σχεδιαστικό ταλέντο άλλων;

Δεν νομίζω ότι είναι σημαντικό ο συντονιστής να μπορεί να δημιουργεί σχέδια εξαιρετικής ευφυΐας, αλλά είναι απόλυτα σημαντικό να μπορεί να αναγνωρίσει τις καλές σχεδιαστικές ιδέες άλλων.

Αυτό το απέδειξαν τα project του Linux και του fetchmail. Ο Linus, ενώ δεν ήταν (όπως είπαμε και πριν) ένας γνήσιος σχεδιαστής, επέδειξε δεξιότητα στο να αναγνωρίζει τα καλά σχέδια και να τα ολοκληρώνει στον πυρήνα του Linux. Κι έχω ήδη περιγράψει πώς η πιο ισχυρή σχεδιαστική ιδέα για το fetchmail (δηλαδή, η προώθηση μέσω SMTP) προήλθε από κάποιον άλλο.

Οι πρώτοι αναγνώστες αυτού του κειμένου με κολακεύουν υπαινισσόμενοι ότι έχω προδιάθεση να υποεκτιμώ την σχεδιαστική γνησιότητα σχεδίων παζαριώτικου στυλ, επειδή διαθέτω ο ίδιος αρκετή από αυτή και, έτσι, την θεωρώ δεδομένη. Ίσως αυτό να αληθεύει. Ο σχεδιασμός είναι σίγουρα η καλύτερη ικανότητά μου.

Το πρόβλημα, όμως, όταν κανείς είναι ευφυής στον σχεδιασμό λογισμικού είναι όταν κάτι τέτοιο αρχίζει να γίνεται συνήθεια-αρχίζεις να κάνεις πράγματα περίπλοκα όταν θα έπρεπε να είναι δυνατά και απλά. Πολλά προγράμματα κατέρρευσαν επειδή έκανα αυτό το λάθος, αλλά το απέφυγα στο fetchmail.

Πιστεύω, λοιπόν, ότι το project του fetchmail πέτυχε εν μέρει επειδή εμπόδισα την τάση μου να είμαι έξυπνος. Κάτι τέτοιο έρχεται σε αντίθεση με την σχεδιαστική γνησιότητα που είναι ουσιώδης για ένα επιτυχημένο παζαριώτικο project. Υποθέστε ότι ο Linus προσπαθούσε να πετύχει θεμελιώδης καινοτομίες κατά τη διάρκεια του προγραμματισμού. Φαίνεται απίθανο ότι ο πυρήνας που θα έπαιρνε μ' αυτό τον τρόπο να ήταν σταθερός και πετυχημένος ;

Ένα συγκεκριμένο επίπεδο σχεδιαστικής και προγραμματιστικής ικανότητας είναι απαραίτητο, βέβαια, αλλά αναμένω ότι όλοι όσοι σκέφτονται σοβαρά να ασχοληθούν με την μέθοδο παζαριού να είναι ήδη πάνω απ' αυτό το μίνιμουμ. Η εσωτερική αγορά της κοινότητας ανοιχτού κώδικα ασκεί λεπτές πιέσεις στους ανθρώπους να μην ασκούν προγραμματιστικές προσπάθειες τις οποίες δεν μπορούν να ακολουθήσουν ως το τέλος. Ως τώρα αυτή η συμβουλή εισακούεται.

Υπάρχει κι ένα άλλο είδος ικανότητας που κανονικά δεν συνδέεται με την ανάπτυξη λογισμικού η οποία, νομίζω, είναι τόσο σημαντική για το παζαριώτικο project όσο και η σχεδιαστική ευφυία-και ίσως περισσότερο. Ένας συντονιστής χαλαρού σχεδίου πρέπει να έχει καλούς συνεργάτες και ικανότητες επικοινωνίας.

Για να οργανώσεις μια ομάδα προγραμματιστών πρέπει να έλξεις τους ανθρώπους, να προκαλέσεις το ενδιαφέρον τους σε ό,τι κάνεις και να τους προκαλείς την ευχαρίστηση για την ποσότητα εργασίας που κάνουν. Τα τεχνικά σκαμπανεβάσματα θα είναι πολλά μέχρις ότου να το καταφέρετε, αλλά δεν είναι αυτό το θέμα μας. Η προσωπικότητα που προβάλετε έχει σημασία.

Δεν είναι σύμπτωση που ο Linus είναι καλό άτομο και κάνει τους ανθρώπους να θέλουν να τον βοηθήσουν. Δεν είναι τυχαίο που είμαι ένας ενεργητικός εξωστρεφής τύπος που του αρέσει να δουλεύει με άλλους. Για να έχει αποτελέσματα το παζαριώτικο μοντέλο, βοηθάει αν μπορείς να συνεργαστείς με ευχάριστους ανθρώπους.


Next Previous Contents