Εκτίμηση — είναι μια ποσοτική αξιολόγηση της προσπάθειας που απαιτείται για την εκτέλεση μιας εργασίας, την ανάπτυξη λειτουργικότητας ή την υλοποίηση ενός έργου στο σύνολό του. Στην κινητή ανάπτυξη, οι εκτιμήσεις χρησιμοποιούνται για τον προγραμματισμό sprint, τον προσδιορισμό κόστους και τη διαχείριση των προσδοκιών του πελάτη. Σύμφωνα με τα δεδομένα του Project Management Institute, 2024, το σφάλμα εκτίμησης στα αρχικά στάδια ενός έργου μπορεί να φτάσει το 100%, καθιστώντας την εκτίμηση έναν από τους πιο δύσκολους τομείς στην ανάπτυξη.
Βασικά σημεία
Εκτίμηση (από το αγγλικό estimate) — πρόβλεψη της ποσότητας χρόνου ή προσπάθειας που απαιτείται για την εκτέλεση μιας εργασίας. Στην κινητή ανάπτυξη, οι εκτιμήσεις εκφράζονται σε ώρες, ημέρες, story points ή χρηματικό ισοδύναμο. Σκοπός της εκτίμησης δεν είναι η ακριβής πρόβλεψη, αλλά η μείωση της αβεβαιότητας για τη λήψη αποφάσεων.
Εκτίμηση — πρόβλεψη με περιθώριο σφάλματος. Δέσμευση (commitment) — υπόσχεση εκτέλεσης της εργασίας έως μια συγκεκριμένη ημερομηνία. Η διαφορά είναι κρίσιμη: η εκτίμηση λέει “πιθανώς 5 ημέρες”, η δέσμευση — “θα το κάνουμε σε 5 ημέρες”. Οι διαχειριστές συχνά συγχέουν αυτές τις έννοιες, μετατρέποντας την εκτίμηση σε προθεσμία χωρίς δικαίωμα σφάλματος.
Η διαδικασία εκτίμησης είναι εξίσου σημαντική με το αποτέλεσμά της. Όταν η ομάδα συζητά την αξιολόγηση μιας εργασίας, αποκαλύπτονται κρυφές απαιτήσεις, εξαρτήσεις και κίνδυνοι. Ακόμη κι αν ο τελικός αριθμός είναι ανακριβής, η συζήτηση δίνει σε όλους τους συμμετέχοντες κατανόηση της εργασίας. Γι' αυτό οι συλλογικές μέθοδοι αξιολόγησης (Planning Poker) είναι πιο αποτελεσματικές από τις ατομικές.
Υπάρχουν αρκετές μέθοδοι εκτίμησης, η καθεμία κατάλληλη για διαφορετικά στάδια του έργου και επίπεδα λεπτομέρειας. Η επιλογή της μεθόδου εξαρτάται από τα διαθέσιμα δεδομένα και την απαιτούμενη ακρίβεια.
| Μέθοδος | Τύπος | Ακρίβεια | Πότε να χρησιμοποιείται |
|---|---|---|---|
| Planning Poker | Εμπειρογνωμονική, συλλογική | Υψηλή (σε sprint) | Αξιολόγηση εργασιών για sprint |
| T-Shirt sizing | Εμπειρογνωμονική, γρήγορη | Μέτρια | Προκαταρκτική αξιολόγηση επικών |
| Αναλογική εκτίμηση | Βάσει ιστορικού | Μέτρια | Παρόμοιες εργασίες στο παρελθόν |
| Three-point (PERT) | Πιθανολογική | Άνω του μέτριου | Εργασίες με υψηλή αβεβαιότητα |
| Παραμετρική | Βάσει τύπου | Εξαρτάται από δεδομένα | Ομοιογενείς μετρήσιμες εργασίες |
Planning Poker — η πιο δημοφιλής μέθοδος αξιολόγησης στο Agile. Κάθε προγραμματιστής λαμβάνει μια τράπουλα με αριθμούς Fibonacci (1, 2, 3, 5, 8, 13, 21). Μετά τη συζήτηση της εργασίας, όλοι δείχνουν ταυτόχρονα την κάρτα τους. Εάν οι εκτιμήσεις διαφέρουν — οι προγραμματιστές με την ελάχιστη και μέγιστη εκτίμηση εξηγούν τη λογική τους, ακολουθεί επαναληπτική ψηφοφορία. Η μέθοδος εξαλείφει την επιρροή των αυθεντιών και δίνει ακριβέστερη εκτίμηση.
T-Shirt sizing — χονδρική εκτίμηση ανά μέγεθος μπλούζας: XS, S, M, L, XL, XXL. Η μέθοδος χρησιμοποιείται για γρήγορη εκτίμηση μεγάλων εργασιών (επικών) σε πρώιμα στάδια, όταν οι λεπτομέρειες δεν είναι γνωστές. Αργότερα, κάθε τέτοια εργασία αποδομείται και αξιολογείται στο Planning Poker. Το T-Shirt sizing διαρκεί 5-10 λεπτά ανά εργασία, αλλά δίνει μόνο την τάξη μεγέθους.
PERT χρησιμοποιεί τρεις εκτιμήσεις: αισιόδοξη (O), απαισιόδοξη (P) και πιθανότερη (M). Η τελική εκτίμηση υπολογίζεται με τον τύπο: (O + 4M + P) / 6. Η μέθοδος λαμβάνει υπόψη την αβεβαιότητα και δίνει πιο ρεαλιστικό αποτέλεσμα από μια μεμονωμένη εκτίμηση. Το PERT είναι ιδιαίτερα χρήσιμο για εργασίες με υψηλούς κινδύνους ή νέες τεχνολογίες.
Η ακρίβεια της εκτίμησης εξαρτάται από το στάδιο του έργου και την ποσότητα των γνωστών πληροφοριών. Όσο νωρίτερα γίνεται η αξιολόγηση, τόσο μεγαλύτερο είναι το περιθώριο σφάλματος — αυτό είναι φυσιολογικό και πρέπει να λαμβάνεται υπόψη στον προγραμματισμό.
Κώνος αβεβαιότητας (Cone of Uncertainty) — μοντέλο που περιγράφει πώς μειώνεται το περιθώριο σφάλματος της εκτίμησης καθώς προχωρά το έργο. Στο στάδιο της σύλληψης, το περιθώριο σφάλματος είναι 400% (η εργασία μπορεί να διαρκέσει από 1 έως 4 μήνες). Τη στιγμή του sprint — 20% (1-1.2 μήνα). Η επίγνωση αυτού του μοντέλου βοηθά να μην απαιτούνται ακριβείς εκτιμήσεις στα πρώιμα στάδια.
Σχετική εκτίμηση (σε story points) είναι ακριβέστερη από την απόλυτη (σε ώρες), επειδή οι άνθρωποι συγκρίνουν καλύτερα εργασίες παρά εκτιμούν χρόνο. “Αυτή η εργασία είναι δύο φορές πιο περίπλοκη από εκείνη” — πιο αξιόπιστη κρίση από το “αυτή η εργασία θα διαρκέσει 8 ώρες”. Οι σχετικές εκτιμήσεις δεν εξαρτώνται από τον συγκεκριμένο προγραμματιστή και διατηρούν την ακρίβεια όταν αλλάζει ο εκτελεστής.
Η ακρίβεια της εκτίμησης μπορεί να βελτιωθεί με συστηματική προσέγγιση, συλλογική συζήτηση και ανάλυση προηγούμενων λαθών. Υπάρχουν αρκετές αποδεδειγμένες πρακτικές.
Κάθε εργασία που εκτιμάται σε περισσότερες από 2 ημέρες πρέπει να αποδομείται σε υποεργασίες. Αρχή: εάν μια εργασία δεν μπορεί να εκτιμηθεί με ακρίβεια 50%, σημαίνει ότι είναι πολύ μεγάλη. Χωρίστε την σε βήματα που είναι κατανοητά και εκτιμήσιμα. Μετά την αποδόμηση, η συνολική εκτίμηση είναι συχνά 1.5-2 φορές μεγαλύτερη από την αρχική.
Κρατήστε ιστορικό εκτιμήσεων και συγκρίνετε με πραγματικό κόστος. Παράδειγμα: “εργασίες που εκτιμήθηκαν σε 3 story points διαρκούν κατά μέσο όρο 4 ημέρες, όχι 2”. Χρησιμοποιήστε την velocity της ομάδας για προβλέψεις: εάν η ομάδα ολοκληρώνει 20 story points ανά sprint, μην προγραμματίζετε 30. Η ανάλυση ακρίβειας προηγούμενων εκτιμήσεων είναι η καλύτερη άσκηση για δεξιότητα εκτίμησης.
Αγκύρωση — ψυχολογικό φαινόμενο όπου η πρώτη εκφρασμένη εκτίμηση επηρεάζει όλους τους συμμετέχοντες. Για να αποφευχθεί η αγκύρωση, στο Planning Poker όλοι δείχνουν κάρτες ταυτόχρονα, όχι με τη σειρά. Βαθμονόμηση — τακτική σύγκριση εκτιμήσεων με την πραγματικότητα: μετά από 10-20 sprints, η ομάδα μαθαίνει να εκτιμά ακριβέστερα χάρη στην ανατροφοδότηση.
Κάθε εργασία περιέχει κρυφούς κινδύνους: ασθένεια προγραμματιστή, πρόβλημα με API, αλλαγή απαιτήσεων. Προσθέστε παράγοντα προσαρμογής κινδύνου στην εκτίμηση: για εργασίες με υψηλούς κινδύνους — πολλαπλασιαστής 1.5-2, με χαμηλούς — 1.1-1.2. Δείξτε διαφανώς στον πελάτη ποιοι κίνδυνοι λαμβάνονται υπόψη και πώς επηρεάζουν τις προθεσμίες.
Τα λάθη κατά την εκτίμηση επαναλαμβάνονται στις περισσότερες ομάδες, ανεξάρτητα από την ωριμότητά τους. Η γνώση αυτών των λαθών είναι το πρώτο βήμα για τη διόρθωσή τους.
Το πιο συνηθισμένο λάθος — εκτίμηση βάσει του καλύτερου σεναρίου: “αν όλα πάνε τέλεια, θα το κάνουμε σε 3 ημέρες”. Στην πραγματικότητα, τίποτα δεν πάει τέλεια: σφάλματα, ερωτήσεις σχετικά με απαιτήσεις, εξαρτώμενες εργασίες. Λύση: εκτιμήστε βάσει του πιθανότερου σεναρίου, όχι του αισιόδοξου. Χρησιμοποιήστε PERT για να λάβετε υπόψη τη μεταβλητότητα.
Όταν ο διαχειριστής λέει “χρειάζεται μέχρι Παρασκευή”, ο προγραμματιστής υποσυνείδητα προσαρμόζει την εκτίμηση σε αυτήν την προθεσμία. Εκτίμηση υπό πίεση είναι πάντα υποτιμημένη και οδηγεί σε καθυστερήσεις. Λύση: η εκτίμηση πρέπει να προηγείται της προθεσμίας, όχι το αντίστροφο. Πρώτα εκτιμά η ομάδα, μετά τα μέρη συμφωνούν για τις προθεσμίες.
Πολυπλοκότητα εργασίας (πόση σκέψη) και χρόνος (πόση δουλειά) — διαφορετικές μετρήσεις. Μια εργασία μπορεί να είναι απλή αλλά χρονοβόρα (κωδικοποίηση 10 οθονών). Ή περίπλοκη αλλά γρήγορη (εύρεση σφάλματος σε legacy). Στα story points συνήθως εκτιμάται η πολυπλοκότητα, ενώ ο χρόνος προκύπτει από την velocity της ομάδας.
Ο προγραμματιστής δεν εργάζεται 8 ώρες συνεχόμενα σε μία εργασία: συναντήσεις, code review, βοήθεια σε συναδέλφους, διοικητικά καθήκοντα καταναλώνουν 30-50% του χρόνου εργασίας. Οι εναλλαγές περιβάλλοντος πρέπει να λαμβάνονται υπόψη στην εκτίμηση: στην πραγματικότητα, ο προγραμματιστής γράφει κώδικα 3-4 ώρες την ημέρα.
Συχνές Ερωτήσεις
Ανάπτυξη — δημιουργική διαδικασία με υψηλή αβεβαιότητα. Σε αντίθεση με τις κατασκευές ή την παραγωγή, όπου κάθε βήμα είναι γνωστό, στην Πληροφορική κάθε εργασία είναι μοναδική. Τα άγνωστα άγνωστα (unknown unknowns) — η κύρια αιτία ανακρίβειας. Ακόμη και έμπειρη ομάδα κάνει λάθος στο 30-50% των εκτιμήσεων. Αυτό είναι φυσιολογικό και πρέπει να λαμβάνεται υπόψη στον προγραμματισμό.
Story points είναι καλύτερα για προγραμματισμό sprint, επειδή είναι σχετικά και δεν εξαρτώνται από τον εκτελεστή. Ώρες χρειάζονται για συμβόλαια και εξωτερική αναφορά, αλλά είναι λιγότερο ακριβείς. Βέλτιστος συνδυασμός: οι εργασίες εκτιμώνται σε story points και οι προθεσμίες μετατρέπονται μέσω velocity της ομάδας σε ημερολογιακές ημέρες.
Για εργασίες με άγνωστες τεχνολογίες, πρώτα χρησιμοποιήστε Spiko (έρευνα περιορισμένου χρόνου). Μετά την έρευνα, η ομάδα κατανοεί την πολυπλοκότητα και μπορεί να δώσει ρεαλιστική εκτίμηση. Προσθέστε πολλαπλασιαστή 2-3 στη συνήθη εκτίμηση και συμπεριλάβετε 50% απόθεμα για απρόβλεπτες δυσκολίες.
Δείξτε την αποδόμηση — χωρίστε την εργασία σε υποεργασίες με εκτίμηση καθεμίας. Εξηγήστε από τι αποτελείται ο χρόνος: ανάπτυξη, δοκιμές, code review, τεκμηρίωση. Προτείνετε εναλλακτικές: μείωση πεδίου, απλοποίηση λειτουργικότητας ή διαίρεση σε στάδια. Ποτέ μην μειώνετε την εκτίμηση χωρίς αλλαγή απαιτήσεων.
Επανεκτίμηση είναι απαραίτητη όταν εμφανίζονται νέες πληροφορίες για την εργασία: αποκαλύφθηκαν πρόσθετες απαιτήσεις, εντοπίστηκαν τεχνικοί περιορισμοί ή άλλαξε η προτεραιότητα. Εντός sprint, οι εργασίες δεν επανεκτιμώνται — η εστίαση είναι στην ολοκλήρωση. Μεταξύ sprints, το backlog επανεκτιμάται στα πλαίσια του grooming.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης