Μια αμειβόμενη φάση διερεύνησης (discovery) πρέπει να καταλήγει σε αποφάσεις, όχι μόνο σε έγγραφα: τι θα φτιαχτεί πρώτο και τι θα μείνει εκτός, ποιοι είναι οι κύριοι κίνδυνοι και πώς δοκιμάστηκαν, μια εκτίμηση με τη μορφή εύρους μαζί με τις παραδοχές της, και ένα πρώτο ορόσημο έτοιμο να ξεκινήσει. Κρίνετέ τη με ένα τεστ: θα μπορούσατε να πάτε τα αποτελέσματα σε μια άλλη ομάδα και να ξεκινήσετε την κατασκευή χωρίς να αρχίσετε από την αρχή;
Η διερεύνηση υπάρχει για να παίρνονται οι μεγάλες αποφάσεις όσο είναι φθηνές
Η διερεύνηση (discovery), που λέγεται επίσης scoping ή inception, είναι μια σύντομη αμειβόμενη φάση πριν από την κατασκευή ενός λογισμικού. Δουλειά της είναι να αφαιρέσει την αβεβαιότητα που κάνει τις εκτιμήσεις αναξιόπιστες και να κλείσει τις μεγάλες αποφάσεις όσο είναι ακόμη φθηνό να αλλάξουν. Η αλλαγή μιας απόφασης στα χαρτιά κοστίζει μια συζήτηση· η αλλαγή της αφού γραφτεί ο κώδικας κοστίζει ξαναδουλειά.
Οι πρώτες εκτιμήσεις λογισμικού έχουν μεγάλο εύρος, και στενεύουν μόνο καθώς οι αποφάσεις αφαιρούν την αβεβαιότητα, ένα φαινόμενο που συχνά λέγεται κώνος της αβεβαιότητας. Οι συσκέψεις από μόνες τους δεν τις στενεύουν. Η διερεύνηση αξίζει τα χρήματά της όταν επιβάλλει αυτές τις αποφάσεις: τι πρέπει να κάνει πρώτα το προϊόν, ποιοι περιορισμοί είναι δεδομένοι και ποιοι τεχνικοί κίνδυνοι είναι πραγματικοί.
Συμφωνήστε τι θα παραλάβετε πριν ξεκινήσει η διερεύνηση
Αγοράστε τη διερεύνηση όπως κάθε άλλο παραδοτέο: καθορισμένη διάρκεια, σταθερή τιμή, ονομαστικά πρόσωπα και γραπτή λίστα αποτελεσμάτων. Αν ένας συνεργάτης δεν μπορεί να πει τι θα έχετε στα χέρια σας στο τέλος, η φάση μπορεί να καταλήξει σε workshops χωρίς τέλος. Ένα πλήρες σύνολο αποτελεσμάτων καλύπτει συνήθως τα εξής.
- Μια διατύπωση του προβλήματος: ποιοι είναι οι χρήστες, τι χρειάζονται και πώς θα μετρηθεί η επιτυχία
- Το αντικείμενο της πρώτης έκδοσης: τι περιλαμβάνεται, τι μένει εκτός και τι αναβάλλεται
- Οι βασικές διαδρομές χρήστη, σκιτσαρισμένες ή σε πρωτότυπο όπου υπάρχει αβεβαιότητα
- Ένα περίγραμμα αρχιτεκτονικής: κύρια στοιχεία, ενσωματώσεις, δεδομένα και φιλοξενία, με τις επιλογές που εξετάστηκαν
- Ένα μητρώο κινδύνων που ιεραρχεί τι θα μπορούσε να κάνει το έργο να αποτύχει, και πώς θα αντιμετωπιστεί κάθε κίνδυνος
- Μια εκτίμηση με τη μορφή εύρους μαζί με τις παραδοχές της, και ένα πρώτο ορόσημο με κριτήρια παραλαβής
- Ένα αρχείο αποφάσεων που καταγράφει τι αποφασίστηκε, από ποιον και γιατί
Αναζητήστε αποφάσεις, όχι μια στοίβα έγγραφα
Μια αναφορά διερεύνησης μπορεί να είναι μακροσκελής και να μην αποφασίζει τίποτα. Διαβάστε τη για δεσμεύσεις: ποιες λειτουργίες μπαίνουν στην πρώτη έκδοση και ποιες όχι, ποιες επιλογές τεχνολογίας και φιλοξενίας γίνονται, ποιες ενσωματώσεις χρειάζονται και ποια ερωτήματα μένουν ανοιχτά, το καθένα με υπεύθυνο και ημερομηνία.
Ένα χρήσιμο σήμα είναι τι σας συμβούλευσε ο συνεργάτης να μην κάνετε. Αν το αντικείμενο είναι μεγαλύτερο στο τέλος απ' ό,τι στην αρχή και δεν κόπηκε τίποτα, η διερεύνηση μάλλον κατέγραψε τη λίστα επιθυμιών σας αντί να τη δοκιμάσει. Μερικές φορές το σωστό συμπέρασμα είναι να αγοράσετε ένα υπάρχον προϊόν, να φτιάξετε λιγότερα ή να μη φτιάξετε τίποτα, και μια καλή φάση διερεύνησης το λέει.
Οι πιο ριψοκίνδυνες παραδοχές πρέπει να δοκιμάζονται, όχι μόνο να καταγράφονται
Κάθε έργο στηρίζεται σε μερικές παραδοχές που θα άλλαζαν τα πάντα αν ήταν λάθος: ένα εξωτερικό API που δεν υποστηρίζει τη λειτουργία που χρειάζεστε, δεδομένα πιο ακατάστατα απ' ό,τι αναμενόταν, ένας στόχος απόδοσης που ο επιλεγμένος σχεδιασμός δεν μπορεί να πετύχει ή χρήστες που δεν θα αλλάξουν τον τρόπο που δουλεύουν.
Ζητήστε από τον συνεργάτη να κατονομάσει νωρίς αυτές τις παραδοχές και να δοκιμάσει τις χειρότερες κατά τη διερεύνηση, με ένα τεχνικό spike, ένα πρωτότυπο που μπορείτε να πατήσετε ή μια συνεδρία εργασίας με τους ανθρώπους που λειτουργούν το σχετικό σύστημα. Ένας κίνδυνος που δοκιμάστηκε είναι πληροφορία. Ένας κίνδυνος που απλώς καταγράφηκε παραμένει εικασία.
Μια ειλικρινής εκτίμηση είναι ένα εύρος με τις παραδοχές του
Ένας μόνο αριθμός στο τέλος της διερεύνησης κρύβει την αβεβαιότητα που απομένει. Ζητήστε ένα εύρος για την πρώτη έκδοση, αναλυμένο ανά κύριο στοιχείο, με τις παραδοχές που θα το ανέβαζαν ή θα το κατέβαζαν. Για παράδειγμα: η εκτίμηση υποθέτει ότι το API του παρόχου πληρωμών υποστηρίζει ήδη μερικές επιστροφές χρημάτων· αν όχι, προσθέστε τη δουλειά ενσωμάτωσης που αναφέρεται χωριστά.
Ρωτήστε ποια μέρη της εκτίμησης είναι σταθερά και ποια παραμένουν αβέβαια, και πώς θα τα αντιμετωπίσει το εμπορικό μοντέλο. Τα σταθερά μέρη μπορούν να τιμολογηθούν σε σταθερή τιμή· τα αβέβαια χρειάζονται έναν προϋπολογισμό και ένα σημείο όπου αποφασίζετε ξανά. Το πρώτο ορόσημο πρέπει να είναι προδιαγεγραμμένο αρκετά καλά ώστε να μπορεί να παραδοθεί σε σταθερή τιμή.
Κρατήστε μια έξοδο διαφυγής σε κάθε βήμα
Η διερεύνηση είναι επίσης η φθηνότερη στιγμή για να αποχωρήσετε. Βεβαιωθείτε ότι σας ανήκουν όλα όσα παράγει, από έγγραφα και διαγράμματα μέχρι πρωτότυπα και κώδικα, και ότι τα αποτελέσματα είναι γραμμένα για οποιαδήποτε ικανή ομάδα, όχι μόνο για τον συνεργάτη που τα έγραψε. Πρέπει να είστε ελεύθεροι να κατασκευάσετε με αυτόν τον συνεργάτη, να δώσετε τα αποτελέσματα σε άλλη ομάδα, να κατασκευάσετε εσωτερικά ή να σταματήσετε.
Μεταφέρετε την ίδια λογική στο σχέδιο που ακολουθεί: ένα πρώτο ορόσημο με κριτήρια παραλαβής, και μετά ένα σημείο απόφασης όπου μπορείτε να συνεχίσετε, να αλλάξετε κατεύθυνση ή να τερματίσετε τη συνεργασία. Έτσι ξεκινάμε τα έργα στην SDK Enterprises: γραπτό αντικείμενο, σταθερό πρώτο ορόσημο και ονομαστικοί μηχανικοί, ώστε να βλέπετε το σχέδιο πριν δεσμευτείτε σε μεγαλύτερο προϋπολογισμό. Όταν χρειάζεστε μόνο συμβουλή, παίρνετε μια γραπτή απάντηση πάνω στην οποία μπορεί να δράσει η δική σας ομάδα, είτε κατασκευάσετε μαζί μας είτε όχι.
Έξι ερωτήσεις που δείχνουν αν η διερεύνηση άξιζε τα χρήματά της
Όταν τελειώσει η φάση, ελέγξτε τα αποτελέσματα με αυτές τις ερωτήσεις. Αν οι περισσότερες απαντήσεις είναι «ναι», τα χρήματα αγόρασαν σαφήνεια. Αν οι περισσότερες είναι «όχι», πληρώσατε για workshops.
- Θα μπορούσε μια άλλη ομάδα να ξεκινήσει την κατασκευή από αυτά τα αποτελέσματα χωρίς να επαναλάβει τη διερεύνηση;
- Μίλησε ο συνεργάτης με τους χρήστες και με τους ανθρώπους που λειτουργούν τα σχετικά συστήματα, όχι μόνο με τον χορηγό του έργου;
- Δοκιμάστηκαν οι πιο ριψοκίνδυνες παραδοχές, με τα αποτελέσματα καταγεγραμμένα;
- Είναι η εκτίμηση ένα εύρος με σαφείς παραδοχές αντί για έναν μόνο αριθμό;
- Κόπηκε, αναβλήθηκε ή αμφισβητήθηκε κάτι;
- Είναι το πρώτο ορόσημο προδιαγεγραμμένο αρκετά καλά ώστε να μπορεί να γίνει δεκτό ή να απορριφθεί;
Τα βασικά σημεία
- Αγοράστε τη διερεύνηση με καθορισμένη διάρκεια, σταθερή τιμή, ονομαστικά πρόσωπα και γραπτή λίστα αποτελεσμάτων.
- Κρίνετε τα αποτελέσματα από τις αποφάσεις που περιέχουν, μαζί με όσα κόπηκαν ή όσα σας συμβούλευσαν να μην κάνετε.
- Οι πιο ριψοκίνδυνες παραδοχές πρέπει να δοκιμάζονται κατά τη διερεύνηση, όχι μόνο να καταγράφονται σε ένα μητρώο κινδύνων.
- Περιμένετε την εκτίμηση ως εύρος με παραδοχές, και ένα πρώτο ορόσημο προδιαγεγραμμένο αρκετά καλά ώστε να τιμολογηθεί.
- Να σας ανήκει κάθε αποτέλεσμα, ώστε να μπορείτε να κατασκευάσετε με αυτόν τον συνεργάτη, με άλλη ομάδα ή καθόλου.
Συχνές ερωτήσεις
Πρέπει η διερεύνηση να πληρώνεται ή μπορεί ένας συνεργάτης να την κάνει δωρεάν;
Ο δωρεάν προσδιορισμός του αντικειμένου είναι μέρος της πώλησης, οπότε σταματά σε ό,τι χωρά σε μια πρόταση. Η πληρωμένη διερεύνηση αγοράζει χρόνο για να διαβαστεί ο κώδικάς σας, να γίνουν συζητήσεις με τους χρήστες σας και να δοκιμαστούν οι κίνδυνοι, καθώς και αποτελέσματα που σας ανήκουν. Κρατήστε τη φάση σύντομη και με σταθερή τιμή, ώστε η δέσμευση να μένει μικρή.
Πόσο πρέπει να διαρκεί μια φάση διερεύνησης;
Όσο χρειάζεται για να απαντηθούν τα ερωτήματα που εμποδίζουν μια αξιόπιστη εκτίμηση, και όχι περισσότερο. Συμφωνήστε τη διάρκεια από την αρχή, με βάση το μέγεθος του προϊόντος και τον αριθμό των συστημάτων που εμπλέκονται, και κλείστε με απόφαση για το πρώτο ορόσημο αντί για παράταση της διερεύνησης.
Κι αν η διερεύνηση δείξει ότι το έργο δεν αξίζει να κατασκευαστεί;
Τότε έκανε τη δουλειά της με το χαμηλότερο δυνατό κόστος. Μια καλή φάση διερεύνησης μπορεί να καταλήξει ότι πρέπει να αγοράσετε ένα υπάρχον προϊόν, να φτιάξετε μια μικρότερη πρώτη έκδοση ή να σταματήσετε, και κρατάτε τα ευρήματα σε κάθε περίπτωση.