Kanban μέθοδος για τη Διαχείριση Έργων Λογισμικού Ενότητα 1- Kanban μέθοδος Δρ. Δημήτριος Τσέλιος Καθηγητής Εφαρμογών Τμήμα Μηχανικών Πληροφορικής Τ.Ε.- ΤΕΙ Θεσσαλίας Μεταπτυχιακό Πρόγραμμα Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές 1
Kanban- ροή και σταθερή βελτίωση (1) Το Kanban είναι μια μέθοδος βελτίωσης της διεργασίας που χρησιμοποιείται από κάποιες agile ομάδες. Χρησιμοποιεί το lean thinking mindset. Το Kanban προέρχεται από τη βιομηχανία και υιοθετήθηκε από τον David Anderson για την ανάπτυξη λογισμικού. 2
Kanban- ροή και σταθερή βελτίωση (2) Το Kanban έχει διαφορετική εστίαση σε σχέση με τι υπόλοιπες agile μεθοδολογίες. Βοηθάει τις ομάδες στη βελτίωση του τρόπου με τον οποίο φτιάχνουν ήδη το λογισμικό. Αυτό ονομάζεται process improvement. Έχει άμεση σχέση με τα συστήματα ουρών. 3
Kanban- ροή και σταθερή βελτίωση (3) Οι θεμελιώδεις αρχές του Kanban. Ξεκίνησε με αυτό που κάνεις τώρα. Συμφώνησε στο ότι θα επιδιώξεις αυξητική και προοδευτική αλλαγή. Αρχικά κράτησε του υπάρχοντες ρόλους, υπευθυνότητες και τίτλους εργασίας. 4
Kanban- ροή και σταθερή βελτίωση (4) Οι κύριες πρακτικές του Kanban. Οπτικοποίηση Μείωση του WIP Διαχείριση της ροής Κάντε ξεκάθαρες τις πολιτικές της διεργασίας Υλοποιείστε τους κύκλους ανάδρασης Βελτιώστε συνεργατικά, αναπτύξτε πειραματικά 5
Ξεκίνησε με αυτό που κάνεις τώρα Το Kanban δεν είναι ένα σύστημα διαχείρισης έργων. Είναι μια μέθοδος βελτίωσης της υπάρχουσας διεργασίας: των βημάτων που ακολουθεί η ομάδα για να φτιάξει λογισμικό. Πριν όμως βελτιώσεις κάτι χρειάζεται ένα σημείο εκκίνησης και αυτό είναι ότι κάνεις σήμερα. 6
Βρες ένα σημείο εκκίνησης και ανέπτυξε πειραματικά από εκεί (1) Ο στόχος της process improvement είναι να βρεθούν επαναλαμβανόμενα προβλήματα, να εντοπιστεί η κοινή αιτία και να διορθωθεί. Οι ομάδες Kanban αποκαλούν τα βήματα ή τους κανόνες που ακολουθούν, πολιτικές. 7
Βρες ένα σημείο εκκίνησης και ανέπτυξε πειραματικά από εκεί (2) Κάθε ομάδα έχει ένα σύστημα για να φτιάχνει λογισμικό έστω και χαοτικό και μη καταγεγραμμένο. 8
Βρες ένα σημείο εκκίνησης και ανέπτυξε πειραματικά από εκεί (3) Το Kanban θα βοηθήσει με το να φτιάχνει μικρές βελτιώσεις. Αυτή η πρακτική λέγεται improve collaboratively, evolve experimentally. Η πρακτική του Kanban των implementing feedback loops υλοποιεί την αρχή της ενίσχυσης της μάθησης του Lean Management. 9
Βρες ένα σημείο εκκίνησης και ανέπτυξε πειραματικά από εκεί (4) Άρα το Kanban δεν μας λέει πως να τρέξουμε το έργο; Ακριβώς! Βελτιώνει τη διεργασία που ήδη χρησιμοποιείται. Ψάχνει τις συμπεριφορές που επαναλαμβάνονται και προκαλούν προβλήματα. 10
Το system thinking (1) Τα user stories είναι η είσοδος και ο κώδικας είναι η έξοδος. Κάθε ομάδα ακολουθεί ένα σύστημα ακόμη και αν δεν το γνωρίζει. Το Kanban δεν είναι μεθοδολογία λογισμικού ή σύστημα διαχείρισης έργων. Δεν είναι ορθό να χρησιμοποιείται ως μεθοδολογία ανάπτυξης λογισμικού. 11
Το system thinking (2) Το Kanban βελτιώνει την πρόβλεψη της ροής κάτι που επηρεάζει τον σχεδιασμό και τον χρονοπρογραμματισμό του έργου. Βασικές έννοιες: work items και workflow mapping. 12
Οπτικοποίηση της Ροής (1) Αυτή επιτυγχάνεται με χρήση του Kanban board. Αυτό μοιάζει με το scrum task board αλλά έχει σημαντικές διαφορές. Υπάρχουν τρεις σημαντικές διαφορές Το Kanban board έχει μόνο stories (όχι tasks). Οι στήλες του διαφέρουν από ομάδα σε ομάδα. Υπάρχει η δυνατότητα ορισμού ορίων των stories σε κάποιες στήλες. 13
Οπτικοποίηση της Ροής (2) Το Kanban board δημιουργείται με βάση την υφιστάμενη κατάσταση και έτσι προκύπτει η αρχική του μορφή που παρουσιάζει το σύστημα που δουλεύει. Στη συνέχεια χρησιμοποιείται όπως το scrum task board. 14
Οπτικοποίηση της Ροής (3) Οι ομάδες Kanban έχουν καθημερινή συνάντηση (walking the board). Δεν έχει νόημα η αντιγραφή ενός Kanban board για άλλη διεργασία. Πρέπει να αντιπροσωπεύει τον τρόπο με τον οποίο δουλεύει η ομάδα. 15
Παράδειγμα Kanban board που δείχνει τον τρόπο δουλειάς της ομάδας 16
Ένα παράδειγμα ανάπτυξης της μεθόδου (1) Αρχικά δημιουργείται η πρώτη μορφή του Kanban board με βάση τον τρόπο της ομάδας. Αρχική μορφή του Kanban board 17
Ένα παράδειγμα ανάπτυξης της μεθόδου (2) Με τη βελτίωση που επιφέρει το Kanban δημιουργείται μια νέα μορφή με την προσθήκη μιας στήλης για το Manager Review. Η νέα μορφή του Kanban board 18
Ένα παράδειγμα ανάπτυξης της μεθόδου (3) Κάποια στιγμή τα προβλήματα εντοπίζεται οπτικά από τη συγκέντρωση work items σε κάποια στήλη. Αυτό είναι ένδειξη για την ύπαρξη mura. Μια λύση είναι η προσθήκη ακόμη μιας στήλης για τα work items που χρειάζονται επαναδιεργασία. 19
Ένδειξη για ύπαρξη mura 20
Το Kanban board δείχνει την ύπαρξη waste 21
Περιορισμός του WIP (1) Είναι ένας τρόπος περιορισμού της ποσότητας της εργασίας που συσσωρεύεται. Θέτει ένα όριο στον αριθμό των work items ανά φάση του έργου. Ο ορισμός ενός WIP limit μετατρέπει τη στήλη όπου μπαίνει σε μια ουρά. Αυτό το όριο τίθεται συνήθως μετά από πειραματισμό. 22
Ορισμός ορίων σε μια φάση του Kanban board 23
Το αποτέλεσμα στο Kanban board μετά την θέση του ορίου 24
Περιορισμός του WIP (2) Γιατί να μην τεθεί όριο μεγέθους 1 σε όλες τις φάσεις; Αν ο κύκλος ανάδρασης είναι μικρός οδηγεί σε κάτι που ονομάζεται thrashing. Επίσης θα πρέπει να υπάρχει μηχανισμός που θα ελέγχει μήπως επιστρέφονται τα ίδια work items σε προηγούμενες φάσεις. 25
Προσθέτοντας νέες στήλες στο Kanban board δίνεται περισσότερος έλεγχος στη διεργασία 26
Περιορισμός του WIP (2) Οι Kanban ομάδες εργάζονται μαζί με τους χρήστες, μάνατζερς και άλλους συμμετέχοντες για να γίνει βέβαιο ότι ο καθένας συμφωνεί πότε μια στήλη είναι στο όριο WIP και έτσι η ομάδα θα εστιάσει στη δουλειά σε κάποιο άλλο σημείο του έργου και να μην προστεθούν περισσότερα work items σε αυτή τη φάση του έργου 27
Μέτρηση και διαχείριση της ροής (1) Η ροή του συστήματος είναι ο ρυθμός της κίνησης των work items από φάση σε φάση. Μια ομάδα Kanban χρησιμοποιεί την πρακτική manage flow για να μετρά τη ροή και να λαμβάνει τα κατάλληλα μέτρα για τη βελτίωση της. Χρήση των CFDs και των WIP διαγραμμάτων για τη μέτρηση και τη διαχείριση της ροής. 28
Μέτρηση και διαχείριση της ροής (2) Πως γνωρίζουμε την απόδοση της ροής μετά την προσθήκη των ορίων; Ένα αποτελεσματικό εργαλείο για την παρακολούθηση της απόδοσης της ροής είναι το cumulative flow diagram (CFD). Μοιάζει με το WIP διάγραμμα περιοχής αλλά έχει μια σημαντική διαφορά. 29
Μέτρηση και διαχείριση της ροής (3) Το CFD συσσωρεύει όλα τα work items ακόμη και αυτά που έχουν ολοκληρωθεί στην τελευταία περιοχή. Επίσης το CFD έχει περιοχές που αντιστοιχούν στις στήλες του Kanban board. 30
Μέτρηση και διαχείριση της ροής (4) Ένα άλλο χαρακτηριστικό των CFDs είναι οι πρόσθετες γραμμές που δείχνουν το μέσο ρυθμό άφιξης των work items και το μέσο όρο των work items που βρίσκονται στο διάγραμμα ροής. Επίσης το CFD μπορεί να δείχνει το μέσο χρόνο που παραμένει στο διάγραμμα ροής το κάθε work item. 31
Αντιστοιχία των στηλών του Kanban board με τις περιοχές του CFD 32
Παράδειγμα CFD με γραμμές τάσεων (1) Οι γραμμές των τάσεων είναι χρήσιμες γιατί δείχνουν πότε το σύστημα είναι σταθερό και πότε ασταθές. Αν δεν είναι σταθερό πιθανώς να χρειάζονται περισσότερα WIP όρια. 33
Παράδειγμα CFD με γραμμές τάσεων (2) 34
Λίγα μαθηματικά σύμβολα για τη χρήση του CFD (1) L: μέσος μακροχρόνιος αριθμός work items στο διάγραμμα ροής λ: μέσος ρυθμός άφιξης των work items W: μέσος χρόνος παραμονής των work items στο σύστημα Σκοπός της ομάδας είναι η σταθεροποίηση των δυο τάσεων με χρήση κατάλληλων WIP ορίων. Τότε το σύστημα είναι stable. 35
Λίγα μαθηματικά σύμβολα για τη χρήση του CFD (2) Σύμφωνα με το νόμο Little s (θεωρία ουρών) όταν το σύστημα είναι stable τότε ισχύει: L= W x λ Χρησιμοποίησε το CFD για να πειραματιστείς με τα WIP όρια και να διαχειριστείς τη ροή. 36
Το παράδειγμα με τις ουρές αναμονής για ιατρικές εξετάσεις (1) Ένα Kanban board για ένα ιατρικό κέντρο 37
Το CFD που αντιστοιχεί στο Kanban board του ιατρικού κέντρου 38
Το Kanban board μετά την προσθήκη επιπλέον ορίου 39
Το CFD δείχνει το σύστημα να παραμένει ασταθές 40
Το CFD μπορεί να δείξει σε ποια σημεία χρειάζεται επιτευχθεί η σταθεροποίηση 41
Κάποια στιγμή η ροή σταθεροποιείται 42
Συνεχής βελτίωση Η προσπάθεια των ομάδων είναι συνεχής. Το σύστημα πάντα χρειάζεται προσαρμογές. Η μέθοδος βασίζεται στον πειραματισμό και στα WIP όρια. 43
Η χρήση των WIP ορίων δημιουργεί υστέρηση (slack) (1) Το slack χρειάζεται γιατί δίνει τον απαραίτητο χρόνο στις ομάδες να κάνουν καλύτερη δουλειά. Όταν χρησιμοποιούνται τα όρια τότε οι ομάδες Kanban υιοθετούν κάτι που ονομάζεται delivery cadet. 44
Η χρήση των WIP ορίων δημιουργεί υστέρηση (slack) (2) Αυτό σημαίνει ότι η ομάδα δεσμεύεται ότι θα παραδίδει σε τακτά χρονικά διαστήματα αλλά δεν δεσμεύεται για τον αριθμό των work items που θα παραδίδει. Πολλές ομάδες για να αισθάνονται καλύτερα ορίζουν όρια για κάθε στήλη του Kanban board. 45
Τα όρια σε κάθε στήλη βοηθούν την ομάδα να μεγιστοποιήσει τη ροή σε όλο το έργο 46
Βιβλιογραφία Learning Agile, Andrew Stellman & Jennifer Greene, O Reilly, 2015, σελίδες 315-368 47