Κυριακή, 26 Νοεμβρίου 2017 20:01

Τι είναι το “agile scrum” και πώς η εφαρμογή του άλλαξε τα δεδομένα στον χώρο της Πληροφορικής

Γράφτηκε από την

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

Αυτή τη φορά όμως θα κάνετε κάτι τελείως διαφορετικό. Θα επισκεφτείτε το εργοστάσιο που παράγει τα αυτοκίνητα και όχι την αντιπροσωπεία. Εκεί θα μιλήσετε με τον υπεύθυνο για το τελικό προϊόν (product owner) και θα του μεταφέρετε τι χαρακτηριστικά (requirements) θα θέλατε να έχει το επόμενο αυτοκίνητό σας. 

Καλώς ήρθατε στον κόσμο του “agile scrum” (ατζάιλ σκραμ). Ο νέος τρόπος δουλειάς που έχει αλλάξει τα υπάρχοντα δεδομένα και που ακολουθείται πιστά σε Αμερική και Ευρώπη.

Ηρθε η ώρα για το εργοστάσιο να πιάσει δουλειά. Αρχικά ο υπεύθυνος για το τελικό προϊόν έχοντας κατανοήσει τις επιθυμίες σας θα δημιουργήσει μια λίστα (product backlog) με τις απαιτούμενες εργασίες (user stories) που πρέπει να λάβουν χώρα ταξινομώντας τες από τις περισσότερο έως τις λιγότερο σημαντικές. Στη συνέχεια συστήνεται η ομάδα των μηχανικών που θα ασχοληθεί με την κατασκευή του αυτοκινήτου. Η ομάδα απαρτίζεται από μηχανικούς διαφόρων ειδικοτήτων έτσι ώστε να καλύπτονται όλες οι κατασκευαστικές απαιτήσεις. Ο υπεύθυνος για το τελικό προϊόν έχοντας μια γενική εκτίμηση για τον απαιτούμενο χρόνο, θα τον διαιρέσει σε μικρά χρονικά διαστήματα (sprints) σταθερού μήκους. 

Με την έναρξη του πρώτου διαστήματος (sprint-0) o υπεύθυνος κάνει μια συνάντηση (sprint planning) με την ομάδα των μηχανικών και μαζί θα αποφασίζουν πόσες εργασίες (user stories) από τη λίστα (product backlog) μπορούν να υλοποιήσουν μέχρι το τέλος του πρώτου διαστήματος (sprint). Οι εργασίες αυτές μεταφέρονται στη λίστα του τρέχοντος διαστήματος (sprint backlog) και όλες μαζί αποτελούν τον στόχο (sprint goal) της ομάδας για αυτό το διάστημα. Η ομάδα αναλύει διεξοδικά την κάθε εργασία και στη συνέχεια την κατακερματίζει σε μικρότερες υποεργασίες (tasks) οι οποίες θα πρέπει να είναι απλές και σχετικά μικρές σε χρόνο υλοποίησης. 

Η πρώτη μέρα εργασίας για την ομάδα είναι γεγονός. Συνήθως με το ξεκίνημα της ημέρας ο αρχηγός της ομάδας (scrum master) συγκαλεί μια συνάντηση (daily stand up) για όλα τα μέλη της ομάδας όχι παραπάνω από δεκαπέντε λεπτά της ώρας. Στη συνάντηση αυτή το κάθε μέλος ανακοινώνει την υποεργασία (task) με την οποία ασχολείται τη δεδομένη χρονική στιγμή, καθώς και αν αντιμετωπίζει το οποιοδήποτε πρόβλημα. Σκοπός της καθημερινής αυτής συνάντησης είναι να εξασφαλιστεί η ομαλή εξέλιξη των εργασιών χωρίς καθυστερήσεις ή απρόσμενα προβλήματα.

Το τέλος του πρώτου διαστήματος (sprint) έχει ήδη έρθει και ο υπεύθυνος για το τελικό προϊόν (product owner) συγκαλεί μια συνάντηση (sprint review/demo), όπου η ομάδα καλείται να παρουσιάσει στον πελάτη την μέχρι τώρα πρόοδό της. Από την συνάντηση αυτή ο πελάτης έχει τη δυνατότητα να εκφράσει τις απόψεις του για τα όσα έχει υλοποιήσει η ομάδα και να ζητήσει κάποιες αλλαγές ή τροποποιήσεις αν αυτός κρίνει σκόπιμο. Τέλος ο αρχηγός (scrum master) συγκαλεί μια συνάντηση (sprint retrospective) αποκλειστικά μεταξύ των μελών της ομάδας. Στη συνάντηση αυτή το κάθε μέλος μπορεί να εκφράσει τις εντυπώσεις του σχετικά με πράγματα που δούλεψαν σωστά μέσα στην ομάδα, αλλά και να δώσει προτάσεις για όσα δεν πήγαν σωστά και έθεσαν σε κίνδυνο τον στόχο της ομάδας π.χ. έλλειψη τεχνογνωσίας σε κάποιο θέμα ή κακή επικοινωνία.

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

Χάριν του απλουστευμένου αυτού παραδείγματος το αυτοκίνητο αντικατοπτρίζει ένα οποιοδήποτε προϊόν που μπορεί να κατασκευάσει μια εταιρεία Πληροφορικής π.χ. ιστοσελίδα ή κάποια ηλεκτρονική υπηρεσία. 

Ποια είναι όμως η διαφορά σε σχέση με το πώς λειτουργούσαν πριν οι εταιρείες Πληροφορικής; Η διαφορά και άρα η επιτυχία του είναι ότι τώρα ο πελάτης παρακολουθεί από κοντά την εξέλιξη του προϊόντος και αυτό του δίνει την δυνατότητα για οποιεσδήποτε αλλαγές ή παρατηρήσεις στο τελικό προϊόν πριν αυτό να είναι πολύ αργά. Το προηγούμενο μοντέλο εργασίας γνωστό και ως καταρράκτης (waterfall) δεν ευνοούσε σε μεγάλο βαθμό την επικοινωνία μεταξύ ομάδας και πελάτη. Επίσης όριζε ότι τα χαρακτηριστικά του νέου προϊόντος θα έπρεπε να σχεδιαστούν όλα μαζί, μετά να υλοποιηθούν όλα μαζί και τέλος να ελεγχθούν όλα μαζί. Οποιεσδήποτε αλλαγές ή η ανακάλυψη ενός λάθους λίγο καιρό πριν από το τέλος μπορούσαν να καθυστερήσουν σημαντικά τον χρόνο παράδοσης. Το “agile scrum” ήρθε για να μετατρέψει τα τρία στάδια (σχεδιασμός, υλοποίηση, έλεγχος) σε ένα εστιάζοντας στο κάθε χαρακτηριστικό ξεχωριστά.    

Το “agile scrum” είναι ευρέως διαδεδομένο σε Αμερική (Google, Amazon, Microsoft, Yahoo, Intel, IBM) και Ευρώπη (Ericsson, Siemens, Nokia, Philips, ING) και αποτελεί μία από τις βασικές ερωτήσεις των εταιρειών στις διάφορες συνεντεύξεις. Παρ’ όλα αυτά η κάθε εταιρεία μεγάλη ή μικρή (start-up) το εφαρμόζει με βάση τα δικά της πλαίσια και την κουλτούρα που την διέπει. 

 

Κώστας Μπαρούνης 

Μηχανικός Η/Υ & Πληροφορικής (Πολυτεχνείο Πάτρας) 

(Από το 2011 ζει και εργάζεται στην Ολλανδία)