ΤΕΧΝΟΛΟΓΙΑ

Εσύ ξέρεις με τι ασχολείται ένας web developer;

Μιλήσαμε με μία απόφοιτο του Athens Tech College για το τι κρύβεται πίσω από τον σχεδιασμό ενός site.

Το γραφείο της Χριστίνας είναι τοποθετημένο κάθετα, τρία μέτρα αριστερά από το δικό μου. Αν και συνυπάρχουμε στον ίδιο εργασιακό χώρο εδώ κι ένα χρόνο, δεν έχουμε ανταλλάξει πάνω από 2-3 ‘καλημέρα’ σε τυχαίες συναντήσεις στο ασανσέρ και στην κουζίνα. Αυτό οφείλεται από τη μία στις περιορισμένες κοινωνικές δεξιότητές μας (συγκεκριμένα), αλλά και του σύγχρονου ανθρώπου (γενικότερα) και στο γεγονός (πως νόμιζα) ότι δεν είχε τύχει να συνεργαστούμε άμεσα, αφού εγώ ανήκω στη συντακτική ομάδα του Oneman, ενώ εκείνη στο IT του ομίλου.

Το ‘δεν είχε τύχει να συνεργαστούμε άμεσα’ της προηγούμενης παραγράφου, εξηγείται από την (μέχρι πρότινος) παντελή άγνοια μου σχετικά με τις αρμοδιότητες του ΙΤ και συγκεκριμένα ενός developer, όπως η Χριστίνα, αφού μετά την πρόσφατη κουβέντα μας σχετικά με το αντικείμενο της δουλειάς της, συνειδητοποίησα πως συνεργαζόμαστε άμεσα -έστω χωρίς να το γνωρίζω- σχεδόν κάθε μέρα, εδώ και ένα χρόνο.

Όταν αποφάσισα να μιλήσω με τη Χριστίνα, η οποία αυτή την περίοδο κάνει το Master της στο Advanced Software Engineering στο Athens Tech College, σχετικά με το αντικείμενο της δουλειάς της, το οποίο υποψιαζόμουν πως είχε να κάνει με τον σχεδιασμό των sites του ομίλου, είχα μόνο μία απλή και αγνή απορία στο μυαλό μου: ”Χριστίνα, πιστεύεις πως όταν λες σε κάποιον ότι είσαι developer καταλαβαίνει με τι ακριβώς ασχολείσαι”;

> Όταν μιλάω με άτομα μεγαλύτερης ηλικίας τους λέω ότι ασχολούμαι με υπολογιστές. Στους νεότερους λέω ότι είμαι developer και αυτό που καταλαβαίνουν ότι κάνω περιορίζεται στο ότι ασχολούμαι με υπολογιστές.

> Το πρώτο πράγμα που κάνω κάθε πρωί στο γραφείο είναι να κοιτάξω τα μέιλ μου και το Slack για τυχόν προβλήματα που έχουν προκύψει. Μετά ανοίγω έναν issue tracker, ο οποίος περιλαμβάνει τα tasks της ημέρας. Εκεί βλέπω τι έχω να κάνω τόσο εγώ όσο και η υπόλοιπη ομάδα του ΙΤ, ενώ ενημερώνω πόσο έχω προχωρήσει ή όχι τη δουλειά μου. Επίσης ανοίγω ένα IDE, ένα text editor όπως είναι το Word, το οποίο περιλαμβάνει παραπάνω εργαλεία για developers, αλλά και ένα browser για να βλέπω τα αποτέλεσμα της δουλειάς μου. Γράφω δηλαδή μια γραμμή κώδικα και στη συνέχεια τσεκάρω πώς εμφανίζεται στο site αυτό που έχω γράψει.

> Τα πιο συχνά προβλήματα που δημιουργούνται είναι να πέσει το CMS (Content Management System, το πρόγραμμα στο οποίο ανεβάζουμε τα κέιμενά μας) ή να ‘σπάει’ κάποιο κείμενο. Για παράδειγμα, ένας δημοσιογράφος μπορεί να έχει βάλει ένα video του Youtube σ’ ένα κείμενο με λάθος τρόπο και να μην εμφανίζεται το περιεχόμενο της σελίδας κάτω από το video. Επίσης, μπορεί σε κάποιο site να εμφανίζεται προχθεσινό περιεχόμενο.

> Το χειρότερο που μπορεί να συμβεί είναι να προσπαθείς να μπεις στο Oneman και να εμφανίζεται μία λευκή σελίδα, η οποία γράφει ‘503’. Αυτό σημαίνει πως έχουν πέσει οι servers. Ή να δεχόμαστε επίθεση. Δηλαδή μπορεί ένα site μας να είναι φτιαγμένο για να δέχεται 5.000 χρήστες την ημέρα και για κάποιο λόγο να φαίνεται ότι μπαίνουν σε αυτό 500.000 χρήστες. Σε αυτή την περίπτωση το site θα λυγίσει.

