Outsourcing Coding

Η τάση να γίνεται outsourced ένα project, τουλάχιστον στο καθαρά προγραμματιστικό κομμάτι του, για παράδειγμα σε μία start-up, είναι αρκετά επίκαιρο τον τελευταίο καιρό.Το concept είναι απλό: έχω μία καλή ιδέα και λίγα χρήματα, βρίσκω έναν Ινδό developer που την υλοποιεί σε μικρό χρονικό διάστημα και, έτσι ξαφνικά, γίνομαι ιδρυτής μίας επιχείρησης…Ίσως ακούγεται ιδεατό, και μάλλον είναι, ωστόσο πέρα από κάποιες σχεδόν κλασσικές αναφορές στο ζήτημα, όπως για παράδειγμα το πολυσυζητημένο post του Guy Kawasaki, υπάρχει πλέον πληθώρα αντίστοιχων διαθέσιμων υπηρεσιών, ενώ η σχετική συζήτηση είναι πραγματικά θερμή.Τα ερωτήματα που ανακύπτουν επομένως είναι: Υπάρχουν αντίστοιχες εμπειρίες; Ποια τα συμπεράσματα; Οδηγίες ή βέλτιστες πρακτικές; Η συνέχεια στα σχόλια…

11 comments

  1. Γενικά όπου ακούς πολλά κεράσια κράτα και μικρό καλάθι.Έχω αντιληφθεί ότι πολλοί νομίζουν ότι το να κάνεις development είναι σαν να περπατάς στο δρόμο και ότι απλά κάποιοι περπατάνε φθηνότερα. Στο σωστό development σχεδιάζεις για το μεθαύριο και όχι για το σήμερα.

    Γενικά το Outsourcing θεωρώ ότι έχει εφαρμογή σε πολλές περιπτώσεις αλλά όχι σε όλες.

    Το μυστικό είναι αξιοπιστία, ποιότητα και λογικές τιμές. Όχι πολύ χαμηλό κόστος.

    Ότι θα γράψω αφορά στην πλειοψηφία του πιο σύνθετα έργα και όχι απλά scriptάκια. Επίσης δεν αφορά τους Ινδούς ή άλλους ως προγραμματιστές αλλά το outsourcing. Το outsourcing οργανωμένα και με σωστή λογική και με σωστούς συνεργάτες είναι ιδιαίτερα ωφέλιμο, αποδοτικό και βοηθάει στη μείωση του κόστους. Δεν αντικαθιστά όμως το New Business και συγκεκριμένα New Well Paid Business όπως και δεν αντικαθιστά την πραγματική και σε βάθος γνώση και consulting (έννοια που στην χώρα μας πολλοί έμαθαν τους πελάτες ότι είναι από τσάμπα έως αυτονόητη χωρίς χρέωση)

    Γενικά υπάρχουν κάποιοι επαγγελματίες όντως και σε Ινδία και σε Ρωσία, αλλά οι τιμές τους είναι ίδιες με τις δικές μας. Οπότε;;;….

    Κάποια στιγμή πρέπει να καταλάβουμε ότι δεν υπάρχει μόνο σήμερα αλλά και αύριο και μεθαύριο. Θεωρώ, παρόλο μικρής κλίμακας εργοδότης, ότι τα sites τύπου rentacoder είναι μια σύγχρονη μορφή σκλαβιάς. Για σκέψου το. Εκτός αυτού κινείς την αγορά έτσι ώστε να ρίξει το per hour rate. Αρχικά κάνεις τη δουλειά σου με low cost, αλλά σε βάθος χρόνου χαλάς την αγορά σου και τον πελάτη σου ο οποίος ενημερώνεται σιγά-σιγά για όλα αυτά και θα σου την πει για το κόστος κάποια στιγμή. Κάποια στιγμή θα τρέχεις για να βγάζεις όσα έβγαζες και τα προηγούμενα χρόνια και δεν θα προχωράς. Εάν δε είσαι εσύ ο ίδιος πελάτης και ο «πληρώνω» αρχικά κερδίζεις. Όμως σε βάθος χρόνου που ο xyz developer δεν θα παίζει στην αγορά γιατί απλά θα αυξηθεί το βιοτικό του επίπεδο εφόσον έχει κάποια χρήματα να κινείται και θα αρχίσει να καταναλώνει. Μόλις γίνει αυτό δεν θα του φτάνουν και θα αρχίσει να αυξάνει τις τιμές. Οπότε και εσύ αντί να έχεις high-medium start cost και low maintenance θα έχεις το αντίθετο. Δηλ., low start και high maintenance από όπου δεν θα μπορείς να βγάζεις και σχετικό κέρδος ΑΛΛΑ θα πρέπει να παρέχεις την υπηρεσία ΑΜΕΣΩΣ μόλις παρουσιαστεί το πρόβλημα. και ενδεχομένως να έχεις και εξάρτηση. Άσε που ο developer που ΘΑ σου κάνει το maintenance θα είναι κάποιος super ο οποίος θα σου είναι χίλια της εκατό απαραίτητος γιατί θα έχει μάθει όλες τις πατάτες που σου έχουν κάνει οι «Ινδοί» οποιουδήποτε τύπου. Και θα μπορεί και να τις διορθώσει.

    Είναι λάθος να νομίζουμε ότι μπορούμε π.χ. μόνοι μας να στήσουμε ένα μαγαζί (onemanshow) και δώστα όλα έξω. Όχι. Θες να έχεις μέσα τον έλεγχο και μάλιστα αυτοί που είναι μέσα πρέπει να είναι πολύ καλοί στο αντικείμενό τους και να κατέχουν τη γνώση και των άλλων για να κάνουν support όταν οι άλλοι δεν θα μπορούν να εμπλακούν με το έργο. Όσο πιο πολύ μεγαλώνεις τόσο πιο πολύ ανάγκη έχεις από stable inhouse συνεργάτες.

    Αυτό που μπορεί να γίνει είναι να έχεις ένα core από καλούς IT και να έχεις περιφερειακούς «Ινδούς» για αυτό που λέω «σάλτσα development». Έτσι έχεις τον έλεγχο πάντα. Ιδανικά οι ΙΤ σου είναι και συνέταιροι ή με stock options. Καταλαβαίνεις…

    Πάρα πολλοί δοκίμασαν την τύχη τους με τους Ινδούς και άλλους low budget (π.χ. Ρώσους που είναι και super προγραμματιστές, Τσέχους, κ.λ.π.)

    Το πρόβλημα, ιδίως με τους Ινδούς, είναι το low performance σε επίπεδο development.

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

    Σφήνα…. Ο outsourcer μέσα από όλα τα e-κανάλια που αναφέρεις πληρώνεται μετρητά με την πορεία του έργου. Εάν δεν στο παραδώσει όμως… π.χ. την κάνει στα μισά ή μετά την δεύτερη πληρωμή. Μπαίνεις στο Dispute με τον φορέα που στον έφερε (δλδ κάποιο κανάλι τύπου rentacoder), κ.λ.π. Καληνύχτα, δηλαδή.

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

    Χώρια που τα Αγγλικά τους είναι άθλια, τόσο σε γραπτό όσο και προφορικό λόγο, και φυσικά εσύ μπορεί να γράφεις Χ specs με κανονική σύνταξη σε κείμενο και εκείνοι να καταλαβαίνουν άλλα.

    Μιλάω για τους Low Budgets.

    Σε αυτό που είναι καλοί είναι για HelpDesk και πάλι όχι με πολλές απαιτήσεις διότι η γλώσσα γαρ… Αλλά εκεί παίζουν αρκετά τα σενάρια. Για αυτό και μεγάλες επιχειρήσεις όπως θα ξέρεις προσφέρουν 24χ7χ365 support. Στην ουσία κάνουν rotation στα time zones με προσωπικό ανά χώρα.

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

    Όσο για το rentacoder που αναφέρεις δεν θα το συνιστούσα με τίποτα. Γενικά όπου παίζουν πολλοί ινδοί το πράγμα είναι ταλαιπωρία και για να πάρεις/δώσεις δουλειά, κ.λ.π. Κατεβάζουν εξευτελιστικά τις τιμές με τα ανάλογα συνεπακόλουθα. Μια δοκιμή θα πείσει πολλούς. Αναφέρομαι φυσικά σε σύνθετα έργα και όχι σε απλές φόρμες/scripts ή απλά να σεταριστεί σωστά κάποιο module σε open source όπου ο χρόνος (το κόστος το δικό σου δλδ) που θα ασχοληθείς για να το περιγράψεις και να το εξηγήσεις συν το κόστος κατασκευής (όσο χαμηλό και αν είναι) στο άθροισμα είναι το ίδιο πράγμα. Μην σου πω και παραπάνω.

    Γενικά ο προμηθευτής σου πρέπει να είναι αξιόπιστος και να είναι τέτοιο το έργο που παραδίδει ώστε μετά να μπορεί να το συνεχίσει/αναπτύξει ένας άλλος. Αλλιώς σε επίπεδο development μπορείς να πάθεις μεγάλη ζημιά σε σχετικά σύντομο βάθος χρόνου και από Founder να γίνεις Βέγγος από το τρέξιμο που θα σου ρίξουν οι πελάτες σου.

    Και ο σωστός προμηθευτής/developer έχει εκπαιδευτεί έτσι. Δεν του το λες εσύ απλά ότι το θες καθαρό και commented και αυτός το κάνει. Κολοκύθια θα κάνει εάν δεν έχει μάθει να δουλεύει έτσι.

    Οι απαιτήσεις σε διεθνές επίπεδο αλλάζουν, αλλά αυτό που όλοι οι πελάτες ζητούν είναι να αναθέσουν μια δουλειά σε κάποιον και να την βγάλει εις πέρας σωστά (το οποίο «σωστά» σημαίνει ένα και μόνο πράγμα και δεν είναι σχετικό). Έτσι θέλουν να έχουν ένα άγχος λιγότερο και να ασχοληθούν με το να βγάλουν και άλλες δουλειές. Διότι τι να το κάνεις να κυνηγάς δουλειές αλλά να μην μπορείς να παράγεις; Ή να δημιουργήσεις μπροστά σου τέτοιο overhead από patches ώστε είτε να κλείσεις (στην καλύτερη) ή να σε ταράξουν στις μηνύσεις;

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

    Αλλιώς τι θα κάνεις εάν σε κρεμάσει στα μισά του έργου; Μήνυση;

    Άντε βρες τον!

  2. Είδα και το σχετικό link στο Slashdot που έχεις και βλέπω πως ότι γράφω το αναφέρουν όντως και άλλοι.

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

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

    Το χτίσιμο αυτού του πράγματος ΔΕΝ το κάνεις outsource. Αν δεν μπορείς να το χτίσεις μόνος σου και να το βελτιώνεις συνεχώς, τότε καλύτερα βρες κάτι άλλο να κάνεις.

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

  4. Συμφωνώ με τον Νίκο! Ο Joel Spolsky το είχε πει αυτό από το 2001 (http://www.joelonsoftware.com/articles/fog0000000007.html) : “If it’s a core business function — do it yourself, no matter what.” (σε ελεύθερη μετάφραση: “Αν κάτι είναι το core business σου, κάντο μόνος σου, με όποιο κόστος”)

  5. @Nikos. Συμφωνώ ότι όντως χρειάζεται να βγαίνει κανείς με ένα ρεαλιστικό ανταγωνιστικό πλεονέκτημα. Θα ήθελα να το επεκτείνω λίγο. Εξαρτάται και λίγο απο την επιχείρηση και το τι κάνει. Προσωπικά πουθενά δεν γνώρισα σε επίπεδο επιχειρήσεων υπηρεσιών κάποιο core advantage άλλο εκτός από τους ανθρώπους και το σχετικό τους know-how και εμπειρία και commitment. Αυτός δεν είναι άλλωστε και ένας από τους critical factors που ψάχνουν στα business plans οι VC. Ποια θα είναι η ομάδα;

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

    Όλα σε βάθος χρόνου μπορούν να αντιγραφούν. Το αν π.χ. (το αναφέρω μόνο ως παράδειγμα) το sync.gr έχει επιτυχία δεν οφείλεται μόνο στο γενικότερ web New Age. Οφείλεται σε όσους δούλεψαν στην ουσία με τον “αέρα” και τον “ηλεκτρισμό”. Δλδ σε όσους είχαν την ιδέα, σε αυτούς που σχεδίασαν τεχνικά και εικαστικά, που διέδοσαν κ.λ.π., στο commitment. Πάντα, το μυστικό είναι στους ανθρώπους.

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

    Το πρόβλημα που έχω εγώ αντιμετωπίσει να σας πω την αλήθεια είναι πως να έχεις συνεργάτες (εκτός) που να έχουν μεράκι. Δλδ όχι φέρε λεφτά πάρε δουλειά. Κάποιους π.χ που θα τους δώσεις ένα καλό brief και θα το πάρουν απο εκεί και θα το εξελίξουν και θα στο δώσουν πίσω καλύτερο. Αυτό π.χ. είναι ένα κρίσιμο πλεονέκτημα και ιδιαίτερα ανταγωνιστικό διότι όπως έχω ξαναπεί πανεπιστήμονες δεν υπάρχουν. Δλδ, όλοι λίγο πολύ διατείνονται οτι κατέχουν τα μυστικά του design και του development, αλλά εκείνοι που μπορούν και κάνουν την πρόσθεση του τι είναι σωστό ανά περίπτωση και τι όχι είναι λίγοι, αν όχι ελάχιστοι. Δλδ υπάρχει αυτό και εκείνο και το άλλο και τα βάζουμε όλα μαζί και κάνουμε κάτι καινούριο. Για εμένα αυτό είναι το core. Ελπίζω να μην έφυγα πολύ εκτός :-)

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

  6. Αναμφίβολα, το να δημιουργείς εξ’ολοκλήρου μία νέα start-up για παράδειγμα με outsourcing, είναι αναμενόμενα επικίνδυνο και -στην καλύτερη ίσως των περιπτώσεων- σε καθιστά περισσότερο μεσάζοντα παρά επιχειρηματία.
    Ωστόσο, πέρα από τα core competencies και το προαπαιτούμενο commitment όσων αναπτύσσουν αυτά, υπάρχουν βέλτιστες πρακτικές, με έμφαση στον δεύτερο όρο, για το (σε κάθε περίπτωση απευκταίο, κατά τον Χρήστο) outsourcing όλων των υπολοίπων;
    Υπάρχει κανείς που επιθυμεί να αναπτύξει το θέμα σε μία επόμενη συνάντηση;

  7. Εγώ θα πρότεινα κάτι άλλο.

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

    Με συμμετέχοντες από διαφορετικές καταβολές (αν είναι δυνατόν) ώστε να έχουμε ένα diversity στις απόψεις.

    Δεν είμαι σίγουρος ότι το συγκεκριμένο θέμα είναι το καλύτερο για να γίνει αυτός ο καναπές. Ίσως βρούμε άλλη πιο πρόσφορη θεματολογία…

  8. εξαιρετική ιδέα ο καναπές! 4-5 άτομα με ανοικτή και παράλληλη κουβέντα γύρω από κάποιο θέμα. Το συζητάμε αντί παρουσιάσεων για κάποια επόμενη συνάντηση..

Leave a Reply

Your email address will not be published. Required fields are marked *