Οι καρφωτούρες, παίζει με καρφωμένες τιμές, α τι ωραία βρήκα ένα magic number, α τι ωραίο σκουπίδι που είναι ο κώδικας και το project μου
Λοιπόν, να πω οτι τα φαινόμενα που θα περιγράψω παρακάτω δεν είναι αρνητικό προνόμιο μόνο της ελληνικής αγοράς και των Ελλήνων developer (εμείς είμαστε αυτοί), αλλά παγκόσμιο.
Παρόλα αυτά επειδή θα γράψω στα Ελληνικά θα το ζωγραφίσω με τη δική μας κατάσταση.
Εσύ συνάδελφε που τυχαίνει να με διαβάσεις, πες μου πόσες φορές ακούς την ημέρα, (όχι την εβδομάδα ή το μήνα) την ημέρα, τις εξής εκφράσεις
- παίζει αλλά είναι με καρφωμένες τιμές.
- εντάξει δεν ξέρω πως θα το κάνω και του κάρφωσα μερικές συνθήκες στην υλοποίηση.
- _με πιέζουν αρκετά και το θέλουν αύριο, δεν μπορώ να κάνω κάτι καλύτερο από το να καρφώσω με τιμές που θα παίξουν.
- .από μέσα του όχι φωναχτά _έ_λα μωρέ ποιος θα το δει τώρα οτι πήγα και το έφτιαξα τσαπατσούλικα, εδώ μέσα γίνεται χαμός, σιγά μη σκάσω εγώ για τον μ.ακα
- από μέσα του _δεν πληρώνομαι αρκετά ρε φίλε για να το φτιάξω σωστά, σιγά τόσα που μου δίνουν και με αυτές τις συνθήκες, θα καρφώσω την υλοποίηση και οτι γίνει.
Καρφωτούρες, καρφωμένες τιμές, υποθέσεις χωρίς εξήγηση, αφημένες στην τύχη τους, μια βόμβα έτοιμη να σκάσει
- ακριβώς μόλις βγει σε παραγωγή στο σύστημα
- την αμέσως επόμενη μέρα που θα χρειαστούμε να κάνουμε αλλαγές στην πρώτη έκδοση
- την αμέσως επόμενη μέρα που θα συνειδητοποιήσουμε οτι πρέπει να αλλάξουμε τη λύση μας
- τα αμέσως επόμενα χρόνια που κάποιος κακόμοιρος θα προσπαθήσει να διορθώσει τη δική μας απόφαση (διάλεξε πάνω από τα bullet ποια είναι η δικαιολογία σου).
Το φαινόμενο προφανέστατα είναι μια ακόμα όψη του ίδιου νομίσματος που ονομάζεται technical debt'. O Π.Παπαπέτρου περιγράφει πολύ εύστοχα σε αυτή του την παρουσίαση, το technical debt ως τον _βαθμό δυσκολίας που θα έχει, μια οποιαδήποτε ομάδα λογισμικού για προσθέσει added value σε ένα λογισμικό΄ χωρίς να το διαλύσει ή να εκφυλίσει την αρχιτεκτονική του (θα προσθέσω σιωπηλά). Tο technical debt στην Ελλάδα κατά την ταπεινή μου άποψη οφείλεται στους εξής λόγους.
- Το λεγόμενο technical, IT management είναι σχεδόν ανύπαρκτο και εξασκείται από ανθρώπους στην πλειοψηφία μέτριων ή με σχεδόν καθόλου γνώσεις πάνω στη διαδικασία της σχεδίασης, υλοποίησης και διαχείρισης έργων πληροφορικής. Είναι οι ίδιοι άνθρωποι που θα θυσιάσουν τη λογική για εξωπραγματικά estimates, θα εθιστούν στο overpromise στον πελάτη, θα θεωρήσουν οτι ξέρουν καλύτερα, θα αποσυντοντίσουν την ομάδα, στις δύσκολες στιγμές θα πιέσουν ή θα απειλήσουν. Είναι οι άνθρωποι που θα κομπάσουν οτι ξέρουν το business αλλά αυτό δε σημαίνει οτι ξέρουν πως να οργανώσουν μια ομάδα λογισμικού. Οι ομάδες πληροφορικής πρέπει να οργανωθούν από τεχνικούς ανθρώπους και όχι busines expert και wannabe πωλητές. Κακό management σημαίνει κακό λογισμικό.
- Δε διδάσκουμε, εγχώρια την ανάπτυξη λογισμικού σαν μια επιστήμη από μόνη της, ταπεινή μου άποψη είναι οτι έχουμε ανάγκη από ακόμα πιο πολλές σχολές σε πανεπιστήμια και ΤΕΙ που θα ετοιμασουν προγραμματιστές και όχι hybrid τα ξέρω λίγο απ_ όλα, βασικά θέλω να γίνω admin αλλά τελικά αναγκάζομαι να γράψω php κτλ. Τα τελευταία χρόνια στην Ελλάδα από αυτά που ακούω υπάρχουν πια σχολές στοχευμένες στο Software Engineering και θέλω να ελπίζω οτι θα γίνουν mainstream. Η υλοποίηση λογισμικού δεν είναι μόνο α) ξέρω θεωρητικά ένα αλγόριθμο τέλεια ή ξέρω πολύ καλά μόνο μία γλώσσα. Είναι μια σύνθετη διαδικασία, που φέρνει τον προγραμματιστή αντιμέτωπο με τεχνικά αλλά και διαχειριστικά challenges, τα οποία πολλές φορές τα αγνοούμε. Δεν είναι δυνατόν το 2014 να βλέπεις παιδιά που βγαίνουν τώρα από τα πανεπιστήμια πληροφορικής και να μην κατανοούν την έννοια του unit test, του documentation, της δομημένης λογικής. Ο προγραμματιστής είναι και αυτά όχι μόνο 2 γραμμές δυσνόητου κώδικα και φύγαμε. Η αγορά δεν έχει ανάγκη μόνο από hacker αλλά πραγματιστικά από ανθρώπους που θα υλοποιήσουν και θα λύσουν προβλήματα, με απλό και ευέλικτο τρόπο. Αυτοί είναι για μένα οι πιο χρήσιμοι και άξιοι συνάδελφοι.
- Η εγχώρια αγορά πληροφορικής δεν είναι τόσο ανταγωνιστική έτσι ώστε να δημιουργήσει τις συνθήκες έτσι πελάτες και εταιρίες να δώσουν έμφαση στην ποιότητα του παραγόμενου λογισμικού. Δε φταίει μόνο η κακή εταιρία που δίνει μία τσαπατσούλικη λύση, φταίει και αυτός που την αποδέχεται, που δεν τον νοιάζει ίσως η ποιότητα γιατί τελικά δεν έχει επίδραση στον αριθμό των πωλήσεων του. Τα συστήματα πληροφορικής στη χώρα μας τώρα δειλά, αρχίζουν θα παίρνουν τη θέση που τους αξίζει σε ό,τι έχει να κάνει το business value. Ποιότητα σε ένα έργο πληροφορικής δεν είναι οτι δε ** έσκασε**την πρώτη μέρα σε παραγωγή ή δεν έμειναν οι server από μνήμη. Ποιότητα σημαίνει οτι παρέλαβα ένα σύστημα, το οποίο, δεν έχει αρκετά παιδικά προβλήματα, δεν παρουσιάζει προβλήματα με τον χρόνο, είναι σχετικά εύκολο να χτίσω πάνω του χωρίς να το διαλύω τέλος μπορώ να το θεωρήσω σαν μια τεχνολογική επένδυση που περιμένω να μου κάνει απόσβεση και όχι να το ξανά-αγοράσω μετά από 1 χρόνο. Το σύστημα κάνει deliver to business promise αλλά δε μου τρώει λεφτά η τεχνική του πολυπλοκότητα και αδυναμία.
- Εμείς, μας άφησα τελευταίους. Ναι, εμείς οι developer, η έλλειψη επαγγελματισμού. Νομίζω οτι είναι γενικό φαινόμενο της χώρας μας, όπως και η ποιότητα παροχής υπηρεσιών. Κάθε φορά που βάζουμε μια μαγική τιμή κάπου, κάθε φορά που είτε μας πίεσαν είτε όχι, γράψαμε μερικές γραμμές κώδικα και στη συνείδηση μας δεν το καταλαβαίνουμε οτι αυτό που κάνουμε είναι αντί-επαγγελματικό ή δεν το επικοινωνούμε καθόλου, φταίμε και έχουμε μεγάλο μερίδιο ευθύνης
Θα ρωτήσει κάποιος και πως θα αλλάξει, προφανέστατα αύριο που θα πας στη δουλειά, ή τώρα που με διαβάζεις, δε θα αλλάξει προς το λογικό και ευέλικτο το management, δε θα γεμίσει η αγορά με καταρτισμένους developer και φυσικά ο συνάδελφος σου δίπλα που ξέρεις οτι slack-άρει ή βαριέται δε θα αποκτήσει συνείδηση για να κάνει σωστά τη δουλειά του. Το στοίχημα Λοιπόν, είσαι εσύ, ο καθένας μας, από τον ρόλο που υπηρετεί στο τέλος της ημέρας να είναι περήφανος για τη δουλειά του και να ξέρει οτι έδωσε το 100% των δυνατοτήτων του, όχι το 70% ούτε το 110%, αρκεί όλοι μας να δώσουμε το 100% και μέρα με τη μέρα ακόμα και τα πιο μικρά πράγματα σαν developer θα βελτιώσουν τη ζωή των δίπλα μας. Μπορεί κάποια στιγμή κάποιος manager να το εκτιμήσει αντίστοιχα, μπορεί και όχι. Μιλάμε αρκετά για τις ελληνική επιχειρηματική εξωστρέφεια και τις ελληνικές start-up και τη μεγάλη ελπίδα όλων.
Κύριοι και κυρίες αν δεν αλλάξουμε επαγγελματικές συνήθειες δεν αποκτήσουμε πιο υψηλά standard, για τους ίδιους μας τους εαυτούς, δε θα μπορέσουμε να κάνουμε κάτι τόσο διαφορετικό. Γιατί μεταξύ μας ναι όλοι έχουμε δει κώδικα από τις φάρμες Ινδών_ σε κάποιο project πολύεθνικής αλλά μήπως εμείς είμαστε καλύτεροι όταν πάμε και γεμίζουμε τσαπατσούλικες λύσεις τα συστήματα εδώ και εκεί. Λίγο αυτοκριτική λοιπόν.
Ο προγραμματισμός είναι χαρά, είναι δημιουργία, είναι δύναμη, αλλά όταν δεν το πάρεις στα σοβαρά ή δεν έχει διάθεση γίνεται ένα καθημερινό βάσανο για σένα αλλά και τους υπόλοιπους που θα λουστούν τη δουλειά σου μετά από λίγο.
Αν μόλις ξεκίνησες την ημέρα, προσπάθησε να βγάλεις μια καρφωτούρα από τον κώδικα σου, σίγουρα θα έχεις κάνει κάτι καλύτερο!
Αν είσαι γεμάτος καρφωτούρες ή δεν ξέρεις πως να τις βγάλεις, ή δεν μπορείς να κατανοήσεις το πρόβλημα σου, μη διστάσεις να μου στείλεις ένα email.