Agile Προσέγγιση στη Διαχείριση Έργων Λογισμικού Ενότητα 1-Το γενικό πλαίσιο της agile προσέγγισης Δρ. Δημήτριος Τσέλιος Καθηγητής Εφαρμογών Τμήμα Μηχανικών Πληροφορικής Τ.Ε.- ΤΕΙ Θεσσαλίας Μεταπτυχιακό Πρόγραμμα Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές 1
Η εφαρμογή της Agile προσέγγισης υπόσχεται τα εξής Τα agile έργα παραδίδονται στην ώρα τους Τα agile έργα παραδίδουν υψηλής ποιότητας λογισμικό Ο κώδικας που γίνεται από τις agile ομάδες είναι καλά δομημένος και εύκολα συντηρήσιμος Οι agile ομάδες κάνουν τους χρήστες πελάτες ευτυχισμένους Πάνω από όλα, οι developers μιας αποτελεσματικής agile ομάδας δουλεύουν σε κανονικές ώρες χωρίς να θυσιάζουν την προσωπική ζωή τους
Κάποιες πρώτες επισημάνσεις Η agile προσέγγιση έγινε ιδιαίτερα δημοφιλής λόγω της επιτυχίας της Υπάρχουν πολλά παραδείγματα επιτυχούς εφαρμογής Δυο συνήθεις μεθοδολογίες που θεωρούνται agile: Scrum & Extreme Programming (XP) Άλλες μέθοδοι: Lean & Kanban Επιδίωξη η αλλαγή του mindset
Τι είναι λοιπόν η Agile προσέγγιση; Είναι ένα σύνολο μεθόδων και μεθοδολογιών που βοηθούν την ομάδα ενός έργου να σκέφτεται πιο αποτελεσματικά, να εργάζεται πιο αποτελεσματικά και να παίρνει καλύτερες αποφάσεις Αυτές οι μέθοδοι και μεθοδολογίες έχουν εφαρμογή σε όλες τις περιοχές του παραδοσιακού software engineering (διαχείριση έργων, σχεδίαση λογισμικού και βελτίωση διεργασίας) Η agile προσέγγιση είναι επίσης ένα mindset. Είναι πιο ανοικτό στη σχεδίαση, σχεδιασμό και βελτίωση επηρεάζοντας την ομάδα Going Agile σημαίνει να βοηθάς την ομάδα να βρει ένα αποτελεσματικό mindset Παράδειγμα η εισαγωγή του daily standup στην διαχείριση του έργου
Πρώτες προσπάθειες για εφαρμογή agile μεθόδων Ύπαρξη διαφορετικών απόψεων και προσπάθεια συγκερασμού.
Πρώτες προσπάθειες για εφαρμογή agile μεθόδων Τι γίνεται με την παραδοσιακή προσέγγιση όταν εισάγεται το daily standup. Ο project manager και ο developer έχουν διαφορετικά mindsets.
Προοδευτικά με την εφαρμογή της agile προσέγγισης αποκτούν το ίδιο mindset και το daily standup γίνεται σημαντικό για όλα τα μέλη της ομάδας. Κάτι πάει να αλλάξει
Κατανοώντας τις αξίες της Agile προσέγγισης Δεν ενεργούμε ορθά γιατί έχουμε ήθος και αριστεία, αλλά έχουμε αυτές τις αξίες επειδή ενεργούμε ορθά. Είμαστε αυτό που κάνουμε με επανάληψη. Η αριστεία δεν είναι απλώς μια ενέργεια αλλά μια συνήθεια. Αριστοτέλης, Ηθική Νικομάχεια
Τι δείχνουν οι έρευνες; Μια έρευνα του 2008 έδειξε ότι πάνω από τις μισές ομάδες έργων λογισμικού χρησιμοποιούν μεθοδολογίες, πρακτικές ή αρχές που θεωρούνται agile. Πολλές από αυτές απλά δεν το γνώριζαν. Η παραδοσιακή προσέγγιση είναι η διεργασία waterfall που εφαρμόστηκε στα έργα λογισμικού, όπου οι διαδικασίες λειτουργούν σειριακά. Όμως αυτή η προσέγγιση οδήγησε σε πολλές αποτυχίες.
Το waterfall model
Το waterfall model (1) Μειονέκτημα του μοντέλου είναι η ανικανότητα της επιχείρησης να χειριστεί τις αλλαγές Συχνά οι πελάτες ζητούν διαφορετικές απαιτήσεις καθώς το έργο τρέχει Υπάρχει αυστηρή τήρηση της καταγραφής των εγγράφων, φτωχή επικοινωνία και bugs Υπάρχει η αντίληψη πως υφίσταται μια μέθοδος για όλα τα έργα λογισμικού, silver bullet. Συνήθως αυτή η αντίληψη οδηγούσε στη δημιουργία μιας μεθοδολογίας για τις ομάδες έργου και μιας τεχνολογίας για τους προγραμματιστές
Το waterfall model (2) Τι είναι το heavy on up-front documentation ; Το waterfall μοντέλο δουλεύει καλά όταν γνωρίζεις εξ αρχής τις προδιαγραφές του λογισμικού Οι ομάδες που φτιάχνουν καλό λογισμικό με χρήση του waterfall τυπικά έχουν τα εξής χαρακτηριστικά: Καλή επικοινωνία Καλές πρακτικές Καλό documentation
Οι τέσσερις αξίες της agile προσέγγισης Η δημιουργία της agile προσέγγισης οφείλεται σε μια ομάδα καινοτόμων που συνέταξαν το μανιφέστο της agile ανάπτυξης λογισμικού, θέτοντας τέσσερις βασικές αξίες: Τα άτομα και οι αλληλεπιδράσεις πάνω από τις διεργασίες και τα εργαλεία Λογισμικό που δουλεύει πάνω από την πλήρη καταγραφή εγγράφων Συνεργασία των πελατών πάνω από την διαπραγμάτευση συμβολαίων Ανταπόκριση στις αλλαγές πάνω από την παρακολούθηση ενός πλάνου
Κάποιες τεχνικές και εργαλεία που εμφανίζονται σε agile ομάδες Test-driven ανάπτυξη Automated build script Build server Scrum Velocity του έργου Burnout γραφήματα User stories & release plans Daily stand meetings και instructions
Τι γίνεται στην αρχή; Στην αρχή η εισαγωγή τεχνικών agile απογοητεύει τις ομάδες καθώς δεν βλέπουν ορατή βελτίωση Υπάρχει όμως η αίσθηση ότι κάτι αλλάζει. Αυτό ονομάζεται better-than-not-doing-it results Fractured perspective: ο καθένας έχει διαφορετική άποψη για την agile πρακτική. Αυτό συνήθως οφείλεται στην έλλειψη επικοινωνίας Ανεξάρτητα μέλη των ομάδων έργου προσθέτουν πρακτικές agile σε περιοχές όπου ήδη είναι σε καλή κατάσταση και βελτιώνουν μόνο αυτές τις περιοχές
Fractured perspective: ο καθένας έχει διαφορετική άποψη για την agile πρακτική. Αυτό συνήθως οφείλεται στην έλλειψη επικοινωνίας
Σημαντικές παρατηρήσεις Καλύτερη επικοινωνία επιτρέπει εύκολη διαχείριση της αλλαγής Ο σχεδιασμός ως ομάδα είναι πιο σπουδαίος από την υπερβολική παραγωγή οδηγιών για ένα πλάνο Από το 1960 ο υπερβολικός αριθμός έργων λογισμικού που απέτυχαν οδήγησαν στην κατάσταση με τίτλο software crisis Μερικές ομάδες προσπαθώντας να γίνουν agile μέσω της υιοθέτησης πρακτικών agile απλά βελτιώνουν αυτό που έκαναν μέχρι τώρα Αυτό οδηγεί στο better-than-not-doing-it result Οι user stories είναι μια agile πρακτική η οποία επιτρέπει στα μέλη της ομάδας έργου να περιγράφουν το τι θα κάνει το έργο στους χρήστες Η υιοθέτηση ατομικών πρακτικών μεμονωμένα είναι ο πιο κοινός τρόπος να γίνει κάποιος agile αλλά όχι ο πιο αποδοτικός
Το agile μανιφέστο του 2001 και οι τέσσερις απλές αξίες (1) Τα άτομα και οι αλληλεπιδράσεις πάνω από τις διεργασίες και τα εργαλεία Πριν εφαρμόσεις μια διαδικασία προσάρμοσε τις ανάγκες τις ομάδας, όχι το αντίθετο Συχνά όταν ακολουθείται τυφλά μια διαδικασία τα πράγματα γίνονται λάθος. Ένα εργαλείο επίσης μερικές φορές οδηγεί στο λάθος πιο γρήγορα
Το agile μανιφέστο του 2001 και οι τέσσερις απλές αξίες (2) Λογισμικό που δουλεύει πάνω από την πλήρη καταγραφή εγγράφων Τόνοι documentation υπάρχουν στα ράφια για διάφορα έργα. Φτιάξτε λογισμικό που δουλεύει και όχι οδηγίες. Το documentation είναι μόνο ένα μέσο για την επίτευξη του σκοπού Μια τεχνική που βοηθά είναι η test-driven ανάπτυξη που συνδυάζει και τα δύο
Το agile μανιφέστο του 2001 και οι τέσσερις απλές αξίες (3) Συνεργασία με τον πελάτη από τη διαπραγμάτευση του συμβολαίου Συχνά υπάρχουν συμβόλαια μεταξύ των διαφόρων ομάδων μέσα στην ίδια εταιρεία Η ιδέα του product owner
Το agile μανιφέστο του 2001 και οι τέσσερις απλές αξίες (4) Ανταπόκριση στην αλλαγή πάνω από την τήρηση ενός σχεδίου Συνήθως αυτοί που έφτιαξαν το πλάνο αντιδρούν στην αλλαγή Ένα task board μπορεί να βοηθήσει στην ανταπόκριση στην αλλαγή
Το agile μανιφέστο του 2001 και οι τέσσερις απλές αξίες (4) Αρχές πάνω από τις πρακτικές Χωρίς πρακτικές οι αρχές είναι στείρες. Αλλά χωρίς αρχές οι πρακτικές δεν θα έχουν διάρκεια Ομάδες που απλά υιοθετούν agile πρακτικές βελτιώνουν μέχρι ένα σημείο τον τρόπο δουλειάς τους
Πως οι ομάδες χρησιμοποιούν το task board
Ο agile ελέφαντας είναι κάτι μεγαλύτερο από το άθροισμα των πρακτικών
Τι είναι agile μεθοδολογία? Είναι μια συλλογή πρακτικών και ιδεών μαζί με ένα σχήμα γνώσης και την εμπειρία των agile practitioners. Μια agile μεθοδολογία θα αποδίδει ρόλους και υπευθυνότητες σε όλα τα μέλη της ομάδας έργου και θα προτείνει συγκεκριμένες πρακτικές στον καθένα στα διάφορα στάδια του έργου Μια έρευνα του 2013 έδειξε ότι οι πιο δημοφιλείς agile μεθοδολογίες είναι: Scrum Συνδυασμός scrum και XP Lean διαχείριση και Kanban
Εν συντομία scrum σημαίνει Υπάρχει ένα product backlog, δηλαδή μια λίστα απαιτήσεων για το λογισμικό Κάθε μήνα γίνεται μια συνάντηση sprint που καταγράφει το τι έγινε στο spring backlog Κάθε μέρα γίνεται ένα daily standup meeting για λίγα λεπτά Ορίζεται ένας scrum master που ενεργεί ως αρχηγός, coach και οδηγός της ομάδας έργου
Πως συνδυάζονται οι μεθοδολογίες; (1)
Πως συνδυάζονται οι μεθοδολογίες; (2) Κοινό χαρακτηριστικό του scrum και του XP είναι ότι εργάζονται επαναληπτικά. Η έννοια του Timeboxing. Το lean δεν είναι ακριβώς μια μεθοδολογία, είναι περισσότερο ένα mindset. Το Kanban είναι μια μέθοδος του lean management.
Βιβλιογραφία Learning Agile, Andrew Stellman & Jennifer Greene, O Reilly, 2015 Σελίδες 1-50