> Οι βασικές αρμοδιότητες του IT είναι είτε να επιδιορθώνει τυχόν προβλήματα, είτε να δημιουργεί καινούργια πράγματα (widgets, bots, εφαρμογές). Η συντήρηση δεν είναι στα day-to-day tasks μας, αλλά κάνουμε όποτε χρειαστεί.

> Αυτή την περίοδο ασχολούμαστε κυρίως με το CMS και την αναβάθμισή του. Το προηγούμενο project που ασχολούμουν ήταν το bot του Sport24. Μπορούσες το καλοκαίρι να του στείλεις τι ομάδα είσαι μέσω του Facebook Messenger και εκείνο σου έστελνε αυτόματα τις μεταγραφές και τα τελευταία νέα της ομάδας σου.

> Τα μέλη του IT ασχολούμαστε με όλα τα sites του ομίλου, αλλά δεν έχουμε όλοι το ίδιο αντικείμενο εργασίας. Είμαστε χωρισμένοι σε Βack Εnd και Front End developers. Οι πρώτοι ασχολούνται με αλγόριθμους που δεν βλέπει ο χρήστης αλλά στηρίζουν το κάθε site, ενώ οι δεύτεροι ασχολούνται κυρίως με το πώς θα φτάσει η εικόνα στο χρήστη, πώς είναι στημένο το site και το user interaction.

> Το πιο δύσκολο κομμάτι της δουλειάς μας δεν είναι τα hard skills, ποια τεχνολογία δηλαδή θα χρησιμοποιήσουμε, αλλά τα soft skills, πώς θα συνεργαστούμε ως ομάδα. Είμαστε 9 άτομα στο IT με εντελώς διαφορετικό τρόπο σκέψης. Πρέπει να σεβόμαστε ο ένας τη δουλειά του άλλου, αλλά και να συγχρονιζόμαστε. Είναι σαν να γράφουμε μαζί ένα κείμενο. Πρέπει να έχουμε μια κοινή γλώσσα και στιλ γραφής, (ακόμα και στην ίδια γλώσσα προγραμματισμού μπορείς να γράψεις κάτι με διαφορετικό τρόπο) να γράφουμε για παράδειγμα στα ελληνικά, αλλά όχι να πειράζουμε ο ένας την διάλεκτο του άλλου (αρκεί να μην δημιουργούνται σοβαρά προβλήματα).

Web Development for dummies

 

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

Front Εnd developer: Αναπτύσσει το τμήμα της εφαρμογής το οποίο βλέπει κι αλληλεπιδρά ο χρήστης.

Back Εnd developer: Αναλαμβάνει το κομμάτι της εφαρμογής που αποθηκεύει τις πληροφορίες, διαχειρίζεται τον server και υλοποιεί τη λογική της εφαρμογής.

Fullstack developer: Front End + Back End developer.

Push, Pull: ‘Σπρώχνω’ τον κώδικα που έχω γράψει από τον υπολογιστή μου σε ένα αποθετήριο κώδικα, και ‘τραβάω’ των κώδικα των συναδέλφων από το αποθετήριο στον υπολογιστή μου.

IDE (Integrated Development Environment): Λογισμικό κατάλληλο για την ανάπτυξη προγραμμάτων στον υπολογιστή.

Design patterns: Αποδεδειγμένα καλές λύσεις σε προβλήματα που προκύπτουν συχνά, ώστε ο developer να μην ανακαλύπτει ξανά τον τροχό.

301, 401, 501… : Κάποιες φορές εμφανίζονται αντί της σελίδας στον browser. Ο κάθε αριθμός συμβολίζει και κάτι διαφορετικό και είναι ενδεικτικός του προβλήματος που υπάρχει.

Agile methodologies: Ένα σύνολο από κανόνες κι εργαλεία που προωθούν τη συνεργασία και επικοινωνία μεταξύ όλων των συμμετεχόντων στην ανάπτυξη του έργου (από τον πελάτη μέχρι τον tester), τις καλές πρακτικές που θα χρησιμοποιηθούν στο τεχνικό κομμάτι της εφαρμογής, και την ευελιξία και προσαρμοστικότητα των μελών σε πιθανές αλλαγές του αρχικού πλάνου.

API (Application Programming Interface): Απλός και γρήγορος τρόπος για να επικοινωνούν οι εφαρμογές μεταξύ τους.

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

ΥΓ: Αν θέλεις να γίνεις συνάδελφος της Χριστίνας, να ξέρεις πως οι εγγραφές στο Athens Tech College άνοιξαν και σε περιμένουν.