Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
FAQ: Δουλειά στην Ιρλανδία

*** Προσθήκη στις 24/12/2013 ***

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

Η διεύθυνση της ελληνικής κοινότητας είναι: http://www.helleniccommunity.ie/contact

Ίσως κάποιος εκεί να μπορεί να σας βοηθήσει.

 *** Αρχικό κείμενο ***

Τον τελευταίο καιρό έχω πάρει πολλά μηνύματα από ανθρώπους που με ρωτούν πώς είναι τα πράγματα στην Ιρλανδία κι αν υπάρχουν ευκαιρίες εργασίας. Σκέφτηκα λοιπόν ότι το θέμα μπορεί να ενδιάφέρει κι άλλους και αποφάσισα να γράψω δημόσια αυτά που λέω ιδιωτικά.

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

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

ΕΡΩΤΗΣΗ: Πώς είναι τα πράγματα στην Ιρλανδία; Υπάρχει καλύτερη ποιότητα ζωής;

ΑΠΑΝΤΗΣΗ: Η Ιρλανδία είναι κατά τη γνώμη μου πολύ καλή περίπτωση από πλευράς ποιότητας ζωής. Βέβαια πάντα έχει σημασία τι ψάχνει κανείς για να είναι ευτυχισμένος, γι’ αυτό θα γίνω λίγο πιο συγκεκριμμένος.

Η χώρα είναι πολύ πιο μικρή απ' την Ελλάδα. Αν δεν κάνω λάθος οι Ιρλανδοί είναι 4 εκ. και υπάρχουν περίπου άλλο 1 εκ. ξένοι. Το Δουβλίνο μου είχε φανεί αρχικά σαν μεγάλη επαρχιακή πόλη, όχι σαν χαοτική ευρωπαϊκή πρωτεύουσα όπως είναι το Λονδίνο ή ακόμα κι η Αθήνα.

Η εγκληματικότητα είναι χαμηλή και συνήθως περιορίζεται σε συγκεκριμμένες περιοχές που έχουν και τη σχετική φήμη. Υπάρχει έντονη πνευματική ζωή, όπως θεατρικές παραστάσεις, κονσέρτα κλπ. Σχετικά με τη νυχτερινή ζωή, μάλλον δεν είμαι ο κατάλληλος άνθρωπος για να δώσει πληροφορίες, αλλά κανένας δεν κινδυνεύει να μείνει “στεγνός” στην Ιρλανδία όπου υπάρχει μία irish pub ανά 100 μέτρα...

Η ζωή είναι πολύ πιο απλή και εύκολη εδώ. Το κράτος δεν ταλαιπωρεί τον πολίτη εκ πεποιθήσεως και οι περισσότερες συναλλαγές με αυτό μπορούν να γίνουν μέσω internet. Θα πω χαρακτηριστικά ότι από τότε που ήρθα (2009) μόνο μία φορά πήγα σε δημόσια υπηρεσία, την πρώτη, όταν έπρεπε να βγάλω PPSΝ, δηλαδή το αντίστοιχο του ΑΦΜ/ΑΜΚΑ. Άλλο παράδειγμα είναι οι συναλλαγές με την εφορία, όπου μπορείς να προσθέσεις εισοδήματα που ξέχασες να δηλώσεις ή φοροαπαλλαγές που ξέχασες να ζητήσεις για 3 χρόνια πίσω. Τη στιγμή που κάνεις την ηλεκτρονική δήλωση, υπολογίζεται η διαφορά φόρου που χρωστάς ή σου χρωστάνε και τελειώνει η υπόθεση εκεί.

Ένα πράγμα που ξενίζει τους Έλληνες είναι ότι κάθε φορά που πας στο γιατρό ή στο φαρμακείο για να πάρεις συνταγογραφημένα φάρμακα, πληρώνεις στο ακέραιο την τιμή. Στο τέλος του χρόνου στέλνεις τις αποδείξεις στην ασφαλιστική σου εταιρεία, αυτοί σου δίνουν ένα ποσό και σου επιστρέφουν τις αποδείξεις, τις οποίες φυλάς (μήπως ζητήσει ποτέ κανείς να τις ελέγξει) και υποβάλεις μια ηλεκτρονική αίτηση επιστροφής φόρου για τα υπόλοιπα, επιβεβαιώνεις τον τραπεζικό λογαριασμό σου και τα χρήματα πιστώνονται εκεί σε 1-2 μέρες.

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

ΕΡΩΤΗΣΗ: Πώς είναι ο καιρός στην Ιρλανδία; Βρέχει συνέχεια; Βγαίνει ποτέ ο ήλιος;

ΑΠΑΝΤΗΣΗ: Προσφάτως κυκλοφόρησε μια διαφήμιση για μεταλλικό νερό που έλεγε το εξής: "so Irish, it thinks the sun is a newspaper"!

Σοβαρά τώρα, σε όλες τις βόρειες χώρες ο ήλιος βγαίνει τακτικά, αλλά δεν ζεσταίνει. Το χειμώνα οι μέρες είναι πολύ μικρές και το καλοκαίρι πολύ μεγάλες. Για παράδειγμα γύρω στα Χριστούγεννα δε βλέπω ποτέ τον ήλιο, γιατί πιάνω δουλειά στις 8:30 που μόλις αρχίζει να
ξημερώνει, ενώ βραδυάζει γύρω στις 4:00 το απόγευμα που δεν έχω σχολάσει ακόμα. Το καλοκαίρι πάλι έχει αρκετό φως μέχρι τις 10:30 το βράδυ.

Βρέχει πολύ συχνά, οπωσδήποτε 3-4 φορές την εβδομάδα, αλλά σπάνια συνέχεια για μεγάλο χρονικό διάστημα. Το χαρακτηριστικό του καιρού είναι ότι μεταβάλλεται συχνά μέσα στη διάρκεια της μέρας, κυρίως το καλοκαίρι. Κάνει επίσης πολύ κρύο στην καρδιά του χειμώνα, αλλά με γάντια, κασκόλ κι ένα καλό παλτό (αδιάβροχο με κουκούλα) τη βγάζει κανείς μια χαρά. Πάντως, σε γενικές γραμμές, ο καιρός εδώ είναι πιο ήπιος απ' ό,τι στην Αγγλία.

Προσωπικά προτιμώ τον κάπως ψυχρό καιρό περισσότερο απ' ό,τι την ατελείωτη ζέστη. Άλλοι πάλι Έλληνες που ξέρω διαμαρτύρονται ατελείωτα. Οι δε Ιρλανδοί σιχαίνονται τόσο τον καιρό που πάνε συνήθως διακοπές σε χώρες όπως η Ταϊλάνδη!

Συμπέρασμα: ο καιρός σε άλλους αρέσει, και σ' άλλους δεν αρέσει. Οι δεύτεροι είναι περισσότεροι. Όποιος δεν μπορεί να ζήσει χωρίς ήλιο ή έχει αρθριτικά, εδώ μάλλον θα υποφέρει. Βέβαια τον περισσότερο καιρό ένας προγραμματιστής βρίσκεται σε κλειστούς χώρους, κλιματιζόμενους και με τεχνητό φωτισμό, οπότε ο καιρός δεν παίζει καθοριστικό ρόλο στην επιβίωση (έως και το τραμ έχει θέρμανση).

ΕΡΩΤΗΣΗ: Η Ιρλανδία δεν είναι στην ίδια δεινή οικονομική κατάσταση με την Ελλάδα;

ΑΠΑΝΤΗΣΗ: Δεν θα το έλεγα. Η ιρλανδική οικονομία δεν νομίζω ότι ήταν ελλειματική πριν η προηγούμενη κυβέρνηση αποφασίσει να εγγυηθεί τις καταθέσεις ΚΑΙ τα ομόλογα των υπερχρεωμένων ιδιωτικών τραπεζών. Το κράτος εδώ “καταστράφηκε” από τις τράπεζες, όχι το ανάποδο.

Τέλος πάντων, μέχρι στιγμής, παρ' όλο που έχουμε κι εδώ τρόικα (ΕΕ, ΔΝΤ, ΕΚΤ) και bailout, η καθημερινότητα δε μοιάζει καθόλου με την ελληνική. Δεν υπάρχουν απεργίες και πορείες διαμαρτυρίας. Η τρόικα έρχεται μια φορά το τρίμηνο, ελέγχει τους λογαριασμούς του προηγούμενου τριμήνου, βρίσκει τα πάντα να είναι όπως έχουν συμφωνηθεί στο αντίστοιχο μνημόνιο, δηλώνει ευχαριστημένη και φεύγει χωρίς απειλές ή επιπλέον απαιτήσεις. Επίσης δεν υπάρχει συνεχής ενασχόληση με τα μέτρα που πρέπει να παρθούν. Η σχετική συζήτηση γίνεται μια φορά το χρόνο, το Νοέμβριο, όταν ψηφίζεται ο προϋπολογισμός, και μετά σταματάει η συζήτηση κι αρχίζει η εφαρμογή.

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

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

Αυτό είναι άλλο ένα σοκ για τους περισσότερους Έλληνες που έρχονται εδώ: η πλειοψηφία των Ιρλανδών είναι pro-business και αντιμετωπίζει τις επιχειρήσεις ως πηγή εισοδημάτων για όλη την κοινωνία (χωρίς μπουρί της σόμπας στο χέρι κλπ).

ΕΡΩΤΗΣΗ: Υπάρχουν δουλειές για προγραμματιστές; Ποιος μπορεί να με συστήσει σε πιθανούς εργοδότες;

ΑΠΑΝΤΗΣΗ: Δουλειές για προγραμματιστές με εμπειρία πάνω από 5 χρόνια σε Java ή .NET υπάρχουν πολλές. Για να βρει κανείς δουλειά δε χρειάζεται να υποχρεωθεί σε κανένα, ούτε να έχει κάποιον που να μεσολαβήσει. Υπάρχουν πολλά (εννοώ πολλές δεκάδες)
γραφεία με recruiters που αναλαμβάνουν να προμηθεύσουν με κατάλληλο προσωπικό τις εταιρείες που κάνουν προσλήψεις. Αυτοί οι recruiters πληρώνονται από τις εταιρείες, όχι από τους ανθρώπους που ψάχνουν για δουλειά. Μπορεί λοιπόν ο ενδιαφερόμενος να έρθει σ' επαφή με ένα ή περισσότερα τέτοια γραφεία για να να πάρει μια ιδέα από το τι ζητάνε οι
εργοδότες, τι μισθούς δίνουν κλπ. Μερικά απ' τα γραφεία ασχολούνται όχι μόνο με την ιρλανδική, αλλά και με τη βρεττανική αγορά, οπότε μ’ ένα σμπάρο, δυο τριγώνια.

Οι recruiters αυτοί δραστηριοποιούνται και στο LinkedIn στα user groups των προγραμματιστών, οπότε είναι πολύ εύκολο να
επικοινωνήσει κανείς μαζί τους χωρίς να τους ξέρει προσωπικά και να τους ζητήσει πληροφορίες. Ως παράδειγμα αναφέρω τον Stephen Daly απ’ την εταιρεία EOLAS που με βοήθησε να βρω την τωρινή μου θέση (τηλ. 00 353 1 2866666, email [email protected]). Πρόσφατα μάλιστα μου είπε ότι ενδιαφέρεται να δει και άλλα βιογραφικά απ’ την Ελλάδα και μου έστειλε μερικές θέσεις για τις οποίες ψάχνει υποψηφίους (θα τις επισυνάψω στο τέλος του κειμένου).

ΕΡΩΤΗΣΗ: Στη δουλειά μου κάνω τα πάντα, εκτός απ’ τις πωλήσεις (sysadmin, DBA, προγραμματιστής, tech support). Υπάρχει ζήτηση γι’ ανθρώπους σαν και μένα στην Ιρλανδία;

ΑΠΑΝΤΗΣΗ: Η συμβουλή μου είναι να διαλέξεις αυτό που κάνεις καλύτερα και να επικεντρωθείς σ’ αυτό. Εδώ πολύ σπάνια οι άνθρωποι κάνουν πολλές και διαφορετικές δουλειές και μόνο εάν δουλεύουν σε πολύ μικρές εταιρείες (<10 ατόμων) ή start-ups. Επειδή συνήθως τα μεγέθη είναι μεγαλύτερα, υπάρχει και μεγαλύτερη εξειδίκευση. Π.χ. η προηγούμενη εταιρεία όπου δούλευα είχε 650 υπαλλήλους και εθεωρείτο μεσαία+. Τώρα δουλεύω σε μια εταιρεία 120 ατόμων που θεωρείται μικρομεσαία.

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

ΕΡΩΤΗΣΗ: Τι τυπικά προσόντα πρέπει να έχω για να βρω δουλειά; Πρέπει να είμαι certified;

ΑΠΑΝΤΗΣΗ: Όλες οι αγγελίες που δημοσιεύονται συμπεριλαμβάνουν στα απαραίτητα προσόντα και πτυχίο σχετικό με το αντικείμενο, αλλά η προσωπική μου εμπειρία είναι ότι τυπικά προσόντα (σεμινάρια, πτυχία κλπ) ζητάνε μόνο από τους νεοεισερχόμενους στην
αγορά εργασίας. Απ' όλους τους άλλους ζητάνε συγκεκριμμένη εμπειρία, η οποία να μπορεί ν’ αποδειχθεί.

