41
Νίκος Ράπτης Παρουσίαση Εισαγωγή στο Scrum

Scrum Methodology Introduction

Embed Size (px)

Citation preview

Νίκος Ράπτης

Παρουσίαση

Εισαγωγή στο Scrum

•Το 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)

• Ορισμένες από τις μεγαλύτερες εφαρμογές σε χρήση

Χρήση του Scrum

Πηγή: http://www.versionone.com

Αυτο-οργάνωση ομάδων Το Προϊόν αναπτύσσεται σταδιακά σε μια σειρά

από 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

Η ομάδα

Pair Programming

•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)…

Planning Poker

Πίνακας Εργασιών (Task Board)

Πίνακας Εργασιών (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)

Mad / Sad/ Glad

Όλη η ομάδα συλλέγει πληροφορίες και αναλύει τι θα ήθελε να:

Έναρξη / Σταμάτημα / Συνέχιση

Αρχίσει να κάνειΑρχίσει να κάνει

Σταματήσει να κάνει

Σταματήσει να κάνει

Συνεχίσει να κάνει

Συνεχίσει να κάνει

Αυτό είναι απλά ένας από τους

πολλούς τρόπους για να

γίνει μια ανακεφαλαίωση

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

Scrum of scrums

Scrum of scrums of scrums

Πηγή: http://www.mountaingoatsoftware.com