•Το Scrum είναι μια ευέλικτη διαδικασία που μας επιτρέπει να επικεντρωθούμε στην παροχή της υψηλότερης επιχειρηματικής αξίας στο συντομότερο χρονικό διάστημα.
•Μας επιτρέπει γρήγορα και κατ’ επανάληψη να ελέγξουμε μια πραγματική έκδοση λειτουργικού λογισμικού (κάθε δύο εβδομάδες μέχρι ένα μήνα).
•Η επιχείρηση θέτει τις προτεραιότητες. Οι Ομάδες αυτό-οργανώνονται για να καθορίσουν τον καλύτερο τρόπο παράδοσης των υψηλότερης προτεραιότητας χαρακτηριστικών.
•Κάθε δύο εβδομάδες έως ένα μήνα ο καθένας μπορεί να δει μια πραγματική έκδοση του λογισμικού και να αποφασίσει αν θα την αποδεχθεί, όπως είναι ή αν θα συνεχίσει την βελτίωσή της για μια ακόμη περίοδο sprint.
Το Scrum με 100 λέξεις
Jeff Sutherland◦ Initial scrums at Easel Corp in 1993◦ IDX and 500+ people doing Scrum
Ken Schwaber◦ ADM (President)◦ Scrum presented at OOPSLA 96
with Sutherland◦ Author of three books on Scrum
Mike Beedle◦ Scrum patterns in PLOPD4
Ken Schwaber and Mike Cohn◦ Co-founded Scrum Alliance in 2002,
initially within the Agile Alliance
Οι ρίζες του Scrum
Το Scrum έχει χρησιμοποιηθεί από:
•Microsoft•Yahoo•Google•Electronic Arts•High Moon Studios•Lockheed Martin•Philips•Siemens•Nokia•Capital One•BBC•Intuit
•Nielsen Media•First American Real Estate•BMC Software•Ipswitch•John Deere•Lexis Nexis•Sabre•Salesforce.com•Time Warner•Turner Broadcasting•Oce•NSN (also in Greece)
Πηγή: http://www.mountaingoatsoftware.com
Εμπορικό λογισμικό Εσωτερική ανάπτυξη Ανάπτυξη βάσει σύμβασης Έργα σταθερής τιμής Οικονομικές εφαρμογές Εφαρμογές πιστοποιημένες με
ISO 9001 Ενσωματωμένα συστήματα Συστήματα με απαιτήσεις
χρόνου απρόσκοπτης λειτουργίας 24x7 99,999%
Το Scrum έχει χρησιμοποιηθεί για:
• Ανάπτυξη παιχνιδιών Βίντεο
• Συστήματα Κρίσιμα για την ζωή, εγκεκριμένα από τον οργανισμό τροφίμων και φαρμάκων FDA
• Λογισμικό ελέγχου δορυφόρων
• Διαδικτυακούς τόπους
• Λογισμικό φορητών μονάδων
• Κινητά τηλέφωνα
• Εφαρμογές δικτυακής δρομολόγησης
• Εφαρμογές ISV (Independent Software Vendors)
• Ορισμένες από τις μεγαλύτερες εφαρμογές σε χρήση
Αυτο-οργάνωση ομάδων Το Προϊόν αναπτύσσεται σταδιακά σε μια σειρά
από sprint Οι Απαιτήσεις καταγράφονται ως στοιχεία σε μια
λίστα (Product Backlog) Δεν υπάρχουν προβλεπόμενες ειδικές πρακτικές
ανάπτυξης Χρησιμοποιεί κανόνες παραγωγικότητας για να
δημιουργήσει ένα ευέλικτο περιβάλλον παράδοσης των έργων
Χαρακτηριστικά
Το Μανιφέστο του Agile
Διεργασίες και εργαλεία
Διεργασίες και εργαλεία
Άτομα και αλληλεπιδράσεις
Άτομα και αλληλεπιδράσεις
αντί
Πιστή εφαρμογή σχεδίου
Πιστή εφαρμογή σχεδίου
Ανταπόκριση στις αλλαγές
Ανταπόκριση στις αλλαγές
αντί
Λεπτομερή τεκμηρίωσηΛεπτομερή τεκμηρίωση
Λογισμικό σε λειτουργία
Λογισμικό σε λειτουργία
αντί
Διαπραγμάτευση συμβάσεων
Διαπραγμάτευση συμβάσεων
Συνεργασία με τον πελάτη
Συνεργασία με τον πελάτη
αντί
Πηγή: http://www.agilemanifesto.org/
Scrum
Cancel
Gift wrap
Return
Sprint2-4 βδομάδες
Return
Στόχος Sprint
Sprint backlog
Δυνητική παράδοσητμήματος του προϊόντος
Productbacklog
CouponsGift wrap
Coupons
Cancel
24 ώρες
Τα έργα scrum σημειώνουν πρόοδο σε μια σειρά από “sprints"◦Ανάλογη των επαναλήψεων (iterations) στο Extreme
Programming Τυπική διάρκεια 2–4 βδομάδες ή μέγιστο o ένας
ημερολογιακός μήνας Μια σταθερή διάρκεια οδηγεί σε καλύτερο ρυθμό Το προϊόν σχεδιάζεται, κωδικοποιείται και ελέγχεται
στην διάρκεια του sprint.
Sprints
Διαδοχική έναντι επικαλυπτόμενης ανάπτυξης
Πηγή: “The New Product Development Game” by Takeuchi and Nonaka. Harvard Business Review, January 1986.
Αντί για ένα κάθε φορά...
...στο Scrum λίγο από το καθένα σε κάθε Sprint
Απαιτήσεις Σχεδίαση Κώδικας Έλεγχος
Σχεδιάστε την διάρκεια του sprint με βάση τον χρόνο που θέλετε να δεσμευτείτε δεδομένου ότι δεν θα υπάρξουν αλλαγές.
Δεν υπάρχουν αλλαγές κατά τη διάρκεια ενός sprint
Αλλαγή
Πλαίσιο Scrum
•Product owner
•Scrum Master
•Ομάδα
Ρόλοι
•Sprint planning (Σχεδιασμός)
•Sprint review (Επιθεώρηση)
•Sprint retrospective (Αναθεώρηση)
•Daily scrum meeting (Συναντήσεις)
Συναντήσεις
•Product backlog•Sprint backlog•Burndown charts
Έξοδοι
Πλαίσιο Scrum
•Sprint planning•Sprint review•Sprint retrospective
•Daily scrum meeting
Συναντήσεις
•Product backlog•Sprint backlog•Burndown charts
Έξοδοι
•Product owner
•ScrumMaster•Ομάδα
Ρόλοι
Ορίζει τα χαρακτηριστικά του προϊόντος Αποφασίζει την ημερομηνία κυκλοφορίας και το
περιεχόμενο Είναι υπεύθυνος για την κερδοφορία του προϊόντος
(ROI) Δίνει προτεραιότητα στα χαρακτηριστικά ανάλογα με την
αξία στην αγορά Ρυθμίζει τα χαρακτηριστικά και την προτεραιότητα σε
κάθε επανάληψη, ανάλογα με τις ανάγκες Αποδέχεται ή απορρίπτει τα αποτελέσματα της εργασίας
Ο Product owner
Υπεύθυνος για τη θέσπιση των αξιών και πρακτικών του scrum
Αφαιρεί εμπόδια Βεβαιώνει ότι η ομάδα είναι πλήρως λειτουργική και
παραγωγική Ενεργοποιεί τη στενή συνεργασία όλων των ρόλων
και λειτουργιών Θωρακίζει την ομάδα από εξωτερικές παρεμβολές
Ο ScrumMaster
Τυπικά 5-9 άτομα Διασταυρωμένης λειτουργίας:
◦Προγραμματιστές, ελεγκτές, σχεδιαστές έμπειροι στην χρήση εφαρμογών, κλπ.
Μέλη αποκλειστικής απασχόλησης
Ίσως κάποιες εξαιρέσεις (πχ., ο database administrator)
Η ομάδα
Οι ομάδες είναι αυτο-οργανούμενες
◦Ιδανικά χωρίς τίτλους Η συμμετοχή πρέπει να αλλάζει μόνο
μεταξύ των sprints
Η ομάδα
•Product owner
•ScrumMaster•Ομάδα
Ρόλοι
Πλαίσιο Scrum
•Product backlog•Sprint backlog•Burndown charts
Έξοδοι
•Sprint planning•Sprint review•Sprint retrospective
•Daily scrum meeting
Συναντήσεις
Sprint Planning Meeting
Ιεράρχηση Sprint
• Ανάλυση και αξιολόγηση του product backlog
• Επιλογή στόχου του sprint
Σχεδίαση Sprint
• Αποφάσεις για το πώς θα επιτευχθεί ο στόχος του sprint (design)
• Δημιουργία του Sprint Backlog (tasks) από τα στοιχεία του Product Backlog (user stories / features)
• Εκτίμηση του Sprint Backlog
ΣτόχοςSprintΣτόχοςSprint
Sprintbacklo
g
Sprintbacklo
g
Επιχειρημ. συνθήκες
Επιχειρημ. συνθήκες
Ικανότητα της
ομάδας
Ικανότητα της
ομάδας
Product BacklogProduct Backlog
ΤεχνολογίαΤεχνολογία
Τρέχων προϊόν
Τρέχων προϊόν
Η ομάδα επιλέγει τα features, από αυτά που δεν έχουν υλοποιηθεί, για τα οποία μπορεί να δεσμευτεί για ολοκλήρωση
Δημιουργείται το sprint backlog
◦ Εντοπίζονται τα tasks και εκτιμάται η διάρκειά τους
◦ Συλλογικά, όχι μόνο από τον ScrumMaster Εξέταση του σχεδιασμού σε υψηλό επίπεδο
Σχεδίαση Sprint
Ως αρμόδιος για το σχεδιασμό διακοπών, θέλω να μπορώ να δω φωτογραφίες από τα ξενοδοχεία.
Ως αρμόδιος για το σχεδιασμό διακοπών, θέλω να μπορώ να δω φωτογραφίες από τα ξενοδοχεία.
Κωδικοποίηση web tier (8)
Κωδικοποίηση του user interface (4)Testing (4)Κωδικοποίηση κλάσεων (6)…
Πίνακας Εργασιών (Task Board)
Πηγή: www.targetprocess.com
Παράμετροι
◦Καθημερινά
◦15-λεπτά max
◦Όλοι όρθιοι
Όχι για επίλυση προβλημάτων
◦Καλείται όλος ο κόσμος
◦Μόνο τα μέλη της ομάδας, ο ScrumMaster, και ο product owner, μπορούν να μιλήσουν
Βοηθά στην αποφυγή άλλων περιττών συναντήσεων
Το καθημερινό scrum (Daily Scrum)
Αυτά δεν περιγράφουν κατάσταση έργου προς τον ScrumMaster◦ Είναι δεσμεύσεις μπροστά στους ομότιμους
Ο καθένας απαντά σε 3 ερωτήσεις
Τι έκανες χθες?Τι έκανες χθες?11
Τι θα κάνεις σήμερα?Τι θα κάνεις σήμερα?22
Υπάρχει κάτι στο δρόμο σου?Υπάρχει κάτι στο δρόμο σου?33
Η ομάδα παρουσιάζει αυτό που έχει επιτευχθεί κατά τη διάρκεια του sprint
Συνήθως παίρνει τη μορφή ενός demo νέων χαρακτηριστικών ή υποκείμενης αρχιτεκτονικής
Άτυπη
◦ 2-ώρες προετοιμασία
◦ Χωρίς διαφάνειες
Συμμετέχει όλη η ομάδα Καλείται όλος ο κόσμος
Απολογισμός Sprint (Sprint review)
Περιοδική ματιά σε αυτό που επιτεύχθηκε ή δεν λειτουργεί Τυπικά 15–30 λεπτά Μετά ακριβώς από κάθε sprint Συμμετέχει όλη η ομάδα
◦ ScrumMaster
◦ Product owner
◦ Ομάδα
◦ Ενδεχομένως οι πελάτες και άλλοι
Ανακεφαλαίωση Sprint (Sprint Retrospective)
Όλη η ομάδα συλλέγει πληροφορίες και αναλύει τι θα ήθελε να:
Έναρξη / Σταμάτημα / Συνέχιση
Αρχίσει να κάνειΑρχίσει να κάνει
Σταματήσει να κάνει
Σταματήσει να κάνει
Συνεχίσει να κάνει
Συνεχίσει να κάνει
Αυτό είναι απλά ένας από τους
πολλούς τρόπους για να
γίνει μια ανακεφαλαίωση
sprint
•Product owner
•ScrumMaster•Ομάδα
Ρόλοι
Πλαίσιο Scrum
•Sprint planning•Sprint review•Sprint retrospective
•Daily scrum meeting
Συναντήσεις
•Product backlog•Sprint backlog•Burndown charts
Έξοδοι
Οι απαιτήσεις Μια λίστα όλων των
επιθυμητών εργασιών για το έργο
Στην ιδανική περίπτωση εκφρασμένες έτσι ώστε κάθε στοιχείο να έχει αξία για τους χρήστες ή πελάτες του προϊόντος
Ιεραρχημένες από τον ιδιοκτήτη του προϊόντος
Ιεραρχημένες κατά την έναρξη κάθε sprint
Product backlog (υπόλοιπο προϊόντος)
Αυτό είναι το υπόλοιπο του
προϊόντος
Αυτό είναι το υπόλοιπο του
προϊόντος
Δείγμα Product BacklogΣτοιχείο Backlog Εκτίμηση
Άδεια σε επισκέπτη να κάνει κράτηση 3
Ακύρωση κράτησης από επισκέπτη 5
Αλλαγή ημερομηνιών κράτησης από επισκέπτη
3
Εκτέλεση της αναφοράς (Έσοδα ανά διαθέσιμο δωμάτιο), από υπάλληλο
8
Βελτίωση χειρισμού εξαιρέσεων 8
... 30
... 50
Τα άτομα δεσμεύονται για εργασία της επιλογής τους ◦Οι εργασίες δεν εκχωρούνται ποτέ
Η εκτιμώμενη υπολειπόμενη εργασία, ενημερώνεται καθημερινά
Διαχείριση του υπόλοιπου sprint (backlog)
Yπόλοιπο sprint (backlog) σε Story Points
Εργασίες TasksΕργασίες TasksΚώδικας για user interface
Κώδικας web tier
Έλεγχος web tier
Συγγραφή online help
Συγγραφή κλάσεων
ΔεΔε8
16
8
12
8
ΤρΤρ4
12
16
8
ΤεΤε ΠεΠε
4
11
8
4
ΠαΠα
8
8
Προσθήκη error logging
8
10
16
8
8
Διάγραμμα sprint burndown
05
101520253035404550
23/5/2013 30/5/2013 6/6/2013
Πό
ντο
ι
14/6/2013 21/6/2013 28/6/2013
Πό
ντο
ι
40
30
20
10
0Δε Τρ Τε Πε Πα
Εργασίες TasksΕργασίες TasksΚώδικας για user interface
Κώδικας web tier
Έλεγχος web tier
Συγγραφή online help
ΔεΔε8
16
8
12
ΤρΤρ ΤεΤε ΠεΠε ΠαΠα4
12
16
7
11
8
10
16 8
50