Certifications ζητάνε μόνο οι εταιρείες παραγωγής customised software που είναι Microsoft partners.

Όσον αφορά σεμινάρια και ειδικές γνώσεις, αυτό που αξίζει τον κόπο να έχει κανείς ως εφόδιο (έστω και ως θεωρητική γνώση) είναι ευχέρεια στις agile διαδικασίες, γιατί αυτές χρησιμοποιεί το 95% των πολυεθνικών που είναι οι μεγαλύτεροι εργοδότες.

ΕΡΩΤΗΣΗ: Πόσο καιρό παίρνει συνήθως η διαδικασία αναζήτησης εργασίας;

ΑΠΑΝΤΗΣΗ: Η δική μου εμπειρία είναι αποκλειστικά για πολύ senior θέσεις, οπότε δεν είναι χαρακτηριστική για όλο το εύρος και το βάθος της αγοράς. Με δεδομένο λοιπόν ότι όσα γράφω δεν ισχύουν για όλες τις θέσεις και για όλα τα επίπεδα, η διαδικασία που αντιμετώπισα και όταν ήρθα, και όταν άλλαξα δουλειά το Νοέμβριο του 2012, ήταν η εξής:

  1. συζήτηση με το recruiter που πληρώνεται για να μαζεύει βιογραφικά που ταιριάζουν με τις προδιαγραφές της θέσης
  2. τηλεφωνική συνέντευξη με τεχνικές (και μη) ερωτήσεις, όπου ο στόχος είναι να κόψουν τη σαβούρα
  3. face-to-face τεχνική συνέντευξη, όπου ο στόχος είναι να εκτιμήσουν επακριβώς τις δυνατότητες και την εμπειρία του υποψηφίου στο αντικείμενό του (συχνά περιλαμβάνει και γραπτές εξετάσεις περίπου 30-45', παρουσίαση projects που έχεις κάνει στο whiteboard, κτπ)
  4. face-to-face συνέντευξη με κάποιον από το human resources, όπου ελέγχουν τη
    συμπεριφορά σου και τη δυνατότητά σου να λειτουργείς σε ομάδα, και συζητούν τα οικονομικά και πρακτικά ζητήματα
  5. εάν σε θέλουν όλοι μέχρι εδώ, σου κάνουν μια προσφορά αμέσως. Αν όμως η θέση που ζητάς έχει αυξημένη ευθύνη, τότε σε περνάνε και από δεύτερη τεχνική συνέντευξη. Χοντρικά, η πρώτη τεχνική συνέντευξη είναι από τους μελλοντικούς
    συναδέλφους σου και η δεύτερη από τους μελλοντικούς προϊσταμένους σου, οι οποίοι προσπαθούν να καταλάβουν εάν ταιριάζεις στα μελλοντικά σχέδια της εταιρείας.
  6. εάν όλα πάνε καλά, προσλαμβάνεσαι και για 6 μήνες είσαι υπό επιτήρηση και μπορούνε να σε διώξουνε χωρίς καν να σου πούνε το λόγο.
  7. μετά το 6μηνο περνάς από evaluation από τον προϊστάμενό σου, κι αν όλα πάνε καλά, τότε πληρώνεται ο recruiter που σε πρότεινε και εσύ γίνεσαι κανονικός υπάλληλος με full benefits, όπως προβλέπεται απ' το συμβόλαιό σου.

Με δεδομένο ότι κάποιος ψάχνει στα σοβαρά και αφιερώνει χρόνο στο να μάθει ή να φρεσκάρει πράγματα που πιστεύει ότι θα του ζητήσουν στις τεχνικές συνεντεύξεις, καθώς επίσης με δεδομένο ότι χρειάζονται 3-4 τηλεφωνικές και face-to-face συνεντεύξεις για να πάρει κανείς το κολάι, η όλη διαδικασία δεν μπορεί να πάρει λιγότερο από ένα τρίμηνο, εκτός αν πρόκειται για περίπτωση που κάποιος πηγαίνει σε άλλη εταιρεία του ίδιου χώρου.

ΕΡΩΤΗΣΗ: Πόσα παίρνει περίπου ένας προγραμματιστής; Ποιο είναι το status των προγραμματιστών στην επιχείρηση;

ΑΠΑΝΤΗΣΗ: Η αμοιβή εξαρτάται από πολλούς παράγοντες όπως η εμπειρία σε χρόνια εργασίας, η γνώση ειδικών θεμάτων που έχουν άμεση σχέση με το core business του εργοδότη (π.χ. αν έχεις δουλέψει για πολλά χρόνια στους μεγαλύτερους ανταγωνιστές του), η επάρκεια στη χρήση εργαλείων και διαδικασιών που χρησιμοποιούνται απ’ την ομάδα στην οποία θα ενταχθείς, η τυχόν ευθύνη που θ’ αναλάβεις στον αρχιτεκτονικό σχεδιασμό του παραγόμενου software ή στην τεχνική “διοίκηση” της ομάδας, το είδος της εταιρείας κλπ.

Πρακτικά, για την πλειοψηφία των προγραμματιστών που γράφουν αποκλειστικά κώδικα με 5+ χρόνια εμπειρίας οι μισθοί κυμαίνονται μεταξύ 45 και 65 χιλιάδων το χρόνο (μικτά). Υπάρχουν κάποιες ειδικές περιπτώσεις (π.χ. οι έχοντες μεγάλη εμπειρία σε front office χρηματιστηριακών εφαρμογών σε WPF) που χτυπάνε άνετα 90-120 K, αλλά αποτελούν εξαίρεση.

Το status των προγραμματιστών είναι συνήθως εξαιρετικά υψηλό μέσα στην επιχείρηση. Μπορεί αυτό να φαίνεται περίεργο, αλλά η διαφορά έγκειται στο ότι η πλειοψηφία των επιχειρήσεων που κάνουν επενδύσεις (και άρα προσλήψεις) είναι νέας τεχνολογίας. Αυτό στην Ελλάδα το λένε όταν βάζουνε υπολογιστές στο λογιστήριο, αλλά εδώ σημαίνει ότι το
μεγαλύτερο πάγιο περιουσιακό στοιχείο της εταιρείας είναι το λογισμικό της και η τεχνογνωσία που έχει για να κάνει τη δουλειά της (όποια κι αν είναι αυτή) 24x7x365. Το προσωπικό του ΙΤ στις εταιρείες νέας τεχνολογίας δεν είναι αυτοί που “καθαρίζουν τα σκατά” όσων ασχολούνται
με το core business, αλλά αυτοί που παράγουν και τρέχουν το core business σε καθημερινή βάση. Γι' αυτό και έχουν αυξημένο κύρος, αλλά και αυξημένες υποχρεώσεις επαγγελματισμού και γνώσης του αντικειμένου.

Job Specs
Προσοχή: είναι αληθινά – αν υπάρχει ενδιαφέρον για κάποια θέση, απευθυνθείτε στο recruiter που αναφέρεται στο κείμενο.

Job Spec #1  

My Dublin based client currently requires an experienced Multi-Threaded C# Developer to join their existing team in a permanent role.
• Relevant computer science bachelor’s or post-graduate degree
• At least 5 years professional programming experience
• At least 3 years experience with C#
• Experience of network programming via sockets
• An ability to properly structure multi-threaded software applications involving network and serial device communications
• Demonstrable practical experience of the SDLC (Software Development Life Cycle), development process best practices, configuration management, etc.
• Experience of Visual C++ and MFC desirable
• Relational database experience desirable
• An appreciation of embedded development in C is desirable
This is an excellent role offering a strong salary for the right candidate. Should you be interested, please contact Stephen Daly on 01 2866666 or [email protected] for immediate consideration.

Job Spec #2

C# Developer
Overview:
My Dublin based Banking client currently requires an experienced C# Developer for a permanent role to join their existing team.
C# Developer Job Description:
Application Development Duties
• Ensure that solutions are designed with robustness in mind based on the company’s published standards
• Ensure that new systems are built in a bullet proof way that best ensures that functional requirements are met whilst also ensuring that service qualities (Performance, scalability, extensibility) for the present and for the future are achievable
• Ensures all design and development is agreed within technical committees, and follows company SDLC and design concepts
C# Developer Skill Set:
Primary Duties:
• 3-5 Years C#.Net Development experience
• Other favourable technologies include ASP, XML, Business Objects, MQ, Java
• Databases: Exposure to Oracle, MS SQL Server and Data Warehouses, ETL Technologies
• Operating systems: Exposure to a variety of systems is preferable but not essential, (Windows Server, Unix etc)
• Excellent communicator both verbally and written
• Practical and open minded, able to use own and commercial judgement to balance process against delivery
• Ability to work as part of a team and on one’s own initiative
• Setting standards and best practice for future work
• Consulting with and mentoring other team members to raise the bar overall
• Experience in the financial services industry is beneficial
• Analysis, documentation and implementation of critical business solutions, utilizing many technologies, over tight business-defined time-scales
• Top quality analytical and problem solving skills
• A proactive and ‘can do’ attitude is required at all times
Secondary Duties:
• Proactively manage the production of install plans, change management requests and the handover to the production support and contingency teams.
• Ensuring all production changes are correctly prioritised, developed, and tested before release into production
Remuneration Package:
This is an excellent role with a leading client on an exciting project, paying a strong salary and benefits package. Should you be interested please contact Stephen Daly on 01 2866666 or [email protected] for immediate consideration.

Job Spec #3

Overview:

My Dublin City Centre based client currently requires an experienced Winforms Developer with strong C# experience to join their existing team in a permanent role.

Winforms Developer Job Description:

Permanent position as a member of a highly skilled team tasked with designing, implementing and maintaining a range of Service Oriented Architecture based technologies. You will have a track record of delivering Win Forms based solutions with particular emphasis on both scalability and reliability. You will have specific experience in Microsoft C#, ASP.NET and a deep understanding of the .NET Framework. Some Multi-Threading experience would be beneficial but is not essential.

The role is enhancing and supporting existing business tools and developing new toolsets.

  • Experienced in full life cycle of software development; requirements analysis, design, development, testing, implementation
  • Experience consuming webservices and integration against 3rd party service providers
  • Familiarity with process modelling techniques
  • Understanding of object-oriented analysis and design techniques
  • Experience in creating software architecture documents or other design artefacts
  • Experience working with end user to define functional requirements and translation into technical specification

The successful candidate

The successful candidate should have proven track record in a technically challenging development environment. Experience of software development life cycle; specifically, development, testing and deployment as well as the documentation associated with each step. Strong analytical skills for effective problem solving.

The candidate should have excellent written and verbal communication skills and the ability to grasp issues quickly and make educated, critical judgment. The candidate must work well within a process driven environment specifically with attention to detail and actively promote adherence to process. The candidate will need to be a good team player, but will also be able to work autonomously with a minimum of supervision. Being able to work under pressure and meet tight deadlines is a must.

Skill Set:

  • Strong Knowledge (at least 4 years) of C#, and Microsoft development technologies [the .NET CLI and .Net Framework], and a good understanding of OO Programming
  • Multi-Threaded Concurrent Transaction Processing
  • Good experience in developing user interfaces and knowledge of .Net WinForms controls
  • Web Services and SOA experience.
  • Experience with SQL Server and TSQL advantageous
  • Experience of source control & working on multiple versions of the software, i.e. development, test & production code bases simultaneously.

Remuneration Package:

This is an excellent role with a top client, paying a strong salary and benefits package. Should you be interested please contact Stephen Daly on 01 2866666 or[email protected] for immediate consideration.

Job Spec #4

Overview:
My Dublin City Centre based client currently requires an experienced C# .Net Web Developer to join their existing 20+ person development team in a permanent role.

Web Developer Job Description:

Key Aspects of the Role

Designing, documenting, coding and unit testing of the web-based front end requirements for a multi-tiered system using ASP.NET, JavaScript & Adobe Flex, within specification and on time. Support System Test and participate in the handover of builds to release management and production teams. Provide accurate timeframes for projects and change requests & working to help Project Manager achieve deadlines.

Assist in the maintaining, tuning, issue resolution and modification of production applications to keep performance at an optimum level, according to technical and functional specifications. Taking pro-active steps to ensure higher availability and faster performance of web based solutions. Assist in the definition and implementation of development best practice, environments, and tools. Assist in the evaluation and recommendation of new technologies, platforms, and software.

The successful candidate

The successful candidate should have proven track record in a technically challenging development environment. Experienced in full life cycle of software development; including requirements analysis, design, development, testing, implementation and documentation of each step. Strong analytical skills for effective problem solving. The candidate should have excellent written and verbal communication skills and the ability to grasp issues quickly and make educated, critical judgment. The candidate will need to be a good team player, but will also be able to work autonomously with a minimum of supervision. Being able to work under pressure and meet tight deadlines is a must.

Technical Skillset:

  • Has a minimum of four years experience in a large web development environment
  • Strong knowledge and experience of ASP.NET, C#, and Microsoft development technologies.
  • Strong knowledge and experience of JavaScript, AJAX, JSON
  • Strong knowledge and commercial experience of Web UI technologies - HTML, CSS, dynamic HTML, XHTML, JQuery, XSLT.
  • Knowledge and experience of Web Services technologies including XML, SOAP, WSDL, MS IIS 6.0
  • Experience of source control & working on multiple versions of the software, i.e. development, test & production code bases simultaneously.

Advantageous

  • Experience of mission critical high volume transactional
  • Experience of Adobe Flex - ActionScript.
  • Experience of developing multi-lingual solutions.
  • Experience of MS SQL Server, MSMQ, VSS.
  • Experience of the Financial Industry

Remuneration Package:
This is an excellent permanent role with one of Irelands leading .Net Development environments. A strong salary plus benefits package and bonus is on offer for this role. Should you be interested in discussing it further, please send me an updated CV ASAP to [email protected] for immediate consideration or call me on 01 2866666.

Posted: Σάββατο, 11 Φεβρουαρίου 2012 5:57 μμ από το μέλος Παναγιώτης Παρίσης | 14 σχόλια
Δημοσίευση στην κατηγορία: ,
Developer Humor Part 1/n (where n > 1)

Ένα πρωί ένας προγραμματιστής κάνει μια αστεία ανακάλυψη κι αποφασίζει να τη μοιραστεί με την υπόλοιπη ομάδα, οπότε λαμβάνουμε όλοι το ακόλουθο email:

Subject: Interesting property name in SqlTransaction class

public sealed class SqlTransaction : DbTransaction
{
    // Fields
        ...
    // Methods
        ...
    // Properties
    public SqlConnection Connection { get; }
    protected override DbConnection DbConnection { get; }
    internal SqlInternalTransaction InternalTransaction { get; }
    public override IsolationLevel IsolationLevel { get; }
    private bool IsYukonPartialZombie { get; }
    internal bool IsZombied { get; }
    internal int ObjectID { get; }
    internal SqlStatistics Statistics { get; }
}

Αμέσως κυκλοφορεί η απάντηση:

Subject: RE: Interesting property name in SqlTransaction class

This is what it looks like when IsYukonPartialZombie == true

image001 

Ακολουθεί η ανταπάντηση:

Subject: RE: Interesting property name in SqlTransaction class

The black guy is about to get the IsZombied property set to true...

Και το επιστέγασμα:

Subject: RE: Interesting property name in SqlTransaction class

Actually it depends on his IsolationLevel.

Χαιρετισμούς από το ανοιξιάτικο Δουβλίνο!

Posted: Παρασκευή, 9 Απριλίου 2010 9:49 μμ από το μέλος Παναγιώτης Παρίσης | 0 σχόλια
Δημοσίευση στην κατηγορία:
Chess, anyone?

Χρόνος: Χίλια-εννιακόσια-ογδόντα-κάτι.

Τόπος: Πειραιάς, στο μοναδικό τότε μαγαζί μιας μετέπειτα μεγάλης αλυσίδας λιανικής πώλησης Η/Υ και περιφερειακών.

Πρόσωπα: εκείνοι κι εγώ.

Ρόλοι: εκείνοι ήταν επίδοξοι πελάτες κι εγώ ήμουν της προσκολλήσεως.

Επεξήγηση: την εποχή εκείνη, ελλείψει επαγγελματιών στο χώρο των μικροϋπολογιστών, κυριαρχούσαν οι χομπίστες. Όχι πως δεν υπήρχαν επαγγελματίες, απλώς προτιμούσαν να δουλεύουν με τα “μεγάλα σίδερα” και δεν ασχολιόντουσαν με τα “παιχνίδια”.

Όσοι απ’ τους χομπίστες, λοιπόν, διαθέταμε περιορισμένο βαλάντιο, δημιουργούσαμε ένα είδος συμβιωτικής σχέσης με τα ελάχιστα μαγαζιά του χώρου. Εμείς προσφέραμε εθελοντική εργασία και τα μαγαζιά προσέφεραν πρόσβαση σε μηχανήματα και προγράμματα. Εμείς πειραματιζόμαστε με το “σπάσιμο” του copy protection για την πλάκα μας, και τα μαγαζιά έφτιαχναν δεκάδες αντίγραφα των “σπασμένων” προγραμμάτων και τα πούλαγαν στους πελάτες τους.

Η κατάσταση αυτή είχε τις εξής επιπτώσεις:

  1. έκπληκτες οι εταιρείες software του εξωτερικού παρατηρούσαν ότι ακόμα και τα πλέον ευπώλητα προγράμματά τους διέθεταν στην Ελλάδα ακριβώς ένα κομμάτι, ποτέ μηδέν ή δύο…
  2. η πρώτες γενιές των ενασχολουμένων με τους προσωπικούς υπολογιστές στην Ελλάδα συνήθισαν στην ιδέα ότι το hardware πληρώνεται ακριβά, ενώ το software διατίθεται δωρεάν, με ό,τι αυτό συνεπάγεται…

Θα θυμάμαι αυτήν την εποχή ως το Far West της εγχώριας πληροφορικής, με την έννοια ότι υπήρχε μια διαρκής ρευστότητα ανάμεσα στη νομιμότητα και στην παρανομία, όπως ακριβώς στο Far West ο παράνομος στη μία πολιτεία, άμα κουραζότανε από το κυνηγητό, πήγαινε και γινόταν σερίφης στη διπλανή.

Επανέρχομαι λοιπόν στην ιστορία μας.

Είναι απόγευμα και έχουν μπει στο μαγαζί δυο πιτσιρικάδες με σκοπό ν’ αγοράσουν ένα μικροϋπολογιστή. Τους ρωτάω διακριτικά για το διαθέσιμο budget και καταλήγω να τους δείχνω το περίφημο ZX-Spectrum, “a compact, powerful and innovatively designed home-computer with a Zilog Z80A CPU running at 3.5 MHz, 16KB ROM and 48KB RAM” ! Οι πιτσιρικάδες το κοιτάνε με μισό μάτι και μου ζητάνε κάτι πιο εκλεκτό…

Αρχίζω να τους μιλάω για το AMSTRAD CPC 464, ένα “ολοκληρωμένο σύστημα με δικό του monitor κι ενσωματωμένο κασσετόφωνο”, Zilog Z80A CPU @ 4 MHz και 64KB RAM. Οι πιτσιρικάδες φαίνονται να δείχνουν ενδιαφέρον. Ο ένας κοιτάζει με περιέργεια το demo μηχάνημα και με ρωτάει συνέχεια για τα διαθέσιμα παιχνίδια, ενώ ο άλλος διαβάζει εμβριθώς το PROGRAMMER’S REFERENCE MANUAL της ενσωματωμένης BASIC. Περιττό να πω ότι έχω αρχίσει να θεωρώ το δεύτερο τύπο ως αδελφή ψυχή!

Ο πρώτος όμως μονοπωλεί τη συζήτηση. “To ARCANOID υπάρχει;”, “Το GAUNTLET υπάρχει;”, “Το CAULDRON υπάρχει;”, “Το MANIC MINER υπάρχει;”, “Είναι τόσο καλό όσο του Spectrum;” και πάει λέγοντας. Ξαφνικά ο δεύτερος σπάει τη σιωπή του και λέει στο φίλο του: “Ρε συ, αυτός παίζει και σκάκι!”

Γύρισα και τον κοίταξα με απορία. Και βέβαια ο υπολογιστής έπαιζε σκάκι, αλλά γιατί ο τύπος το ανακοίνωσε αφού διάβασε το REFERENCE MANUAL της BASIC; Τι μπορεί να βρήκε εκεί μέσα που να του έδωσε αυτήν την ιδέα; Δεν άντεξα και τον ρώτησα ευθέως:

- Πού είδες ότι παίζει σκάκι;
- Το διάβασα εδώ.
- Μα αυτό είναι το manual της γλώσσας προγραμματισμού !
- Ορίστε, δες και μόνος σου, έχει εντολή Ροκέ

Και μου έδωσε το manual ανοιχτό στη σελίδα όπου περιγραφόταν η εντολή Poke !

Technorati Tags: ,
Posted: Κυριακή, 5 Ιουλίου 2009 11:43 πμ από το μέλος Παναγιώτης Παρίσης | 4 σχόλια
Δημοσίευση στην κατηγορία: ,
Προφητικά λόγια

Χρόνος: Χίλια-εννιακόσια-ενενήντα-κάτι.

Τόπος: Χίλτον, σε ταυτόχρονη εκδήλωση της Novell (παντοδύναμης, τότε, στα δίκτυα) και της Seagate (πασίγνωστης για τους σκληρούς της δίσκους). Μη σας κάνει εντύπωση η ανάμειξη, απλώς και οι δύο εταιρείες αντιπροσωπεύονταν από τον ίδιο χονδρέμπορο στην Ελλάδα.

Πρόσωπα: εκείνος κι εγώ.

Ρόλοι: εκείνος ήταν ανώτερος δημόσιος υπάλληλος, που τον έστειλε η υπηρεσία του να παρακολουθήσει την εκδήλωση για αδιευκρίνιστους λόγους. Εγώ πάλι βρισκόμουν εκεί ως τεχνικός υπεύθυνος μιας μικρής, πλην τιμίας, εταιρείας πληροφορικής, της οποίας ήμουν και μέτοχος.

Στο διάλειμμα μεταξύ της εκδήλωσης της Novell και της παρουσίασης της Seagate, έλαβε χώρα η παρακάτω σύντομη συζήτηση:

Εκείνος (σκύβοντας συνομωτικά προς το μέρος μου): Καταλαβαίνεις τίποτα;
Εγώ (μην ξέροντας πώς ν’ απαντήσω): Εεεε, κάτι καταλαβαίνω…
Εκείνος: Πότε ανακαλύφθησαν όλ’ αυτά;
Εγώ: Ποια, τα δίκτυα;
Εκείνος: Ναι, όλ’ αυτά, τα δίκτυα, οι μικροί υπολογιστές…
Εγώ: Έχουν κάμποσο καιρό…
Εκείνος: Θα μας μιλήσουν και για τους σκληρούς δίσκους;
Εγώ: Ναι, αμέσως μετά.
Εκείνος: Έχουμε κι εμείς ένα σκληρό δίσκο στην υπηρεσία, αλλά όταν ξεκινάει να γυρίζει, πρέπει κάποιος να του βάζει έναν τάκο για φρένο, γιατί αλλιώς προχωράει μόνος του προς την έξοδο!
Εγώ: Εεεε, αυτοί εδώ είναι άλλης τεχνολογίας, είναι για προσωπικούς υπολογιστές…
Εκείνος: Ναι, αλλά γιατί δεν μας τους δείχνουν;
Εγώ: Πώς δεν μας τους δείχνουν, όλα τα μοντέλα είναι πάνω στους πάγκους στη σειρά!
Εκείνος: Σκληροί δίσκοι είναι αυτά;
Εγώ: Ναι.
Εκείνος: Τόσο μικροί;
Εγώ: Ναι.
Εκείνος: Και τι χωράνε;
Εγώ: Οι φθηνοί, οι Winchester, 10MB, τα πιο ακριβά μοντέλα νομίζω ότι φτάνουν μέχρι 60MB.
Εκείνος: Εννοείς KB;
Εγώ: Όχι, εννοώ MB.
Εκείνος: Τι σου είναι η επιστήμη… Είναι να σου φεύγει το μυαλό… Αλλά να δεις που θα βρούμε τον μπελά μας μ’ αυτά τα μαραφέτια…
Εγώ (αποχωρώντας πλαγιομετωπικά και ψελλίζοντας): Με συγχωρείτε, πρέπει να δώσω κάτι σε κάποιον…
Εκείνος: Τη βλέπω τη δουλειά... Θα μας κοτσάρουν από ένα μικρό υπολογιστή σε κάθε γραφείο και θα τρέχουμε και δε θα φτάνουμε…
Εγώ: Εεεε…
Εκείνος: Τώρα φοράμε λευκή ποδιά και είμαστε επιστήμονες, μετά θα καταντήσουμε να φοράμε φόρμα εργασίας και να είμαστε τεχνίτες…
Εγώ: …
Εκείνος: Τώρα έρχονται παρακαλετά να μας ζητήσουν μια εκτύπωση, μετά θα μας δίνουν και διορία για να τους φτιάχνουμε τα προγράμματα που ζητάνε…
Εγώ: …
Εκείνος: Εμένα δε με νοιάζει, εγώ θα έχω πάρει σύνταξη. Για σας τους νέους το λέω, για να προσέχετε. Αυτά τα παιχνιδάκια με τα οποία ασχολείστε είναι τόσο φθηνά που είναι επικίνδυνα!

Αυτά είπε ο άνθρωπος, κι εγώ ήμουν εκεί και τα άκουσα από πρώτο χέρι, αλλά τότε δεν τα εκτίμησα δεόντως, είτε γιατί ήμουν νέος και άπειρος, είτε γιατί δεν είχα κουκούτσι μυαλό. Όμως τώρα τελευταία τον σκέφτομαι συχνά. Σχεδόν μου έχει γίνει έμμονη ιδέα… Σε καλό μου!

Technorati Tags: ,
Posted: Πέμπτη, 2 Ιουλίου 2009 6:44 μμ από το μέλος Παναγιώτης Παρίσης | 2 σχόλια
Δημοσίευση στην κατηγορία: ,
Λόγια της πλώρης

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

Πάντως τα λάθη που μου προκάλεσαν τη μεγαλύτερη ενόχληση δεν είναι εκείνα που θα μπορούσα ν’ αποφύγω μόνο αν είχα το χάρισμα της προφητείας. Δυστυχώς, μια μεγάλη μερίδα λαθών οφειλόταν στη δική μου ανικανότητα ν’ αντιληφθώ την πραγματικότητα, είτε λόγω νεανικής απειρίας, είτε λόγω ιδεαλιστικής ιδεοληψίας, είτε λόγω καθαρής βλακείας…

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

Μέχρι εδώ, κατηγορώ τη νεανική απειρία μου…

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

Τα έβλεπα αυτά, αλλά τ’ αντιμετώπιζα ως εξαιρέσεις. “Η εταιρεία είναι το καράβι μας”, σκεφτόμουν. “Απλώς κάποιοι ναύτες είναι σκάρτοι...”

Μέχρι εδώ, κατηγορώ την ιδεαλιστική ιδεοληψία μου…

Πέρασαν αρκετά χρόνια και η πραγματικότητα συνέχιζε να με ραπίζει συστηματικά, μπας και με συνεφέρει. Οι σκέψεις μου σταμάτησαν να είναι μονόλογοι και μετασχηματίστηκαν σε εσωτερικούς διαλόγους, όπου η δεύτερη φωνή προερχόταν από το δαίμονα της εμπειρίας. Σας μεταφέρω ένα μικρό δείγμα:

- Γιατί οι πωλητές μας έκαναν τόσο κακή συμφωνία με τον πελάτη και ζημιώθηκε η εταιρεία;
- Γιατί παίρνουν τα ποσοστά τους όταν υπογράφεται το συμβόλαιο, όχι όταν κερδίζει η εταιρεία.
- Ναι, αλλά ένα κακό project δεν θα τους οφελήσει σε τίποτα.
- Κάνεις τεράστιο λάθος. Ίσα-ίσα θα ξαναπούνε στη διοίκηση ότι εκείνοι τα δίνουν όλα για να φέρουν έργα, ενώ εσείς στο τμήμα ανάπτυξης τα καταστρέφετε με την ανικανότητά σας.
- Μήπως χρειάζονται περισσότερη βοήθεια στο σχεδιασμό της λύσης;
- Εάν ήθελαν βοήθεια, θα τη ζητούσαν πριν υπογραφεί η σύμβαση, να μη σου πω ότι θα σε παίρνανε μαζί τους και στις συζητήσεις με τον πελάτη. Θυμάσαι τι σου είπαν όταν προσφέρθηκες να τους συνοδέψεις;
- Ότι “δεν θέλουν κάποιος τεχνικός να τους χαλάσει την πώληση”, αλλά νόμιζα ότι ήταν αστείο.
- I rest my case…
- Τι εννοείς “θα ξαναπούνε στη διοίκηση”;
- I rest my case again…

Και μη θεωρήσετε ότι αυτά συμβαίνουν μόνο σε εταιρείες του δικού μας χώρου. Ιδού ένα δεύτερο δείγμα εσωτερικού διαλόγου:

- Γιατί ο υπεύθυνος προμηθειών του πελάτη μας δημιουργεί συστηματικά τόσα προβλήματα;
- Γιατί δεν έχει κανένα συμφέρον να προχωρήσει το έργο.
- Τι λες; Το business value για την εταιρεία του είναι ανυπολόγιστο.
- Η εταιρεία του μπορεί να έχει συμφέρον να προχωρήσει το έργο, ο ίδιος όχι.
- Μα πώς γίνεται αυτό;
- Για σκέψου, γιατί η εταιρεία του θα γλυτώσει λεφτά;
- Γιατί θα κάνει μεγάλη οικονομία στο Χ και στο Ψ, που μεταφράζεται σε Ζ εκατομμύρια ευρώ το χρόνο!
- Ποιος κάνει τις συμφωνίες για τις προμήθειες Χ και Ψ;
- Ο υπεύθυνος προμηθειών, όμως…
- Και ποιος παίρνει κάτω απ’ το τραπέζι τις σχετικές μίζες για παραγγελίες τόσων εκατομμυρίων ευρώ κάθε χρόνο;
- Θέλεις να πεις…
- Ναι.
- Δηλαδή, ο…
- Ναι.
- Γι’ αυτό κάθε φορά…
- Είπαμε, ναι.

Από δω και μετά κατηγορώ τη βλακεία μου…

Σήμερα, αν μου ζητούσε κανείς να του δώσω τον ορισμό της εταιρείας, το μόνο που μου έρχεται στο μυαλό είναι το εξής:

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

Καράβια και τα σχετικά, έχουν πάει περίπατο προ πολλού…

Technorati Tags:
Posted: Τετάρτη, 1 Ιουλίου 2009 1:22 μμ από το μέλος Παναγιώτης Παρίσης | 3 σχόλια
Δημοσίευση στην κατηγορία:
NHibernate 101

Στις 24 Ιουνίου διοργανώθηκε το 31ο dotNETZone.gr Community Event με θέμα «NHibernate 101». Τα slides της παρουσίασης και το source code των demos (C#) μπορούν να γίνουν download από την επιλογή Αρχειοθήκες (Κατάλογος: Παρουσιάσεις).

Posted: Πέμπτη, 25 Ιουνίου 2009 6:18 μμ από το μέλος Παναγιώτης Παρίσης | 1 σχόλια
Δημοσίευση στην κατηγορία: , ,
Σήμερον τ’ αρχοντόπουλα θέλουν καβαλικεύσει…

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

Πάμε ξανά, γιατί έτσι δεν θα βγάλουμε άκρη...

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

Γιατί ανάμειξα τις τρεις ιστορίες; Πρώτον, για να μην πληγώσω κανένα. Όλα τα στοιχεία που θα μπορούσαν να στεναχωρήσουν κάποιον είναι από τις άλλες ιστορίες, εντάξει; Δεύτερον, για να γίνει η τελική ιστορία αγνώριστη. Τρίτον, δεν υπάρχει τρίτον, οπότε προχωρώ στο ψητό.

Μια φορά κι έναν καιρό υπήρχε ένα ελληνικό software house, του οποίου οι ιδιοκτήτες φρόντισαν να δείξουν εμπράκτως την εμπιστοσύνη που έτρεφαν προς την ομάδα ανάπτυξης με τον εξής πρωτότυπο τρόπο: αφαίρεσαν όλα τα floppy drives από τα τερματικά των προγραμματιστών και απενεργοποίησαν τις παράλληλες και τις σειριακές θύρες (hint: USB θύρες δεν υπήρχαν τότε στα PCs). Έτσι, το επόμενο πρωί μάθαμε ότι δεν μπορούμε "πλέον" να κλέψουμε τον πηγαίο κώδικα που φτιάχναμε, λες και τον κλέβαμε προηγουμένως. Όσο για την κοινόχρηστη βιβλιοθήκη, αυτή δεν επιτρεπόταν ούτε καν να την αντικρύσουμε. Μόνο την compiled μορφή της μπορούσαμε να κάνουμε link στα προγράμματά μας από ένα public directory (shared folder για τους νεώτερους) του δικτύου, στο οποίο είχαμε read-only πρόσβαση.

Η πατρότητα της ιδέας ανήκε σ’ έναν προσωπικό φίλο του ενός απ’ τους ιδιοκτήτες, ο οποίος μόλις είχε αφιχθεί από τις Ηνωμένες Πολιτείες και “ήξερε πώς φτιάχνεται το software στον πολιτισμένο κόσμο”. Περιττό να σας πω ότι προσελήφθη πάραυτα ως διευθυντής ανάπτυξης κι εγκαταστάθηκε στο χώρο μας. Από τότε και μετά δεν μπορούσαμε ούτε να γκρινιάξουμε για τις συμφορές που μας έβρισκαν.

Το κακό τρίτωσε όταν ο νέος μας διευθυντής έκανε κάτι ανήκουστο για την εποχή εκείνη (τέλη δεκαετίας του ‘80): απαγόρεψε το κάπνισμα στο χώρο ανάπτυξης, όχι για λόγους υγείας, αλλά για λόγους… πυρασφάλειας! Μας ανακοίνωσε δηλαδή ότι εάν κάποιος από μας δεν έσβηνε καλά το τσιγάρο του στο τασάκι και μετά άδειαζε το τασάκι στα σκουπίδια και μετά τα σκουπίδια έπαιρναν φωτιά και μετά έμπαιναν σε λειτουργία οι ανιχνευτές καπνού και μετά ενεργοποιούσαν το σύστημα πυρόσβεσης το οποίο ψέκαζε με νερό τα μηχανήματα, τότε όλη η επένδυση σε software και hardware θα πήγαινε χαμένη. Οι προγραμματιστές για να καπνίσουν έπρεπε να παίρνουν άδεια και να πηγαίνουν σ’ ένα μικρό χώρο δίπλα στις τουαλέτες. Αυτό μας είχε φανεί βαθύτατα άδικο, γιατί ίσχυε μόνο για μας. Όλοι οι άλλοι (οι γραμματείς, οι ιδιοκτήτες, οι πελάτες και οι πωλητές) επιτρεπόταν να καπνίζουν παντού, ακόμη και στο χώρο μας, χωρίς να τους μιλάει κανένας. Προφανώς αυτοί δεν χρησιμοποιούσαν τασάκια, ή έσβηναν τα τσιγάρα τους με 100% επιτυχία…

Μια φορά που “έκανα την ανάγκη μου στο καπνιστήριο”, όπως λέγαμε κοροϊδευτικά την επίσκεψη στο δωματιάκι, άκουσα φωνές. Προσοχή: δεν εννοώ φωνές σαν κι εκείνες που άκουγε η Ζαν ντ’ Αρκ. Εννοώ φωνές πραγματικών ανθρώπων που διαφωνούσαν έντονα. Εστίασα την προσοχή μου στη “συζήτηση” και σύντομα κατάλαβα ότι άκουγα τους δύο ιδιοκτήτες να τσακώνονται για το διευθυντή ανάπτυξης. Μετά θυμήθηκα ότι το γραφείο του ενός συνεταίρου έβλεπε στον ίδιο ακάλυπτο όπου έβγαινε ο εξαερισμός του “καπνιστήριου”.

Η πρώτη μου αντίδραση ήταν να βιαστώ να τελειώσω το τσιγάρο για να μη βρω κανένα μπελά (λόγω οικονομικής στενότητος δεν μου περνούσε απ’ το μυαλό να πετάξω μια “βασιλική γόπα”). Μέχρι να φύγω όμως είχα ακούσει αρκετά για να καταλάβω ότι ο πολυαγαπημένος μας διευθυντής δεν είχε πολλή (εταιρική) ζωή ακόμη…

Η γνώση αυτή με γέμισε τόση χαρά που δεν μπορούσα να κρατηθώ. Ήθελα ν’ ανακοινώσω τα νέα στην υπόλοιπη ομάδα, αλλά πώς; Και τότε συνέβη το εξής περίεργο: ο συνδυασμός ευφορίας και ανυπομονησίας προκάλεσε την ανάκληση στη μνήμη ενός παλιού δημοτικού τραγουδιού (και μάλιστα απ’ τον ακριτικό κύκλο). Μπήκα λοιπόν στην αίθουσα, γύρισα προς τους άλλους (με την πλάτη στο διευθυντή ανάπτυξης) και είπα:

Σήμερον άλλος ουρανός! Σήμερον άλλη μέρα!
Σήμερον τ’ αρχοντόπουλα [εδώ έστρεψα τα μάτια μου προς τον επάνω όροφο, όπου ήταν τα γραφεία των αφεντικών] θέλουν καβαλικεύσει.
Μόνον του κυρ-Αρμούρη ο γιός [εδώ έγνεψα προς τον περί ου] ουδέν καβαλικεύει.

Να πω την αλήθεια δεν περίμενα να γίνω αντιληπτός, αλλά η λάμψη στα μάτια των υπολοίπων μου έδωσε ελπίδες. Και πράγματι, όταν βρεθήκαμε έξω απ’ το γραφείο μετά το σχόλασμα, με πέθαναν στις ερωτήσεις.

Μερικές μέρες αργότερα επαναλήφθηκε το ίδιο σκηνικό. Οι δύο ιδιοκτήτες “συζητούσαν” μεγαλοφώνως κι εγώ κάπνιζα το τσιγάρο μου με το μάτι στην πόρτα και το αυτί στον αεραγωγό. Και πράγματι βγήκε κελεπούρι: την ερχόμενη Τρίτη θα του ανακοινώνανε την απόλυσή του.

Μπήκα ξανά στην αίθουσα και δήλωσα πασιχαρής:

Τρίτη γεννήθη ο Διγενής και Τρίτη θα πεθάνει!
Ο Χάρος τον συνάντησε στα μαρμαρένια αλώνια…

Το σούσουρο πνίγηκε με μεγάλη δυσκολία. Ο περί ου με κοίταζε καλά-καλά σαν να ετοιμαζόταν να τηλεφωνήσει στο Δρομοκαΐτειο.

Όταν ήρθε η μεγάλη μέρα, μας ανακοίνωσαν ότι ο διευθυντής ανάπτυξης παραιτήθηκε για προσωπικούς λόγους. Μόλις μείναμε μόνοι, άρχισαν οι πανηγυρισμοί. Και πάνω στην αναμπουμπούλα, ακούστηκε το νεώτερο μέλος της ομάδας ν’ απαγγέλλει:

Κάτου στην άσπρη πέτρα και στο κρύο νερό,
εκεί κείτεται ο Γιάννος τ' Ανδρόνικου ο γιος,
κομμένος και σφαγμένος κι ανεγνώριστος.
Το αίμα του σαν βρύση χύνονταν στη γη,
και γιατρεμό δεν είχεν η βαθειά πληγή…

Technorati Tags: ,
Posted: Δευτέρα, 15 Ιουνίου 2009 10:04 πμ από το μέλος Παναγιώτης Παρίσης | 4 σχόλια
Δημοσίευση στην κατηγορία: ,
Μίλα μου για μήλα #2

[Αφιερωμένο στον Δ.Π.]

Συνεχίζω το προηγούμενο post με θέμα πώς ν’ αποφύγει κανείς το διάλογο επί της ουσίας. Υπενθυμίζω ότι οι συμβουλές απευθύνονται αποκλειστικά σε επαγγελματίες συζητητές που βγάζουν το ψωμάκι τους συμμετέχοντας κατ’ ανάγκη σε διαλόγους κουφών. [Παιδάκια, μην προσπαθήσετε να το επαναλάβετε στο σπίτι, κ.λ.π.]

Εύχρηστες παρελκυστικές τεχνικές για κάθε χρήση

  • Ad hominem (Ονοματοθεσία)
    ή επί το ποδοσφαιρικότερον: "αν δεν μπορείς να παίξεις τη μπάλα, παίξε τον παίκτη". Μείωσε το κύρος του αντιπάλου ή εκείνων που συμφωνούν με τον αντίπαλο χρησιμοποιώντας όχι ευθέως υβριστικά, αλλά σαφώς απαξιωτικά ονόματα,
    π.χ.
    - Ο καθηγητής κ. Χ στην έκθεσή του προβλέπει σύντομα την κατάρρευση του ασφαλιστικού συστήματος εάν δεν ξεκινήσει η αναδιοργάνωσή του τώρα.
    -
    [με συγκαταβατικό χαμόγελο] Ναι, όντως πάντοτε καταστροφές προβλέπει ο κ. "Σκληρός Πυρήνας του πληθωρισμού"...
  • Ad hominem (Αντιμετάθεση Ευθυνών)
    Χρησιμοποίησε φράσεις του τύπου "Δεν είμαι εγώ εκείνος που καταβαραθρώνει το επίπεδο της συζήτησης λέγοντας [ακολουθούν όλες οι αναπόδεικτες και μειωτικές φήμες που κυκλοφορούν στην πιάτσα για τον αντίπαλο]". Έτσι σιγουρεύεσαι ότι τις άκουσαν όλοι στο ακροατήριο, αλλά κανείς δεν μπορεί να σε κατηγορήσει ότι εσύ τις διαδίδεις.
  • Ad hominem (Πατρονάρισμα)
    π.χ.

    • Το θέμα δεν είναι αν εγώ μπορώ να σου εξηγήσω τι πιστεύω. Το θέμα είναι αν εσύ μπορείς να το καταλάβεις.
    • Το νιώθω ότι βαθιά μέσα σου κι εσύ ο ίδιος διαφωνείς με όσα υποστηρίζεις, όμως καταλαβαίνω ότι βρίσκεσαι σε δύσκολη θέση και δεν θα επιμείνω...
    • Κι εγώ στην ηλικία σου έλεγα τα ίδια πράγματα...
      Καθώς θα εξελίσσεσαι πνευματικά / πολιτικά / συναισθηματικά, θα καταφέρεις να ξεπεράσεις τον τωρινό σου τρόπο σκέψης...
  • Ad hominem (Ψυχολογία της Παντόφλας)
    Κανείς δεν ξέρει τι ακριβώς υποστηρίζει η σύγχρονη Ψυχολογία, όμως μετά τα κουφά που ακούσαμε στη δεκαετία του ‘70, όλα μπορούν να γίνουν πιστευτά. Αυτοσχεδίασε και παρουσίασε τον αντίπαλο ως ψυχολογικά ασταθή,
    π.χ.

    • Συμφωνείς με το [χ], λόγω υπερενίσχυσης του ενστίκτου του θανάτου, πράγμα που κατά πάσα πιθανότητα οφείλεται σε κάποια τραυματική εμπειρία της παιδικής ηλικίας
    • Διαφωνείς με το [χ], λόγω υποσυνείδητης απώθησης του ενστίκτου του θανάτου, πράγμα που κατά πάσα πιθανότητα οφείλεται σε κάποια τραυματική εμπειρία της παιδικής ηλικίας
    • Τέτοιες απόψεις συνήθως εκφράζουν άτομα που υπέστησαν βίαιο απογαλακτισμό κατά τη βρεφική ηλικία…
  • Υπεργενίκευση
    Γνωστό και ως το "Επιχείρημα της Κουτσής Μαρίας",
    π.χ.
    • Είναι αυτονόητο / πασίγνωστο ότι ...
    • Όλος ο κόσμος ξέρει ότι ...
    • Είναι μαθηματικά αποδεδειγμένο ότι ...
    • Η συντριπτική πλειοψηφία των επιστημόνων επιβεβαιώνει ότι ...
  • Υπερεξειδίκευση
    Ζήτα απ' τον αντίπαλο λεπτομέρειες που είναι αδύνατο να θυμάται, ώστε να φανεί ότι δεν είναι σίγουρος γι' αυτά που υποστηρίζει,
    π.χ.
    Πριν λίγο μιλήσατε για αντικρουόμενα νομοθετήματα. Θα μπορούσατε παρακαλώ να μας παραθέσετε επακριβώς τα άρθρα και τις παραγράφους της νομολογίας που στηρίζουν τον ισχυρισμό σας;
  • Αποκλεισμός του τρίτου
    Βασισμένος σε ερωτήσεις του τύπου "Σταμάτησες να δέρνεις τη γυναίκα σου;", οι οποίες δεν απαντώνται ικανοποιητικά μόνο με ναι ή όχι, ο αποκλεισμός του τρίτου παγιδεύει τον αντίπαλο και τον υποχρεώνει είτε να πολωθεί, είτε να εγκαταλείψει απελπισμένος. Ειδικά όταν το επίπεδο του κοινού είναι χαμηλό, η αποφυγή των γκρίζων ζωνών και η λογική του άσπρου / μαύρου λειτουργεί θετικά για τον εισηγητή,
    π.χ.
    Τι προτιμάς, να επανέλθει η θανατική ποινή ή να μας πνίξει η εγκληματικότητα;
  • Λήψη του ζητουμένου
    δηλαδή χρήση του συμπεράσματος ως προϋπόθεσης,
    π.χ.
    Είναι σωστό γιατί το λέει το κόμμα και το λέει το κόμμα γιατί είναι σωστό!
  • Δημιουργική Μεταφορά
    Χρησιμοποίησε το σχήμα "Το να υποστηρίζει κανείς [χ] είναι σαν να δέχεται [ψ]", όπου χ και ψ δεν έχουν καμμία αιτιακή σχέση μεταξύ τους,
    π.χ.
    Το να υποστηρίζει κανείς το δικαίωμα των γυναικών να ορίζουν απεριόριστα το σώμα τους είναι σαν να δέχεται τη νομιμοποίηση του φόνου υπό όρους.
  • Προβολή εκτός ορίων
    Πάρε μια ιδέα του αντιπάλου σου και τράβηξέ την απ' τα μαλλιά, ώστε να καταλήξει σ' ένα παράλογο, αντικοινωνικό ή απάνθρωπο συμπέρασμα. Οι περισσότεροι στο ακροατήριο θα νομίσουν ότι αυτό το συμπέρασμα αποτελεί υποχρεωτική κατάληξη της αρχικής ιδέας,
    π.χ.
    Σήμερα είναι υπό κατάργησιν η αναγραφή του θρησκεύματος στις ταυτότητες, αύριο το μάθημα των θρησκευτικών, μετά έχει σειρά η ελληνική σημαία και στο τέλος η ελληνική γλώσσα!
  • Ολική Επαναφορά
    Γνωστό εις τα καθ' ημάς με τον τίτλο "Το οποίον σκουλήκι...". Πρόκειται γι' αλλαγή του υπό συζήτησιν θέματος (αλλά με χάρη και λεβεντιά) κι επαναφορά σ' ένα άλλο, άσχετο αλλά καλύτερα προετοιμασμένο ή πιο συμφέρον για τον ομιλητή,
    π.χ.
    Οι θέσεις που έχω υποστηρίξει κατά καιρούς είναι βεβαίως ένα θέμα, αλλά αυτό που θα 'πρεπε να μας απασχολεί σήμερα είναι η στάση που θα κρατήσουμε στην αυριανή ψηφοφορία, από την οποία ψηφοφορία κρέμονται ...
  • Ενοχή εξ αντανακλάσεως
    Όσοι έχουν πάει φαντάροι σίγουρα θυμούνται το καψόνι λόγω συλλογικής ευθύνης…
  • Δικαίωση εξ αντανακλάσεως
    Παρουσιάζεται με διάφορες μορφές:
    • Καταφυγή στην Αυθεντία
      (όταν η εν λόγω αυθεντία είναι μεν αυθεντία, αλλά σε άλλο τομέα από αυτόν που είναι υπό συζήτησιν)
      π.χ.
      Τις ίδιες (πολιτικές ή θρησκευτικές) απόψεις εξέφρασε και ο Χ που είναι αυτή τη στιγμή η μεγαλύτερη αυθεντία στη χειρουργική εγκεφάλου / διαστημική τεχνολογία / κ.λ.π.
    • Αναφορά σε Προβεβλημένους από τα ΜΜΕ
      π.χ.
      Πως είναι δυνατόν να θεωρείς ψευδοεπιστήμη την εναλλακτική ιατρική, όταν τόσες και τόσες προσωπικότητες του Holywood έχουν μιλήσει με τα καλύτερα λόγια γι’ αυτήν!
    • Πλειοψηφική Επιβεβαίωση
      π.χ.
      Μόνο μια μικρή μειοψηφία ανθρώπων το πιστεύει αυτό, άρα είναι προφανές ότι πρόκειται περί σφάλματος.
  • Λαϊκή Σοφία
    Για κάθε θέμα υπάρχουν αντικρουόμενες παροιμίες που μπορεί να φανούν βολικές, όταν δεν έχεις άλλα επιχειρήματα,
    π.χ.
    • Όποιος βιάζεται, σκοντάφτει.
    • Το γοργόν και χάριν έχει.
  • Προεξόφληση
    π.χ.
    Είναι παρατηρημένο ότι το επόμενο επιχείρημά μου γίνεται τόσο ευκολότερα αποδεκτό, όσο πιο καλλιεργημένος είναι ο συνομιλητής μου.
  • Άδειασμα
    "Φοριέται" με δύο τρόπους:
    • Η παγερή αδιαφορία κι η αποστασιοποίηση με την οποία προσεγγίζεις ένα τόσο σοβαρό θέμα δείχνει ότι δεν αντιλαμβάνεσαι την ανθρώπινή του διάσταση!
    • Η προφανής συναισθηματική σου εμπλοκή με το θέμα σε εμποδίζει να το κατανοήσεις σφαιρικά…
  • Μπέρδεμα
    Το αγαπημένο μου! Εάν βρεθείς σε πολύ δύσκολη θέση, πες κάτι που θα παραλύσει το μυαλό του αντιπάλου,
    π.χ. 
    • Αυτό που εξέφρασες είναι διαλεκτικά συμβατό μ' αυτό που υπονοείς;
    • Μου είναι αδύνατο να καταλήξω εάν μου επιτρέπεται να διαφωνήσω ευθέως ή αν απλώς δυσκολεύομαι να συνειδητοποιήσω τις αμφιβολίες μου επί του θέματος.
    • Εάν σου έκανα εγώ την ίδια ερώτηση, ποια νομίζεις ότι θα ήταν η καταλληλότερη απάντηση, δοθέντος ότι διαφωνούμε;
  • Ειρωνική Κυριολεξία
    Εισάγεται πάντοτε με το "νομίζω", εκφέρεται με αθώο χαμόγελο, εκνευρίζει τον αντίπαλο και τονίζει το παιχνιδιάρικο πνεύμα σου,
    π.χ.
    • - Ποιά ήταν η πρώτη ερώτηση;
      - Νομίζω η ερώτηση Νούμερο Ένα!
    • - Πως εξηγείτε τη διαφορά του μέσου μισθού γυναικών και ανδρών για την ίδια δουλειά;
      - Νομίζω πως έχει να κάνει με το φύλο των εργαζομένων!
  • Το κλείσιμο του Πωλητή
    Μόλις δεις σημάδια κόπωσης στο ακροατήριο, προχώρησε στο κλείσιμο,
    π.χ.
    - Τελικά τι θέλεις, να επικρατήσει αναρχία / απολυταρχία / κ.λ.π.;
    - Όχι
    - Τότε λοιπόν σταμάτα να ρίχνεις με τη στάση σου νερό στο μύλο της αναρχίας / της αντίδρασης / κ.λ.π.

Αυτά προς το παρόν.
Τεχνικές φυσικής εξόντωσης των αντιπάλων πρέπει ν’ αναζητηθούν σε άλλα blogs!

Technorati Tags:
Posted: Τρίτη, 2 Ιουνίου 2009 9:35 πμ από το μέλος Παναγιώτης Παρίσης | 1 σχόλια
Δημοσίευση στην κατηγορία:
Μίλα μου για μήλα…

Η λέξη “διάλογος” έγινε ξανά της μόδας, λόγω του ότι διανύουμε προεκλογική περίοδο. Κι αυτό ακριβώς (ο διάλογος - όχι η προεκλογική περίοδος) είναι το θέμα του συγκεκριμμένου post.

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

Όμως υπάρχουν σοβαρές διαφωνίες στο τι συνιστά διάλογο. Για παράδειγμα, πρέπει τα εμπλεκόμενα μέρη ν' αποδέχονται ανεπιφύλακτα τους κανόνες της λογικής; Μπορούν να συζητήσουν ισότιμα ο ισχυρός με τον ανίσχυρο; Έχει νόημα ο διάλογος μεταξύ αυτών που (παραφράζοντας τον William James) "νομίζουν ότι συζητάνε, ενώ απλώς ανταλλάσσουν τις προκαταλήψεις τους";

Ερωτήματα σαν τα προαναφερθέντα βρίσκονται στο επίκεντρο των φιλοσοφικών και πολιτικών διαξιφισμών από το 18ο αιώνα. Δυστυχώς όμως κανείς δεν ασχολείται με μια πολυπληθή ομάδα συμπολιτών μας, οι οποίοι:

  1. είναι απόλυτα ευχαριστημένοι με τις αντιλήψεις τους,
  2. δεν έχουν καμμία διάθεση να τις ξανασκεφτούν, πολύ δε περισσότερο να τις αμφισβητήσουνε, και…
  3. μάλιστα βγάζουν το ψωμί τους προωθώντας τη μία ή την άλλη άποψη, οπότε δεν έχει καμμία σημασία εάν αυτή είναι καλύτερη ή χειρότερη από τις άλλες (“με το φαγάκι του μωρού θα παίζουμε;”)

Το δράμα αυτών των ανθρώπων έγκειται στο ότι, αν και σιχαίνονται το διάλογο, παρ' όλ' αυτά υποχρεώνονται από τις κοινωνικές συμβάσεις (και τις επαγγελματικές τους υποχρεώσεις) να συνδιαλέγονται συνεχώς.

Όμως υπάρχει λύση!

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

Γενικές Κατευθύνσεις

  • Δημοσιοποίηση
    Φρόντισε πάντοτε να κάνεις διάλογο μπροστά σε ακροατήριο. Μην αναλώνεσαι σε man-to-man αψιμαχίες. Θυμήσου: ο Δημόσιος Διάλογος ("ντιμπέιτ" επί το ελληνικότερον) συνήθως σκοτώνει το νόημα, ιδιαίτερα αν γίνεται στην τηλεόραση.
  • Σημειολογία, όχι Σημασιολογία
    Δεν έχει τόση σημασία τι λες, όση πώς το λες. Όπως λέει και το ρητό, οι απλοί άνθρωποι (δηλαδή οι δυνητικοί πελάτες σου) εντυπωσιάζονται πιο πολύ από τη γλώσσα του σώματος, παρά από τη γλώσσα του στόματος. Γι’ αυτό όσο πιο χοντρό είναι το ψέμα που ετοιμάζεσαι να πεις, τόσο πιο άνετος και σίγουρος πρέπει να δείχνεις.
  • Σύλληψη της ευνοίας
    Βασική προϋπόθεση της επιτυχίας είναι να κερδίσεις το ακροατήριο. Ξεκίνα παινεύοντας τους ακροατές σου για κάτι, δεν έχει σημασία τι. Δείχνε στους υποστηρικτές σου με κάθε ευκαιρία ότι είσαι ένας απ’ αυτούς, αλλά ταυτοχρόνως φρόντιζε να μην αποξενώνεις όσους δεν διάκεινται και τόσο φιλικά απέναντί σου. Για παράδειγμα, είναι καλό από το ξεκίνημα να δηλώσεις και ότι θεωρείς το διάλογο απαραίτητο, και ότι τα αιτήματα ή οι απόψεις σου είναι "αδιαπραγμάτευτες", ούτως ώστε ούτε οι “άλλοι” να σε θεωρήσουν αδιάλλακτο, ούτε οι δικοί σου πουλημένο.
  • Επιλεκτική Κώφωση
    Αντί να προσπαθείς να κατανοήσεις τα λεγόμενα του συνομιλητή σου, ψάξε καλύτερα για λέξεις-κλειδιά που θα σε βοηθήσουν να τον τοποθετήσεις σε μια από τις προκατασκευασμένες γενικές κατηγορίες που έχεις στο κεφάλι σου. Έτσι μπορείς ν' αντικρούσεις μ' ευκολία όσα θα μπορούσε να είχε πει, είτε όντως τα είπε, είτε όχι. Εάν πάλι δεν καταφέρεις να τον κατηγοριοποιήσεις με την πρώτη, άρχισε να βάζεις λόγια στο στόμα του με το σύστημα "Αν κατάλαβα καλά, υποστηρίζεις ότι [κάτι άσχετο και σιχαμένο]". Μετά μπορείς να τον κατακεραυνώσεις, παρά τις διαμαρτυρίες του. Στο τέλος, το μισό ακροατήριο θα είναι πεπεισμένο ότι ο συνομιλητής σου είναι ακραίος υποστηριχτής του [κάτι άσχετο και σιχαμένο], ενώ το άλλο μισό απλώς θα θαυμάζει την ευγλωττία σου κατά την παράθεση των επιχειρημάτων σου.
  • Στρατηγική εξόδου
    Είναι ζούγκλα εκεί έξω! Ποτέ δεν ξέρεις πότε θα στριμωχτείς τόσο πολύ, ώστε να βρεθείς να παλεύεις για την επιβίωση. Σ’ αυτήν την περίπτωση πρέπει να είσαι προετοιμασμένος να διαλύσεις τη συζήτηση προκαλώντας ανοιχτά τον αντίπαλο
    π.χ.
    • Σου εξήγησα τη θέση μου τόσες φορές. Τελικά δεν θέλεις να την καταλάβεις, δεν μπορείς να την καταλάβεις, ή απλώς δεν καταφέρνεις να συγκεντρωθείς στη συζήτηση;
    • Σ' ανθρώπους σαν και σένα δεν έχω να πω απολύτως τίποτα. Εμένα θα με κρίνει ο λαός / η ιστορία / ο Θεός!

Σίγουρα θα παρατηρήσατε ότι οι κατευθύνσεις αυτές είναι πολύ γενικές, κάτι σαν design patterns του συνδικαλισμού. Σε επόμενο post θ’ ασχοληθούμε με συγκεκριμμένες και χρήσιμες παρελκυστικές τεχνικές (κάτι σαν framework αποφυγής διαλόγου επί της ουσίας).

[Εάν βέβαια υπάρχει ενδιαφέρον. Θα το δείξουν τα σχόλιά σας…]

Technorati Tags:
Posted: Παρασκευή, 29 Μαΐου 2009 12:49 μμ από το μέλος Παναγιώτης Παρίσης | 2 σχόλια
Δημοσίευση στην κατηγορία:
Χαμένοι στη μετάφραση #2

Σε παλαιότερο πόνημά μου διαπίστωσα ότι η συνεννόηση μεταξύ πωλητών και προγραμματιστών είναι μεν θεωρητικά δυνατή, αλλά πρακτικά εντελώς απίθανη. Και δεν είναι τώρα η ώρα να λύσουμε το πρόβλημα της διαφοράς θεωρίας και πράξης. Αρκεί απλώς ν’ αναφέρουμε ότι καλυπτόμεθα πλήρως από τα σοφά λόγια του Jan L. A. van de Snepscheut :

Στη θεωρία, δεν υπάρχει διαφορά θεωρίας και πράξης.
Στην πράξη όμως, υπάρχει…

Στο δεύτερο μέρος εξετάζω το θέμα της δυνατότητας συννενόησης μεταξύ managers και προγραμματιστών. Εδώ, δυστυχώς, τα πράγματα είναι πολύ δύσκολα, γιατί, ενώ ο συναγελασμός προγραμματιστών με πωλητές μπορεί (θεωρητικά) ν’ αποφευχθεί, είναι πρακτικά αδύνατο οποιοσδήποτε εργαζόμενος να μην υπάγεται σε κάποιον manager. Και δεν είναι τώρα η ώρα να λύσουμε το πρόβλημα εάν ο CEO είναι εργαζόμενος, κι αν ναι, τότε σε ποιον manager υπάγεται. Αρκεί απλώς ν’ αναφέρουμε ότι καλυπτόμεθα πλήρως από την ανάλυση του αυτοαναφορικού παράδοξου του Bertrand Russell.

Ας ξεκινήσουμε λοιπόν από την εμπειρική παρατήρηση ότι οι ανώτερες διοικητικές θέσεις μιας εταιρείας συνήθως καταλαμβάνονται από το προσωπικό της εμπορικής διεύθυνσης (πωλήσεις & marketing) και, σπανιότερα, από το προσωπικό της οικονομικής διεύθυνσης. Αυτό σημαίνει ότι τα ανώτερα κλιμάκια της ιεραρχίας τείνουν να ομιλούν (σχεδόν κατ’ αποκλειστικότητα) την “πωλητική”, η οποία, όπως έχουμε ήδη δείξει, δεν είναι νοηματικά συμβατή με την “προγραμματιστική”. Τα πράγματα περιπλέκονται ακόμη περισσότερο, γιατί οι managers, για να μπορέσουν να επιβιώσουν μέσα στο εχθρικό εταιρικό περιβάλλον, κατάφεραν ν’ αναπτύξουν τις γλωσσικές τους ικανότητές τόσο, ώστε να “πείθουν” πολύ ευρύτερο κοινό απ’ ό,τι οι απλοί πωλητές, δηλαδή όχι μόνο τους πελάτες (και μάλιστα τους μεγάλους), αλλά και τους μετόχους, και τα μέσα ενημέρωσης, και τους εργαζόμενους, ακόμα και τους ίδιους τους πωλητές!

Αυτή η εξελικτική πίεση έκανε τη γλώσσα των managers δυσκολότερη για τους κοινούς θνητούς και διπλά ασύμβατη (τόσο με την “πωλητική”, όσο και με την “προγραμματιστική”). Κι εμένα που σας τα λεω όλ’ αυτά, μου πήρε πολλά χρόνια, όχι για να τη μιλήσω, αλλά απλώς για να μπορέσω να βγάλω νόημα από τις πιο απλές συντακτικές της δομές.

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

Μικρός οδηγός φράσεων της “Μανατζερικής”

  • Εγώ βλέπω τη "μεγάλη εικόνα"
    • = Προτιμώ ν' αφήνω άλλους να κάνουν την πραγματική δουλειά
  • Πιστεύω ότι όλα τα προβλήματα λύνονται καλύτερα "πρόσωπο με πρόσωπο"
    • = Δεν θέλω να υπάρχουν γραπτά που ν' αποδεικνύουν ότι λέω ψέματα
  • Δεν υπάρχει "δεν μπορώ". Υπάρχει μόνο "δεν θέλω"
    • = Εάν ήσουν διατεθημένος να παραβλέψεις τ' αναρίθμητα προβλήματα που σου προκαλώ, τότε θα μπορούσες να ικανοποιήσεις το βίτσιο μου
  • Προτιμώ να βλέπω το ποτήρι μισογεμάτο κι όχι μισοάδειο
    • = Προτιμώ να μην είμαι εγώ ο αγγελιοφόρος κακών ειδήσεων στ’ ανώτερα κλιμάκια
  • Σου έχω απεριόριστη εμπιστοσύνη!
    • = Βρες έναν τρόπο να τα καταφέρεις μόνος σου, αλλιώς θα σου ρίξω το φταίξιμο
  • Δεν φοβάμαι, γιατί έχω τη συνείδησή μου καθαρή
    • = Έχω βρει ήδη σε ποιον θα φορτώσω την ευθύνη
  • Είμαστε καταπληκτική ομάδα!
    • = Όλοι μαζί είσαστε πιο εύπιστοι απ' ό,τι ο καθένας μόνος του!
  • Είσαι αναντικατάστατος!
    • = Εάν δεις από μένα προαγωγή, να μου περάσεις χαλινάρι...
  • Δεν ήθελα να σου το πω αυτό, αλλά, δυστυχώς, είμαι υποχρεωμένος...
    • = Πολύ καιρό περίμενα αυτήν την ευκαιρία!
  • Το πρωινό πουλί τρώει το σκουλίκι
    • = ...αλλά το δεύτερο ποντίκι τρώει το τυρί!
  • Ήθελα να μου πεις ελεύθερα τη γνώμη σου για το θέμα
    • = Μάντεψε τι σκέφτομαι
  • Πρέπει να κάνουμε περισσότερα με λιγότερα
    • = Πρέπει να δουλεύεις περισσότερο και να ζητάς λιγότερα λεφτά, αλλιώς δεν πρόκειται να πάρω bonus
Technorati Tags: ,
Posted: Τρίτη, 26 Μαΐου 2009 1:10 μμ από το μέλος Παναγιώτης Παρίσης | 2 σχόλια
Δημοσίευση στην κατηγορία: ,
Χαμένοι στη μετάφραση

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

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

Ιδού ένας φανταστικός διάλογος μεταξύ του πωλητή Α και του προγραμματιστή Β:

Α: Πόσο καιρό θα σου έπαιρνε να ετοιμάσεις μια εφαρμογή ΧΨΖ;
Β: Όταν λες ΧΨΖ, τι ακριβώς εννοείς;
Α: Τι θα πει "τι εννοώ";
Β: Θα πει ότι πρέπει να γίνεις πιο συγκεκριμμένος, γιατί δεν καταλαβαίνω τι ακριβώς θέλεις.
Α: Σου λέω ό,τι μου λένε οι πελάτες...
Β: Τότε πες στους πελάτες ότι το ΧΨΖ είναι τίτλος κι όχι προδιαγραφή, κι ότι πρέπει να συζητήσουμε αρκετές λεπτομέρειες πριν δεσμευτούμε για το χρόνο ανάπτυξης.
Α: Δηλαδή θα πάρει περισσότερο από 2 μήνες;
Β: Μπορεί να πάρει από 4 μέχρι 14 μήνες, ανάλογα με το τι εννοεί ο καθένας όταν λέει ΧΨΖ.
Α: 4 μήνες! Είσαι τρελός; Αφού σε 2 μήνες είναι η έκθεση.
Β: Είπα 4 έως 14 μήνες και η έκθεση δεν έχει καμμία απολύτως σχέση με το χρόνο ανάπτυξης.
Α: Κακώς μιλάω μαζί σου... Θα πρέπει να φέρω το θέμα στον γενικό διευθυντή.

Ας εξετάσουμε τώρα τον ίδιο διάλογο, αλλά με τους σωστούς υποτίτλους:

Α: Πόσο καιρό θα σου έπαιρνε να ετοιμάσεις μια εφαρμογή ΧΨΖ;
[Μετάφραση: Ξέρεις, δυο-τρεις όμορφες οθόνες και καμμιά εκτύπωση για να 'χω κάτι να δείχνω]
Β: Όταν λες ΧΨΖ, τι ακριβώς εννοείς;
[Μετάφραση: Απλή client-server ή n-tier, με fat clients, thin clients ή smart clients που θα παίζουν και offline, θα χτίσουμε δικά μας web services ή θα χρησιμοποιήσουμε κάποιο έτοιμο middleware, ...]
Α: Τι θα πει "τι εννοώ";
[Μετάφραση: μα πόσο δύσκολο είναι να φτιάξεις δυο οθόνες και μια εκτύπωση;]
Β: Θα πει ότι πρέπει να γίνεις πιο συγκεκριμμένος, γιατί δεν καταλαβαίνω τι ακριβώς θέλεις.

[Μετάφραση: Απλή client-server ή n-tier, με fat clients, thin clients ή smart clients που θα παίζουν και offline, θα χτίσουμε δικά μας web services ή θα χρησιμοποιήσουμε κάποιο έτοιμο middleware, ...]
Α: Σου λέω ό,τι μου λένε οι πελάτες...
[Μετάφραση: Κάτι, τέλος πάντων, να δούνε οι άνθρωποι, μπας και στραβωθούνε και βάλουν καμμιά παραγγελία]
Β: Τότε πες στους πελάτες ότι το ΧΨΖ είναι τίτλος κι όχι προδιαγραφή, κι ότι πρέπει να συζητήσουμε αρκετές λεπτομέρειες πριν δεσμευτούμε για το χρόνο ανάπτυξης.
[Μετάφραση: Απλή client-server ή n-tier, με fat clients, thin clients ή smart clients που θα παίζουν και offline, θα χτίσουμε δικά μας web services ή θα χρησιμοποιήσουμε κάποιο έτοιμο middleware, ...]
Α: Δηλαδή θα πάρει περισσότερο από 2 μήνες;
[Μετάφραση: Σε 2 μήνες είναι η μεγαλύτερη κλαδική έκθεση. Εάν δεν είμαστε έτοιμοι μέχρι τότε, ώστε να προωθήσουμε δυναμικά το προϊόν, δεν υπάρχει περίπτωση ούτε να πλησιάσουμε τους στόχους που μας έχουνε βάλει]
Β: Μπορεί να πάρει από 4 μέχρι 14 μήνες, ανάλογα με το τι εννοεί ο καθένας όταν λέει ΧΨΖ.
[Μετάφραση: Απλή client-server με έτοιμο middleware και thin clients = 2 μήνες, n-tier με δικά μας web services, παραμετρικά workflows, persisted messaging και smart clients που θα παίζουν online και offline και θα συγχρονίζονται στο σύννεφο = 7 μήνες, πολλαπλασίασε επί 2 γιατί οι πελάτες θ' αλλάξουν 2-3 φορές άποψη => 4 μέχρι 14 μήνες]
Α: 4 μήνες! Είσαι τρελός; Αφού σε 2 μήνες είναι η έκθεση!
[Μετάφραση: Σε 2 μήνες είναι η μεγαλύτερη κλαδική έκθεση. Εάν δεν είμαστε έτοιμοι μέχρι τότε, ώστε να προωθήσουμε δυναμικά το προϊόν, δεν υπάρχει περίπτωση ούτε να πλησιάσουμε τους στόχους που μας έχουνε βάλει]
Β: Είπα 4 έως 14 μήνες και η έκθεση δεν έχει καμμία απολύτως σχέση με το χρόνο ανάπτυξης.
[Μετάφραση: Ο τύπος είναι τελείως @#$%^. Δηλαδή πώς την έχει δει; Όταν η πραγματικότητα δεν συμβαδίζει με τις επιθυμίες του, τόσο το χειρότερο για την πραγματικότητα;]
Α: Μου φαίνεται ότι κακώς μιλάω μαζί σου. Θα πρέπει να φέρω το θέμα στη γενική διεύθυνση.
[Μετάφραση: Ο τύπος είναι τελείως @#$%^. Δηλαδή πώς την έχει δει; Όταν του έρθει η εντολή από τον γενικό διευθυντή, θα τολμήσει να μας πει το ίδιο τραγούδι;]

Τι συμπέρασμα βγαίνει από το υποτιτλισμένο κείμενο; Μα είναι προφανές: ο Α και ο Β μιλούν όχι μία, αλλά δύο γλώσσες, οι οποίες μορφολογικά είναι απολύτως όμοιες, αλλά σημασιολογικά είναι απολύτως διαφορετικές.

Δεν το πιάσατε ακόμα; Φανταστείτε τότε ότι υπάρχουν δύο γλώσσες προγραμματισμού, ας τις πούμε Χ-- και Χ++, οι οποίες έχουν ακριβώς τα ίδια keywords, αλλά τα χρησιμοποιούν με διαφορετική σημασία. Όταν ο X++ προγραμματιστής γράφει repeat <statement> until <condition>, εννοεί αυτό που ο X-- προγραμματιστής δηλώνει με το while <condition> do <statement>. Το περίεργο είναι ότι το while <condition> do <statement> είναι απολύτως νόμιμη σύνταξη και στη X++, αλλά σημαίνει ό,τι και το if <condition> then <statement> στη X--. Και το if <condition> then <statement> είναι απολύτως νόμιμη έκφραση στη X++, αλλά σημαίνει ό,τι και το repeat <statement> until <condition> στη Χ--. Μπορεί η κατάσταση να φαίνεται μπερδεμένη, αλλά όσο οι Χ++ προγραμματιστές και οι Χ-- προγραμματιστές δεν ανταλλάσσουν code snippets και δεν παρακολουθούν τα ίδια developer events, όλα βαίνουν καλώς.

Ας υποθέσουμε όμως ότι κάποιος Χ++ προγραμματιστής που είχε μείνει άυπνος δυο 24ωρα προσπαθώντας να προλάβει κάποιο deadline, μπερδεύεται και μεταφράζει το πρόγραμμά του από τον Χ-- compiler. Συνταχτικά, ο Χ-- compiler τα βλέπει όλα θαυμάσια, αλλά φτιάχνει εκτελέσιμο κώδικα που κάνει τελείως διαφορετικά πράγματα απ' ό,τι θα περίμενε ο προγραμματιστής. Φανταστείτε την έκπληξή του τελευταίου όταν τρέξει το πρόγραμμά του στον debugger. Ο κακομοίρης δεν θα πιστεύει στα μάτια του: θα βλέπει ένα απόλυτα σωστό πρόγραμμα που κάνει μια σειρά από τελείως λάθος πράξεις, σαν να έχει αυτονομηθεί ο υπολογιστής και κάνει του κεφαλιού του.

Ας εξετάσουμε φιλοσοφικά "τις πταίει"…

  • όχι ο προγραμματιστής, γιατί έγραψε σωστό Χ++ κώδικα
  • όχι ο Χ-- compiler, γιατί μετέφρασε σωστά το source code που του δώσανε
  • όχι ο debugger, γιατί δείχνει τις σωστές γραμμές κώδικα που εκτελούνται.

Τότε γιατί η κατάσταση συνολικά χαρακτηρίζεται "μύλος"; Γιατί απλώς ο Χ++ κώδικας δεν είναι φτιαγμένος για να περάσει από Χ-- compiler.

Επανεξετάστε τώρα το βασικό μας θέμα υπό το νέο πρίσμα.

[* Aha moment *] 

Άρα το λάθος ήταν ότι ο προγραμματιστής κι ο πωλητής άνοιξαν συζήτηση...

Technorati Tags: ,
Posted: Παρασκευή, 22 Μαΐου 2009 9:19 πμ από το μέλος Παναγιώτης Παρίσης | 3 σχόλια
Δημοσίευση στην κατηγορία: ,
Inversion of Control & Microsoft Unity 101

Στις 14 Μαΐου διοργανώθηκε το 28ο dotNETZone.gr Community Event με θέμα «Inversion of Control & Microsoft Unity 101».

Η παρουσίαση καταγράφηκε και μπορεί να γίνει download από εδώ, αν και ο ήχος έχει - ομολογουμένως - κάποια προβλήματα. Τα slides της παρουσίασης και το source code των δύο demos (C#) μπορούν να γίνουν download από την επιλογή Αρχειοθήκες (Κατάλογος: Παρουσιάσεις).

Θα ήθελα, με την ευκαιρία, να ευχαριστήσω όλους τους παρισταμένους για τα καλά τους λόγια κι επίσης ν’ απαντήσω σε μια ερώτηση που “κόπηκε” λόγω χρόνου από το event. Ρώτησε, λοιπόν, κάποιος γιατί λέγεται έτσι η αρχή της αντιστροφής των εξαρτήσεων (dependency inversion principle). Με κίνδυνο να φανερώσω την ηλικία μου, απαντώ:

Η αρχή της αντιστροφής των εξαρτήσεων λέει ουσιαστικά δύο πράγματα:

  1. Τα high-level modules δεν πρέπει να εξαρτώνται από τα low-level modules, αλλά και τα δύο πρέπει να στηρίζονται σε αφαιρέσεις.
  2. Οι αφαιρέσεις δεν πρέπει να εξαρτώνται από λεπτομέρειες, αλλά το ανάποδο.

Πριν όμως εμφανιστεί ο αντικειμενοστραφής προγραμματισμός, το κυρίαρχο παράδειγμα (δηλαδή το κυρίαρχο θεωρητικό πλαίσιο) ήταν εκείνο του δομημένου προγραμματισμού, το οποίο διδάχτηκα κι εγώ πριν ξεκινήσω την καριέρα μου. Σ’ αυτό ίσχυαν ακριβώς τ’ αντίθετα, δηλαδή:

  • Τα high-level modules ήταν απόλυτα φυσιολογικό να εξαρτώνται από τα low-level modules. Μάλιστα απαραίτητο τμήμα του documentation μιας εφαρμογής ήταν το VTOC (δηλαδή το Visual Table Of Contents) που έδειχνε με κουτάκια και γραμμούλες τα dependencies των modules.
  • Οι αφαιρέσεις εξαρτώνταν απολύτως από τις λεπτομέρειες, δηλαδή αν θέλαμε να κρύψουμε τις λεπτομέρειες μιας εργασίας, έπρεπε να φτιάξουμε ένα higher-level module που θ' αποφάσιζε σε ποια “λεπτομέρεια” θα ανέθετε κάθε φορά τη συγκεκριμμένη δουλειά, οπότε ήταν πλήρως συζευγμένο με όλες αυτές τις “λεπτομέρειες”.

Όντως, λοιπόν, η νέα άποψη αντέστρεφε τη συνηθισμένη μέχρι τότε “φορά” των εξαρτήσεων, οπότε ονομάστηκε αναλόγως.

Technorati Tags: ,,
Posted: Τετάρτη, 20 Μαΐου 2009 7:21 μμ από το μέλος Παναγιώτης Παρίσης | 1 σχόλια
Δημοσίευση στην κατηγορία: , ,
Οι Κασσάνδρες της Πληροφορικής

Σίγουρα έχετε ακούσει για την Κασσάνδρα…

Ήταν κόρη του Πριάμου και της Εκάβης (της γνωστής βασιλικής οικογενείας της Τροίας, βεβαίως, βεβαίως). Ήταν επίσης νέα κι όμορφη. Την ερωτεύτηκε, λοιπόν, ο θεός Απόλλωνας και της έκανε ένα business proposal: εκείνος θα της έδινε το χάρισμα της μαντικής, εάν εκείνη του παραχωρούσε τα κάλη της. Κι εκείνη συμφώνησε.

Κατόπιν ο Απόλλωνας τήρησε το δικό του μέρος της συμφωνίας και της έδωσε τη δυνατότητα να βλέπει ολοκάθαρα τα μελλούμενα. Εκείνη πάλι, όχι. Την τελευταία στιγμή έκανε πίσω, εκνεύρισε σφόδρα το θεό, οπότε την καταράστηκε να βλέπει και να λέει στους ανθρώπους την αλήθεια, αλλά κανείς να μην την πιστεύει.

Και πράγματι, το χάρισμα της Κασσάνδρας δεν της βγήκε σε καλό: προέβλεψε την άλωση της Τροίας και το δικό της το θάνατο, προσπάθησε να προειδοποιήσει τους συμπατριώτες της για το Δούρειο Ίππο, γύριζε από πυργίσκο σε πυργίσκο στα τείχη φωνάζοντας, παρακαλώντας, απειλώντας, αλλά μάταια… Όλοι συνέχισαν να κάνουν τα ίδια λάθη που έκαναν και πριν την ακούσουν, με τα γνωστά τραγικά για την Τροία αποτελέσματα.

Πώς μου ήρθε τώρα αυτό;

Αρκετές φορές τα τελευταία χρόνια αισθάνθηκα σαν την Κασσάνδρα. Το pattern πάει κάπως έτσι:

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

2. Φτιάχνω τρεις προϋπολογισμούς (κόστους & χρόνου) για την ανάπτυξη του software, έναν αισιόδοξο, ένα μέτριο κι έναν απαισιόδοξο (worst case scenario). Αναφέρω από κάτω (με 14άρια γράμματα) ότι η προηγούμενη εμπειρία μου λέει ότι το αισιόδοξο σενάριο είναι εντελώς απίθανο να πραγματοποιηθεί [για να λέμε την αλήθεια, συμπεριλαμβάνω και αισιόδοξο σενάριο μόνο και μόνο για να μην πει κανένας καλοθελητής ότι προσεγγίζω το project εξ αρχής αρνητικά]. Επίσης προειδοποιώ ότι το μέτριο σενάριο δεν είναι κατ' ανάγκην και το πιο πιθανό, καθώς υπάρχουν ήδη ενδείξεις ότι πέφτουμε από το μέτριο στο απαισιόδοξο σενάριο, αλλά κανείς δε με πιστεύει

3. Μαθαίνω ότι μπήκαν οι υπογραφές κι ότι το project κανονίστηκε να τελειώσει σε χρόνο μικρότερο κι απ' αυτόν που προέβλεπε το αισιόδοξο σενάριο, ενώ ακόμα τα παραδοτέα δεν έχουν καν οριστικοποιηθεί. Αρχίζει ο αγώνας δρόμου να τελειώσει η ανάλυση παράλληλα με την ανάπτυξη, και μάλιστα χωρίς τη χρήση agile μεθοδολογιών! Να 'μαι λοιπόν τώρα να προσπαθώ να πείσω τον τελικό πελάτη ότι, για το καλό του, πρέπει κάποιος υψηλόβαθμος να λειτουργήσει ως sponsor του project. Ότι όσο πιο πολύπλοκη ζητήσει να είναι η εφαρμογή, τόσο λιγότερη χρηστική αξία θα έχει. Ότι πρέπει να ενθαρρύνει να μιλήσουν τα στελέχη του που βγάζουν στην πραγματικότητα τη δουλειά, κι όχι οι προϊστάμενοί τους, οι οποίοι απλώς διακινούν εκτυπωμένες αναφορές. Ότι πρέπει να ελαφρώσει το πρόγραμμα των ανθρώπων που όρισε ως business experts, αλλιώς δεν θα συνεργαστούν με την ομάδα ανάπτυξης. Ότι ουσιαστικά πετάει λεφτά απ' το παράθυρο, αν δεν επενδύσει στο project, αλλά κανείς δε με πιστεύει

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

5. Στο τέλος, όλα τα project με τον ένα ή τον άλλο τρόπο τελειώνουν. Μπορεί το κόστος να έχει ξεφύγει, ο χρόνος να έχει ξεχειλώσει, τα παραδοθέντα ελάχιστα να μοιάζουν με τα παραδοτέα, η άρτι γεννηθείσα εφαρμογή να πάσχει  ήδη από νεκρική ακαμψία (καθώς οι προγραμματιστές προτιμούν να βγάλουν ένα υγιές δόντι χωρίς αναισθησία, παρά να τη συντηρήσουν), αλλά όλοι συμφωνούν ότι έτσι είν' η ζωή και πώς να την αλλάξεις. Κι εγώ επιμένω ότι τα πράγματα θα μπορούσαν να έχουν γίνει τελείως διαφορετικά, αλλά, βέβαια, κανείς δε με πιστεύει

Technorati Tags: ,
Posted: Τετάρτη, 20 Μαΐου 2009 12:00 μμ από το μέλος Παναγιώτης Παρίσης | 3 σχόλια
Δημοσίευση στην κατηγορία: ,
Και ο Παναγιώτης είναι εντάξει…

Το σωστό είναι πρώτα να συστηθώ, όπως συστήνομαι πάντα.

Ονομάζομαι Παναγιώτης Παρίσης και είμαι επαγγελματίας προγραμματιστής από το 1987.

[Ακούγεται ο χορός από το background thread: “Και ο Παναγιώτης είναι εντάξει…”]

Αμέσως μετά τις συστάσεις εστιάζω στο πρόσωπο του συνομιλητή μου. Εάν είναι ήρεμος και χαμηλών τόνων, με κοιτάζει με συμπόνια. Εάν είναι επιθετικός και φιλόδοξος, με κοιτάει με αποτροπιασμό. Στην πρώτη περίπτωση του επισημαίνω: “μη στεναχωριέστε, συμβαίνει και στις καλύτερες οικογένειες”. Στη δεύτερη, τον καθησυχάζω: “μην ανησυχείτε, δεν είναι κολλητικό”…

Και είναι αλήθεια: ποτέ κανείς δεν κόλλησε C# (ή VB) από άλλον άνθρωπο - ή άλλο χοίρο ;-). Για να είναι κανείς προγραμματιστής πρέπει να και να θέλει, και να μπορεί, και να ξέρει πώς. Ποιες είναι οι πιθανότητες να πετύχει τρία στα τρία χωρίς ενσυνείδητη και συστηματική προσπάθεια;

Θα μου πείτε, “γιατί το κάνεις αυτό στον εαυτό σου, παλικάρι μου;”

Γιατί δεν μπορώ να το καταπιώ και (ως εκ τούτου) δεν μπορώ να το χωνέψω. Ζούμε σε μια κοινωνία που έχει στηρίξει κάθε business process σχεδόν ολοκληρωτικά στο software, σε σημείο που απώλεια δικτύωσης σημαίνει παύση εργασιών σε οποιουδήποτε μεγέθους επιχείρηση, και ταυτοχρόνως θεωρεί ότι οι άνθρωποι που παράγουν αυτό το software είναι αποτυχημένοι, εάν συνεχίσουν να γράφουν μετά την πρώτη πενταετία της σταδιοδρομίας τους!

Oι περισσότεροι managers είναι πεπεισμένοι ότι ένας έμπειρος αρχιτέκτονας, ένας έμπειρος μηχανικός, ένας έμπειρος γιατρός, ή – αν προτιμάτε – ένας έμπειρος επιπλοποιός είναι καλύτερος από κάποιον που μόλις ξεκίνησε την καριέρα του, αλλά για κάποιο λόγο απ’ αυτόν τον κανόνα εξαιρούνται οι προγραμματιστές!

Τι θα μπορούσε να τους απαντήσει κανείς; Πολλά και σοβαρά:

  • Ότι σου παίρνει συνήθως δύο με τρία χρόνια μέχρι να σταματήσεις να είσαι επικίνδυνος σε μια τεχνολογία. Και καμμία τεχνολογία δεν παραμένει σταθερή χωρίς μεγάλες (για να μην πω πολύ-πολύ μεγάλες) αλλαγές για περισσότερο από τρία χρόνια.
  • Κι είναι και το θέμα της βαθύτερης γνώσης των εργαλείων που χρησιμοποιείς. Δε φτάνει να γνωρίζεις τι μπορούν να κάνουν καλά. Πιο χρήσιμο είναι να γνωρίζεις τι ΔΕΝ μπορούν να κάνουν καλά, ποιοι είναι οι περιορισμοί που σου επιβάλλουν και πώς μπορείς να τους παρακάμψεις.
  • Κι είναι και το θέμα της αρχιτεκτονικής σχεδίασης, που πρέπει να ωριμάσει στο κεφάλι σου, ώστε να υποστηρίζει τις συνεχείς αλλαγές στις προδιαγραφές, χωρίς να “σπάει”. Γιατί μην έχεις αυταπάτες: θα υπάρξουν συνεχείς αλλαγές!
  • Κι είναι και το θέμα της διασυνδεσιμότητας με άλλες εφαρμογές ή της μεταφοράς των δεδομένων από άλλες πλατφόρμες που συνήθως ανακύπτει εκ των υστέρων, αλλά, όταν έχεις δει το έργο πολλές φορές, είναι σαν να το έχεις ήδη προβλέψει.
  • Κι είναι και το θέμα της γενικότερης γνώσης της αγοράς. Οι γλώσσες προγραμματισμού είναι το μέσο. Η ουσία είναι η αυτοματοποίηση των εταιρικών διεργασιών. Για να το πετύχεις, χρειάζεται να ξέρεις τι δουλεύει στην πράξη και τι όχι, ποιους να ρωτήσεις για κάθε θέμα και - κυρίως - πόσ’ απ’ αυτά που θα σου πούνε να πιστέψεις. Μετά πρέπει να μπορείς να απλοποιείς και να συστηματοποιείς τις διεργασίες που θα προκύψουν. Μόνο στο τέλος θα τις μεταγράψεις σε μια γλώσσα προγραμματισμού.
  • Κι είναι και το θέμα των non-functional requirements. Σε κανένα user story δεν υπάρχει γραμμένο πως η εφαρμογή πρέπει να είναι ασφαλής σαν φρούριο, επιδεκτική εκρηκτικής κλιμάκωσης και (φαινομενικά) γρήγορη στην ανταπόκριση στο user input, ούτε τι συμεπάγεται αυτό για τον τρόπο ανάπτυξής της.
  • Κι είναι και το θέμα του υπολογισμού του ρίσκου. Ποια τμήματα της εφαρμογής και του περιβάλλοντός της είναι πιθανό να γίνουν αντικείμενο επίθεσης; Ποια δεδομένα της είναι πολύτιμα για τους hackers; Τελικά πόσο κίνδυνο ανέλαβε ο πελάτης μας και σε ποιους ακριβώς τομείς;
  • Κι είναι και το θέμα του υπολογισμού του απαιτούμενου χρόνου ανάπτυξης και του διαμερισμού των εργασιών στην ομάδα. Εάν αυτό δεν γίνει από έναν έμπειρο προγραμματιστή με το νυστέρι, θα το κάνει ο project manager με τη χατζάρα…
  • Κι είναι και το θέμα της κατάρτισης του προϋπολογισμού των projects. Ποιος είναι αρμοδιότερος να πει πόσοι πρέπει να δουλέψουν, με τι ειδικότητες, με τι εργαλεία, με ποια εκπαίδευση κ.λ.π.;
  • Κι είναι και το θέμα της ευρύτερης προοπτικής στην αξιολόγηση κάθε νέας πλατφόρμας και τεχνολογίας που εμφανίζεται στο προσκήνιο και του καθορισμού της επένδυσης της ομάδας σ’ αυτήν. Πόσα χρήματα έχασε όποιος δεν επένδυσε εγκαίρως στο .NET framework; Πόσα χρήματα έχασε όποιος βιάστηκε να επενδύσει στο OS/2;
  • Κι είναι και το θέμα της εκπαίδευσης και της έμπνευσης των νέων της ομάδας, αυτό που οι Αγγλοσάξωνες ονομάζουν mentoring [άλλη μια έκφραση που πέρασε από τα ομηρικά κατ’ ευθείαν στα γαλλικά και στ’ αγγλικά, χωρίς καμμία μεσολάβηση των νεοελλήνων].

Κι είναι και πολλά άλλα θέματα που θα μπορούσαμε να τα συνοψίσουμε σε μία λέξη: “εμπειρία”.

Τίθεται λοιπόν το ερώτημα: εάν όλες οι παραπάνω δεξιότητες είναι απαραίτητες για την επιτυχή έκβαση ενός software project, γιατί οι ίδιες οι επιχειρήσεις σπρώχνουν τους καλύτερους senior developers είτε στο management, είτε στο ελεύθερο επάγγελμα; Γιατί οι επιχειρήσεις δεν επενδύουν στους ανθρώπους που υποστηρίζουν και αυτοματοποιούν την ίδια τους την ύπαρξη;

Μην περιμένετε να σας απαντήσω εγώ στην ερώτηση αυτή. Αλλά, δυστυχώς, ούτε και κανένας άλλος.

Το μόνο που μπορείτε να κάνετε είναι να πιαστείτε χέρι-χέρι σε κύκλο και να φωνάξετε:

Και ο Παναγιώτης είναι εντάξει…

Posted: Δευτέρα, 18 Μαΐου 2009 7:00 μμ από το μέλος Παναγιώτης Παρίσης | 3 σχόλια
Δημοσίευση στην κατηγορία: , ,