Agile mindset
Στις 11 Φεβρουαρίου του 2001, δεκαεφτά άτομα συναντήθηκαν στο Snowbird της πολιτείας Γιούτα, για να συζητήσουν την κατάσταση που επικρατούσε στις εταιρείες λογισμικού. Οι άνθρωποι αυτοί πέτυχαν να ενοποιήσουν τις διαφορετικές απόψεις τους κάτω από μερικές βασικές αρχές και να συνυπογράψουν ένα μανιφέστο για την Ευέλικτη Ανάπτυξη Λογισμικού.
Αυτή η νοοτροπία ή φιλοσοφία, που ονομάστηκε Agile, έχει κυριαρχήσει τα τελευταία είκοσι χρόνια στη βιομηχανία ανάπτυξης λογισμικού. Τα οφέλη της είναι τόσο ισχυρά που πλέον χρησιμοποιείται και σε άλλους χώρους, πέραν αυτού για τον οποίο αρχικά εκφράστηκε.
Μανιφέστο Agile
Οι συζητήσεις της ομάδα των 17 κατέληξαν σε μία δήλωση που θέλοντας να δείξουν την ριζοσπαστικότητα που την διακατέχει, της έδωσαν το χαρακτηρισμού του μανιφέστου:
«Ανακαλύπτουμε καλύτερους τρόπους ανάπτυξης λογισμικού κάνοντάς το αλλά και βοηθώντας άλλους να το κάνουν. Μέσω αυτής της δουλειάς έχουμε μάθει να προσδίδουμε αξία:
• Στους ανθρώπους και στις αλληλεπιδράσεις τους περισσότερο από ότι σε διαδικασίες και εργαλεία
• Στο λογισμικό που δουλεύει περισσότερο από ότι στην πλήρη τεκμηρίωση
• Στη συνεργασία με τον πελάτη περισσότερο από ότι στις διαπραγματεύσεις για σύναψη συμβάσεων
• Στην ανταπόκριση σε αλλαγές περισσότερο από ότι στην τήρηση ενός πλάνου
Ενώ αναγνωρίζουμε την αξία των δηλώσεων στα δεξιά πλευρά, προσδίδουμε μεγαλύτερη αξία σε αυτές στην αριστερή πλευρά.»
Αρχές Agile
Για να ενισχύσουν το μανιφέστο Agile, οι Snowbird 17 κατέγραψαν 12 αρχές, με τις οποίες εξήγησαν ακόμη καλύτερα τις σκέψεις τους. Τα κυριότερα σημεία των αρχών είναι τα εξής:
- Επικέντρωση στην ενδυνάμωση των ανθρώπων
- Ομαδική εργασία και συνεργασία
- Προτεραιότητα σε αυτά που έχουν την μεγαλύτερη αξία (για τον πελάτη)
- Διαρκής εξέλιξη μέσω μικρών, σταδιακά αυξανόμενων, βημάτων
- Αποδοχή των αλλαγών που ζητάει ο πελάτης
- Συνεχής βελτίωση
Σε κάποιες από αυτές τις αρχές υπάρχουν κοινά στοιχεία με αρχές φιλοσοφιών επιχειρησιακής αριστείας (ιδιαίτερα της Lean και της Kaizen). Ο Doug Rose (συγγραφέας και εκπαιδευτής) έχει αναφέρει ότι «ένα μεγάλο μέρος της νοοτροπίας Agile είναι μια επαναδιατύπωση της λιτής σκέψης».
Agile Frameworks
Η Agile είναι μια νοοτροπία και για αυτό υπάρχει ένας αριθμός μεθόδων – πλαισίων – που βοηθούν στην ενσωμάτωσή της. Τα γνωστότερα από αυτά τα πλαίσια είναι:
- Scrum
Το scrum βοηθάει και ενθαρρύνει τις ομάδες να μαθαίνουν μέσα από εμπειρίες, να αυτοοργανώνονται ενώ εργάζονται πάνω σε ένα πρόβλημα και να βελτιώνονται μέσα από τις δυσκολίες που αντιμετωπίζουν.
Βασική έννοια που χρησιμοποιείται είναι το “sprint”, μια σύντομη, χρονικά καθορισμένη περίοδος, κατά την οποία μια ομάδα scrum εργάζεται για να ολοκληρώσει μια καθορισμένη ποσότητα εργασίας. Η χρονική διάρκεια ενός sprint είναι μεταξύ δύο και τεσσάρων εβδομάδων.
Η διαδικασία σχεδιασμού και εκτέλεσης ενός scrum sprint ονομάζεται “Sprint Cycle”, όπου περιλαμβάνονται τα εξής:
- Αρχική συνάντηση προγραμματισμού, συζήτηση για τη δουλειά που πρέπει να γίνει και το πως θα γίνει.
- Καθημερινή συζήτηση (daily stand-up) για το πως προχωράει η δουλειά και για την αντιμετώπιση των εμποδίων.
- Sprint review, αξιολόγηση των αποτελεσμάτων του sprint.
- Sprint retrospective, συζήτηση για τους τομείς βελτίωσης που μπορούν να εφαρμοστούν στο προϊόν και σε επόμενα sprints.
To παραπάνω έχει σημαντική ομοιότητα με την αρχή PDCA (Plan, Do, Check, Act) ή κύκλο των Shewhart/ Deming.
- eXtreme Programming (XP)
Αυτό το πλαίσιο δίνει μεγάλη έμφαση στη συνεργασία με τους πελάτες και κάνει εκτεταμένη χρήση του όρου «ιστορίες χρηστών». Αυτές αποτελούν μία σύντομη περιγραφή του τι πρέπει να κάνει το προϊόν, το τι δηλαδή είναι σημαντικό και έχει αξία για τους πελάτες και τους χρήστες.
Παράλληλα θέλει να δώσει στους πελάτες την ευθύνη της έμπνευσης και να επιτρέψει στην ομάδα ανάπτυξης να εκτελέσει ευκολότερα το έργο της. Στην περίπτωση βέβαια που δεν υπάρχει η απαιτούμενη εμπλοκή από τους πελάτες – χρήστες, τότε υπάρχει σοβαρός κίνδυνος αποτυχίας.
Η μέθοδος XP δίνει ιδιαίτερη βαρύτητα στις ακόλουθες αξίες: απλότητα, σεβασμός, κουράγιο, επικοινωνία και ανατροφοδότηση. Επίσης ένας βασικός της στόχος είναι να βελτιώσει τον τρόπο εργασίας των μελών της ομάδας.
• Kanban
Η ονομασία και το σκεπτικό αυτού του πλαισίου προέρχονται από την Lean. Σε αυτή τη μέθοδο η ομάδα Agile χρησιμοποιεί έναν πίνακα, ο οποίος χωρίζεται σε πολλές στήλες για να απεικονίσει σωστά τη ροή της διαδικασίας.
Σε έναν πίνακας Kanban οι ιστορίες στην κορυφή πρέπει να έχουν την υψηλότερη αξία. Η ομάδα θα πρέπει να εργαστεί σε αυτήν την κορυφαία ιστορία μέχρι να την τελειώσει και να συνεχίσει στην αμέσως επόμενη σε αξία.
Το πλαίσιο Kanban δίνει βαρύτητα στα ακόλουθα: οπτικοποίηση της εργασίας, δημιουργία ορίων σχετικά με τον όγκο της εργασίας και ενίσχυση της ροής εργασιών ώστε να υπάρχει ομαλή μετάβαση από την μία εργασία στην άλλη.
Υπάρχουν άλλα πλαίσια που σχεδιάστηκαν πριν τη διατύπωση του μανιφέστου Agile, όπως και τα προηγούμενα τρία, αλλά όλα πλέον βρίσκονται υπό την ομπρέλα της φιλοσοφίας Agile. Οι ονομασίες αυτών επιγραμματικά:
- Lean Software Development (LSD)
- Dynamic Systems Development Method (DSDM)
- Crystal
- Feature Driven Development (FDD)
- Disciplined Agile (DA)
Οι περισσότερες ομάδες Agile χρησιμοποιούν συνδυασμούς των παραπάνω μεθόδων για να πετύχουν τους στόχους τους.
Agile team
Στην καρδιά της φιλοσοφίας Agile βρίσκεται η ομάδα και οι άνθρωποι που την απαρτίζουν. Τα κυρίαρχα χαρακτηριστικά μιας ομάδας Agile είναι:
- Διαλειτουργική, περιλαμβάνει μέλη με διαφορετικές εμπειρίες και ικανότητες
- Μη ιεραρχική, όλα τα μέλη έχουν το χαρακτηρισμό του προγραμματιστή/ δημιουργού και δεν υπάρχουν περιττά επίπεδα διοίκησης
Στην απλούστερη μορφή ομάδας Agile, ένα άτομο κατέχει τον ρόλο του «ιδιοκτήτη προϊόντος», όπου αποτελεί το κύριο σημείο επαφής με τους πελάτες για τον προσδιορισμό των απαιτήσεων. Επίσης στις ομάδες που χρησιμοποιούν το πλαίσιο scrum υπάρχει ο ρόλος του “scrum master”, ο οποίος είναι υπεύθυνος για τη σωστή και αποτελεσματική χρήση του πλαισίου.
Οι ευέλικτες ομάδες ευνοούν μια επίπεδη δομή όπου οι άνθρωποι έχουν την αυτονομία να εργάζονται ανεξάρτητα και να οργανώνονται, επιτρέποντας στα μέλη τους να αυτοδιαχειρίζονται αποτελεσματικά την εργασία τους.
Πηγές