Story points — είναι σχετικές μονάδες μέτρησης της πολυπλοκότητας των εργασιών σε ευέλικτες μεθοδολογίες ανάπτυξης. Σε αντίθεση με τις ώρες, τα story points λαμβάνουν υπόψη όχι μόνο τον χρόνο, αλλά και την πολυπλοκότητα, τους κινδύνους και την αβεβαιότητα της εργασίας. Σύμφωνα με τα δεδομένα Scrum.org, 2023, οι ομάδες που χρησιμοποιούν σχετική αξιολόγηση σε story points χάνουν τις προθεσμίες sprint κατά 25% λιγότερο συχνά σε σύγκριση με ομάδες που αξιολογούν σε ώρες.
Κύρια Σημεία
Story points — είναι μια μετρική πολυπλοκότητας εργασίας που χρησιμοποιείται στο Scrum και σε άλλες μεθοδολογίες Agile. Η ομάδα αξιολογεί κάθε εργασία όχι σε ώρες, αλλά σε σχετικές μονάδες: “αυτή η εργασία είναι δύο φορές πιο περίπλοκη από την αναφορά”. Αυτή η προσέγγιση εξουδετερώνει τη διαφορά ταχύτητας μεταξύ διαφορετικών προγραμματιστών και εστιάζεται στην πολυπλοκότητα.
Η έννοια του story point εμφανίστηκε στις αρχές της δεκαετίας του 2000 με τη διάδοση του Scrum. Ένας από τους πρώτους που περιέγραψε τη μέθοδο ήταν ο Ron Jeffries στο πλαίσιο του Extreme Programming (XP). Η ιδέα ήταν να απομακρυνθούν από την αξιολόγηση σε “ανθρωποώρες”, που είναι πάντα ανακριβής, προς τη σχετική πολυπλοκότητα που η ομάδα καθορίζει συλλογικά. Σήμερα, τα story points είναι το βιομηχανικό πρότυπο για ομάδες Agile.
Κατά την αξιολόγηση με story points, η ομάδα λαμβάνει υπόψη τρεις παράγοντες: όγκο εργασίας (ποσότητα κώδικα, οθόνες, λογική), πολυπλοκότητα (τεχνικές προκλήσεις, νέες τεχνολογίες) και αβεβαιότητα (ασαφείς απαιτήσεις, κίνδυνοι). Ένα story point μπορεί να σημαίνει “απλή εργασία χωρίς κινδύνους”, και 8 — “σύνθετη εργασία με υψηλή αβεβαιότητα”.
Η επιλογή της κλίμακας story points επηρεάζει την ακρίβεια της αξιολόγησης και την ευκολία προγραμματισμού. Η πιο δημοφιλής κλίμακα είναι η ακολουθία Fibonacci, αλλά υπάρχουν και εναλλακτικές.
| Κλίμακα | Τιμές | Πλεονεκτήματα | Μειονεκτήματα |
|---|---|---|---|
| Fibonacci | 1, 2, 3, 5, 8, 13, 21 | Φυσική αύξηση διασποράς σε μεγάλες εργασίες | Πολύπλοκη για νέες ομάδες |
| Γραμμική | 1, 2, 3, 4, 5 | Απλή και κατανοητή | Χωρίς διασπορά για μεγάλες εργασίες |
| Δυναμική | 1, 2, 4, 8, 16, 32 | Μέγιστη διασπορά σε μεγάλες εργασίες | Οι μεγάλες εργασίες δυσκολοδιακρίσιμες |
| T-Shirt | S, M, L, XL | Γρήγορη χονδρική αξιολόγηση | Ανακριβής, απαιτεί μετατροπή |
Η ακολουθία Fibonacci δεν επιλέχθηκε τυχαία. Η διαφορά μεταξύ 1 και 2 είναι ελάχιστη (50%), ενώ μεταξύ 13 και 21 — σημαντική (62%). Αυτό αντικατοπτρίζει την πραγματικότητα: οι μικρές εργασίες αξιολογούνται με μεγαλύτερη ακρίβεια, οι μεγάλες — με μεγαλύτερη διασπορά. Όταν μια εργασία αξιολογείται σε 21 story points, η ομάδα κατανοεί: “δεν γνωρίζουμε πόσο θα διαρκέσει, αλλά σίγουρα περισσότερο από 13”. Η κλίμακα Fibonacci αποτρέπει την ψευδή ακρίβεια.
Για να λειτουργήσει η κλίμακα, η ομάδα συμφωνεί σε μια αναφορά: “εργασία X — 1 story point”. Συνήθως ως αναφορά επιλέγεται μια απλή, καλά γνωστή εργασία: “προσθήκη πεδίου κειμένου στην οθόνη” ή “διόρθωση bug τύπου τυπογραφικού λάθους”. Όλες οι άλλες εργασίες αξιολογούνται σε σχέση με την αναφορά. Χωρίς αναφορά, τα story points χάνουν το νόημά τους — ο καθένας κατανοεί τη μονάδα διαφορετικά.
Velocity (ταχύτητα ομάδας) — ο μέσος αριθμός story points που ολοκληρώνει η ομάδα σε ένα sprint. Αυτή είναι η βασική μετρική για την πρόβλεψη προθεσμιών έργου.
Το velocity υπολογίζεται βάσει ολοκληρωμένων εργασιών: αθροίζονται τα story points όλων των εργασιών που η ομάδα κατάφερε να ολοκληρώσει (το definition of done εκπληρώθηκε). Οι μη ολοκληρωμένες εργασίες δεν λαμβάνονται υπόψη. Για ακρίβεια, λαμβάνεται ο μέσος όρος των τελευταίων 3-5 sprint. Για παράδειγμα, αν η ομάδα ολοκλήρωσε 20, 22, 18 και 24 story points στα τελευταία 4 sprint, velocity = 21 sp.
Γνωρίζοντας το velocity και τον συνολικό όγκο του backlog σε story points, μπορεί να προβλεφθεί ο αριθμός των sprint μέχρι την έκδοση. Για παράδειγμα, αν στο backlog υπάρχουν 210 story points και velocity = 21, απαιτούνται 10 sprint. Αυτή είναι μια χονδρική πρόβλεψη που βελτιώνεται κατά τη διάρκεια της εργασίας. Σημαντικό: το velocity είναι μέσος όρος, όχι υποχρέωση. Προγραμματίστε βάσει του κατώτερου ορίου (18 sp), όχι του μέσου όρου.
Το velocity δεν μπορεί να αυξηθεί με εντολή — είναι σύμπτωμα της υγείας των διαδικασιών. Η βιώσιμη αύξηση του velocity επιτυγχάνεται μέσω: μείωσης τεχνικού χρέους, βελτίωσης διαδικασιών code review, μείωσης εναλλαγών περιβάλλοντος, αυτοματοποίησης δοκιμών και CI/CD. Σημαντικό: το velocity διαφορετικών ομάδων δεν μπορεί να συγκριθεί — κάθε ομάδα ορίζει τα story points με τον δικό της τρόπο.
Τα story points και οι ώρες έχουν διαφορετικούς σκοπούς, και η επιλογή μεταξύ τους εξαρτάται από το πλαίσιο. Οι έμπειρες ομάδες χρησιμοποιούν και τις δύο προσεγγίσεις για διαφορετικές εργασίες.
Story points είναι απαραίτητα για τον προγραμματισμό sprint: δεν εξαρτώνται από το ποιος θα εκτελέσει την εργασία. Ένας junior μπορεί να κάνει 2 sp την ημέρα, ένας senior — 4 sp, αλλά η αξιολόγηση της εργασίας παραμένει 2 sp και για τους δύο. Τα story points επιτρέπουν την παρακολούθηση της παραγωγικότητας της ομάδας χωρίς σύγκριση προγραμματιστών. Αυτό μειώνει την πολιτική πίεση και βελτιώνει την ατμόσφαιρα στην ομάδα.
Ώρες είναι απαραίτητες για εξωτερικές υποχρεώσεις: συμβόλαια, προϋπολογισμοί, αναφορές για τον πελάτη. Ο πελάτης θέλει να μάθει όχι “8 story points”, αλλά “3 εβδομάδες”. Για τη μετατροπή story points σε ώρες χρησιμοποιείται το historical conversion rate: η ομάδα γνωρίζει ότι 1 sp = περίπου 4 ώρες εργασίας. Η μετατροπή πρέπει να είναι διαφανής και βασισμένη σε δεδομένα, όχι σε εικασίες.
Πολλές ομάδες χρησιμοποιούν συνδυαστική προσέγγιση: οι εργασίες αξιολογούνται σε story points για τον προγραμματισμό sprint, στη συνέχεια ο διαχειριστής τις μετατρέπει σε ώρες/ημέρες για εξωτερικές αναφορές. Είναι σημαντικό να μην αναμειγνύονται δύο συστήματα σε μία διαδικασία: είτε αξιολογείτε σε story points και εξάγετε τον χρόνο από το velocity, είτε αξιολογείτε απευθείας σε ώρες.
Η εφαρμογή των story points συχνά συνοδεύεται από λάθη που ακυρώνουν τα πλεονεκτήματα της σχετικής αξιολόγησης. Ακολουθούν τα πιο κοινά.
Το πιο κοινό λάθος — η ομάδα συμφωνεί: “1 sp = 4 ώρες”. Σε αυτή την περίπτωση, τα story points χάνουν το νόημά τους και μετατρέπονται σε ώρες με άλλο όνομα. Τα story points πρέπει να είναι σχετικά, μη συνδεδεμένα με τον χρόνο. Αν η εργασία Α είναι δύο φορές πιο περίπλοκη από την εργασία Β, λαμβάνει 2 sp, ανεξάρτητα από πόσες ώρες θα διαρκέσει.
Όταν μια εργασία αξιολογείται μετά την εκτέλεσή της — αυτό δεν είναι αξιολόγηση, αλλά διαπίστωση γεγονότος. Τα story points πρέπει να ορίζονται πριν από την έναρξη της εργασίας, τη στιγμή της μέγιστης αβεβαιότητας. Η αξιολόγηση post-factum παραμορφώνει το velocity και δεν προσφέρει όφελος για τον προγραμματισμό. Επιπλέον, δημιουργεί ψευδή αίσθηση ακρίβειας.
Η σύγκριση velocity της ομάδας Α και της ομάδας Β — μια άσκηση χωρίς νόημα. Κάθε ομάδα ορίζει την αναφορά και την κλίμακα με τον δικό της τρόπο. Για μία ομάδα, 1 sp είναι μια απλή εργασία μίας ώρας, για μια άλλη — μια εργασία μίας ημέρας. Μόνο το velocity της ίδιας ομάδας σε δυναμική μπορεί να συγκριθεί: αυξάνεται ή μειώνεται.
Όταν διαφορετικές εργασίες με την ίδια πολυπλοκότητα λαμβάνουν διαφορετικά story points, και οι πιο περίπλοκες — λιγότερα, η κλίμακα χαλάει. Η ομάδα πρέπει να βαθμονομεί τακτικά την κλίμακα: κάθε 3-6 sprint να ελέγχει αναδρομικά πόσο αντιστοιχούσαν οι αξιολογήσεις στην πραγματική πολυπλοκότητα. Αυτό βελτιώνει τη συνέπεια των αξιολογήσεων.
Συχνές Ερωτήσεις
Τα story points δεν έχουν σταθερό ισοδύναμο σε ώρες. Είναι μια σχετική μονάδα: 1 sp = πολυπλοκότητα της εργασίας αναφοράς. Για μετατροπή σε ώρες, χρησιμοποιήστε το historical conversion rate της ομάδας σας: διαιρέστε τον μέσο αριθμό ωρών εργασίας σε ένα sprint με το velocity. Συνήθως 1 sp = 4-8 ώρες, αλλά αυτό είναι εξατομικευμένο για κάθε ομάδα.
Ναι, story points μπορούν να χρησιμοποιηθούν στο Kanban, αλλά με επιφυλάξεις. Στο Kanban δεν υπάρχουν σταθερά sprint, επομένως το velocity υπολογίζεται όχι ανά sprint, αλλά ανά εβδομάδα ή μήνα. Οι ομάδες Kanban συχνά χρησιμοποιούν αντί για story points το Cycle Time — τον χρόνο διέλευσης της εργασίας από την αρχή έως το τέλος. Η επιλογή εξαρτάται από την ιδιοσυγκρασία της ομάδας.
Αν οι αξιολογήσεις διαφέρουν (ένας δίνει 3 sp, άλλος — 13), αυτό είναι σημάδι ότι η εργασία δεν γίνεται καλά κατανοητή. Αποδομήστε την εργασία σε μικρότερα μέρη. Συζητήστε τους κινδύνους και τις αβεβαιότητες που βλέπουν διαφορετικοί προγραμματιστές. Αν η εργασία είναι μεγάλη — αξιολογήστε την ως Spike (έρευνα 2-4 ημερών) αντί για story points.
Η μετάβαση διαρκεί 3-6 sprint. Ξεκινήστε με την επιλογή κλίμακας (Fibonacci — safest choice) και τον καθορισμό της εργασίας αναφοράς. Διεξάγετε 2-3 συνεδρίες Planning Poker. Μετά από κάθε sprint, υπολογίστε το velocity. Μην μετατρέπετε τα story points σε ώρες — αφήστε την ομάδα να συνηθίσει το νέο σύστημα. Μετά από 3 sprint θα δείτε πόσο βελτιώθηκε ο προγραμματισμός.
Όχι, η αξιολόγηση δεν αλλάζει. Τα story points είναι μια προκαταρκτική αξιολόγηση πολυπλοκότητας που γίνεται πριν από την έναρξη της εργασίας. Μετά την εκτέλεση της εργασίας, η αξιολόγηση παραμένει η ίδια, ακόμα κι αν η πραγματική προσπάθεια ήταν διαφορετική. Η αλλαγή της αξιολόγησης post-factum παραμορφώνει τα στατιστικά και καθιστά την πρόβλεψη άνευ νοήματος. Αναλύστε τις αποκλίσεις στις αναδρομικές ανασκοπήσεις, αλλά μην αλλάζετε την αξιολόγηση εκ των υστέρων.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης