Ποιος συντηρεί το λογισμικό που δημιουργούμε με τη βοήθεια της ΤΝ;
Ποιος συντηρεί μια εφαρμογή που φτιάχτηκε με ΤΝ; Ένα υποθετικό γυμναστήριο δείχνει τι απαιτούν οι κρατήσεις, οι πληρωμές, οι ενημερώσεις και η υποστήριξη.
Ας φανταστούμε ότι φτάνουμε σε ένα ομαδικό μάθημα γυμναστικής με την επιβεβαίωση της κράτησης στο κινητό μας και μαθαίνουμε ότι η τελευταία θέση έχει δοθεί και σε κάποιον άλλο. Ο γυμναστής έχει μια γεμάτη αίθουσα, η υποδοχή έχει δύο επιβεβαιώσεις και τα δύο μέλη έχουν οργανώσει το απόγευμά τους για να βρίσκονται εκεί.
Σε αυτό το υποθετικό παράδειγμα, μια μικρή ομάδα δημιουργεί μια εφαρμογή κινητού με τη βοήθεια της τεχνητής νοημοσύνης, προσφέροντας στα μέλη πρόγραμμα μαθημάτων, κρατήσεις, πληρωμές, υπενθυμίσεις και μια οθόνη για τη συνδρομή τους. Το γυμναστήριο αποκτά έναν ευκολότερο τρόπο διαχείρισης των συμμετοχών και η ομάδα βλέπει με ικανοποίηση κάτι που έφτιαξε να γίνεται χρήσιμο.
Πριν από την εφαρμογή, ας φανταστούμε την υπάλληλο υποδοχής να δέχεται κρατήσεις τηλεφωνικά και να ελέγχει τα ονόματα σε μια κοινή λίστα. Πλέον τα μέλη μπορούν να κλείσουν θέση αφού το γυμναστήριο έχει κλείσει, οι γυμναστές βλέπουν τις συμμετοχές πριν φτάσουν και η υποδοχή αφιερώνει λιγότερο χρόνο σε καθημερινές ερωτήσεις. Υπάρχει ένας καλός λόγος να δημιουργηθεί αυτή η εφαρμογή και ένας καλός λόγος να χαρεί η ομάδα την πρώτη της έκδοση.
Καθώς αλλάζουν αυτές οι συνήθειες, η εφαρμογή γίνεται μέρος της λειτουργίας του γυμναστηρίου. Όταν δύο επιβεβαιώσεις φτάσουν στην υποδοχή, η ομάδα χρειάζεται να καταλάβει τι συνέβη και να βοηθήσει όσους επηρεάστηκαν, ενώ οι υπόλοιπες κρατήσεις της βραδιάς συνεχίζονται. Με την πρώτη έκδοση, το γυμναστήριο αναλαμβάνει μια συνεχή ευθύνη και κάποιος χρειάζεται τον χρόνο και την αρμοδιότητα να την αναλάβει στην πράξη.
Η πρώτη κράτηση δημιουργεί μια δέσμευση
Για την πρώτη έκδοση, ζητάμε από την ΤΝ να βοηθήσει στην υλοποίηση της κράτησης και παρακολουθούμε το αποτέλεσμα από την επιλογή του μαθήματος μέχρι την επιβεβαίωση. Καθώς το ελέγχουμε, χρειάζεται επίσης να αποφασίσουμε τι εγγυάται αυτή η επιβεβαίωση. Στη δική μας εφαρμογή, ας ορίσουμε τον κανόνα ξεκάθαρα: κάθε επιβεβαιωμένη κράτηση δεσμεύει μία θέση και το σύνολο των επιβεβαιωμένων κρατήσεων πρέπει να παραμένει μέσα στη χωρητικότητα του μαθήματος.
Για να διερευνήσουμε την αρχική σκηνή, ας υποθέσουμε ότι ανακαλύπτουμε πως και τα δύο αιτήματα έλεγξαν τη διαθεσιμότητα πριν κάποιο από αυτά δεσμεύσει την τελευταία θέση. Το καθένα βρήκε μία θέση διαθέσιμη, οπότε και τα δύο έλαβαν επιβεβαίωση. Ο αριθμός στην οθόνη ήταν σωστός τη στιγμή που διαβάστηκε, αλλά η δέσμευση της θέσης δεν προστατευόταν από ένα άλλο αίτημα που επιχειρούσε το ίδιο πράγμα.
Η διόρθωσή μας θα χρειαζόταν να κάνει τη δέσμευση της θέσης μία ενιαία, προστατευμένη ενέργεια στην υπηρεσία που διαχειρίζεται τις κρατήσεις. Το ένα αίτημα μπορεί να πετύχει και το άλλο πρέπει να λάβει σαφή απάντηση ότι το μάθημα έχει γεμίσει. Θα ελέγχαμε επίσης τι συμβαίνει όταν ένα κινητό επαναλαμβάνει το ίδιο αίτημα αφού χάσει τη σύνδεσή του, ώστε μία προσπάθεια να μη μετατραπεί σιωπηρά σε δύο κρατήσεις. Αυτές οι περιπτώσεις μάς δίνουν συγκεκριμένη συμπεριφορά να ελέγξουμε πριν δεχτούμε μια προτεινόμενη διόρθωση.
Η ΤΝ μπορεί να μας βοηθήσει να προτείνουμε αυτές τις δοκιμές και να εξετάσουμε την υλοποίηση, αλλά χρειάζεται να τις συνδέσουμε με τους πραγματικούς κανόνες του γυμναστηρίου. Αν η ίδια λανθασμένη παραδοχή διαμορφώσει τόσο την υλοποίηση όσο και τις δοκιμές της, η συμφωνία μεταξύ τους μας δίνει περιορισμένη σιγουριά. Χρειάζεται να συγκρίνουμε και τα δύο με τη συμπεριφορά που συμφωνήσαμε να προσφέρουμε.
Αυτές οι ευθύνες ανήκουν στην ανάπτυξη λογισμικού ανεξάρτητα από το ποιος γράφει τον κώδικα. Με την ΤΝ, θα έκανα την εξήγηση της προτεινόμενης αλλαγής μέρος της αποδοχής της, συμπεριλαμβάνοντας το πού ελέγχεται η χωρητικότητα, πώς αντιμετωπίζεται ένα επαναλαμβανόμενο αίτημα και ποια στοιχεία δείχνουν ότι το αρχικό πρόβλημα αποτρέπεται πλέον. Η εξήγηση θα πρέπει να παραπέμπει στην υλοποίηση και σε μια δοκιμή που μπορούμε να εκτελέσουμε. Έτσι, ο επόμενος άνθρωπος έχει κάτι που μπορεί να εξετάσει όταν μια άλλη λειτουργία επηρεάσει τις κρατήσεις.

Ένα πρόβλημα πληρωμής φτάνει στην υποδοχή
Λίγες εβδομάδες μετά την υποθετική έναρξη λειτουργίας, ένα μέλος πληρώνει για ένα μάθημα χωρίς να λάβει επιβεβαίωση κράτησης. Ο πάροχος πληρωμών έχει καταγράψει επιτυχημένη χρέωση, ενώ η εφαρμογή μας δεν έχει ολοκληρωμένη κράτηση. Το μέλος προσπαθεί ξανά, καθώς στην οθόνη δεν υπάρχει κάτι που να εξηγεί τι συνέβη.
Η προηγούμενη διόρθωση της χωρητικότητας εξακολουθεί να έχει σημασία: θα πρέπει να αποτρέπει το να δώσουμε σε αυτό το μέλος μια θέση που έχει ήδη πάρει κάποιος άλλος. Πλέον χρειάζεται να συμφωνήσουν δύο μέρη του συστήματος που διαφωνούν για το πόσο έχει προχωρήσει η κράτηση. Μια επιτυχημένη χρέωση μάς ενημερώνει για την πληρωμή, ενώ μια επιβεβαιωμένη κράτηση μάς λέει αν το μέλος έχει θέση.
Πριν αλλάξουμε τον κώδικα, χρειάζεται να εξακριβώσουμε την κατάσταση της συναλλαγής. Θα θέλαμε ένα αναγνωριστικό που να συνδέει την απόπειρα κράτησης με την πληρωμή, έναν τρόπο να εντοπίσουμε άλλες προσπάθειες στην ίδια κατάσταση και μια διαδικασία αποκατάστασης που να αποφεύγει νέα χρέωση του μέλους. Κάποιος χρειάζεται επίσης την αρμοδιότητα να αποφασίσει τι γίνεται αν το μάθημα έχει πλέον γεμίσει, καθώς και πώς ο πελάτης θα λάβει επιστροφή χρημάτων και μια εξήγηση.
Σε αυτό το σημείο, η παρακολούθηση της λειτουργίας γίνεται μέρος της εξυπηρέτησης του πελάτη. Οι οδηγίες της Google για την παρακολούθηση κατανεμημένων συστημάτων διακρίνουν το τι έχει πάει στραβά από το γιατί συνέβη. Στη δική μας εφαρμογή, θα εφαρμόζαμε αυτή τη διάκριση εντοπίζοντας πληρωμένες προσπάθειες χωρίς ολοκληρωμένη κράτηση και στη συνέχεια εξετάζοντας τα καταγεγραμμένα συμβάντα για να βρούμε την αιτία.
Ένας βοηθός ΤΝ θα μπορούσε να εντοπίσει τον σχετικό κώδικα και να προτείνει μια διόρθωση. Θα μπορούσαμε επίσης να του ζητήσουμε να προτείνει έναν τρόπο εντοπισμού των εγγραφών που επηρεάστηκαν και στη συνέχεια να ελέγξουμε την επιλογή πριν επιτρέψουμε αλλαγές. Η ενημέρωση μιας πραγματικής κράτησης ή η έναρξη μιας επιστροφής χρημάτων χρειάζεται ξεχωριστή απόφαση από την ανάγνωση των εγγραφών, με σαφή καταγραφή του τι άλλαξε και έλεγχο του αποτελέσματος.
Παράλληλα, η υπάλληλος υποδοχής χρειάζεται μια απάντηση που μπορεί να χρησιμοποιήσει χωρίς να ερμηνεύει τεχνικές καταγραφές. Στο παράδειγμά μας, μια μικρή οθόνη υποστήριξης θα μπορούσε να δείχνει ότι η πληρωμή ελήφθη, η κράτηση παραμένει σε εκκρεμότητα και ένας συγκεκριμένος άνθρωπος τη διερευνά. Έτσι, η υποδοχή έχει κάτι χρήσιμο να πει στο μέλος και η επόμενη βάρδια μπορεί να συνεχίσει τη συζήτηση χωρίς να ξεκινήσει από την αρχή.
Αφού λυθεί το άμεσο πρόβλημα, η ομάδα μπορεί να προσθέσει μια δοκιμή για αυτή τη μερική αποτυχία, έναν τρόπο εντοπισμού της και μια σύντομη διαδικασία αποκατάστασης. Αυτή η δουλειά χρειάζεται χώρο στο πρόγραμμα. Αν όλοι έχουν ήδη δεσμευτεί για την επόμενη λειτουργία, χρειάζεται να επιλέξουμε ξεκάθαρα τι θα περιμένει όσο ολοκληρώνουμε τη διόρθωση και τη διαδικασία που θα μπορούν να χρησιμοποιήσουν όσοι υποστηρίζουν το γυμναστήριο.

Ένας νέος κανόνας συναντά τις υπάρχουσες κρατήσεις
Λίγους μήνες αργότερα, το γυμναστήριο ζητά οι ακυρώσεις να γίνονται τουλάχιστον δώδεκα ώρες πριν από το μάθημα, αντί για έξι. Με μια πρώτη ματιά, έχουμε έναν αριθμό να αλλάξουμε και κάποια κείμενα να ενημερώσουμε. Οι υπάρχουσες κρατήσεις προσθέτουν σε αυτό το αίτημα ένα ιστορικό που χρειάζεται να λάβουμε υπόψη.
Στο παράδειγμά μας, ας υποθέσουμε ότι το γυμναστήριο αποφασίζει πως όσες κρατήσεις έχουν ήδη γίνει διατηρούν τους αρχικούς όρους. Ένα μέλος που έκανε κράτηση πριν από την αλλαγή και ακυρώνει οκτώ ώρες πριν από το μάθημα παραμένει μέσα στην παλιά προθεσμία. Κάποιος που έκανε κράτηση με τους νέους όρους και ακυρώνει την ίδια στιγμή έχει αργήσει. Και τα δύο αποτελέσματα ακολουθούν την απόφαση του γυμναστηρίου και η υποδοχή χρειάζεται να μπορεί να εξηγήσει τη διαφορά.
Πλέον χρειάζεται να κρατάμε ποιοι όροι ισχύουν για κάθε κράτηση και να εμφανίζουμε τη σωστή προθεσμία όταν το μέλος την ανοίγει, ακόμη και σε παλαιότερη έκδοση της εφαρμογής. Η οθόνη υποστήριξης από το συμβάν της πληρωμής αποκτά άλλη μια χρήσιμη λειτουργία: να δείχνει ποια πολιτική ίσχυε όταν έγινε η κράτηση.
Μόλις υπάρχει αυτή η απόφαση, μπορούμε να αναθέσουμε στην ΤΝ μια πολύ σαφέστερη εργασία. Ένα αίτημα να απαιτείται ειδοποίηση ακύρωσης δώδεκα ώρες πριν από το μάθημα, αντί για έξι, αφήνει αδιευκρίνιστη τη μεταχείριση των υπαρχουσών κρατήσεων. Μια χρήσιμη οδηγία περιλαμβάνει επίσης την απόφαση διατήρησης των όρων τους, τα δύο παραδείγματα ακύρωσης οκτώ ώρες πριν και την απαίτηση να εμφανίζεται η αντίστοιχη προθεσμία. Έτσι μπορούμε να ελέγξουμε την παραγόμενη αλλαγή με βάση κάτι πιο ολοκληρωμένο από τον ενημερωμένο αριθμό.
Θα κρατούσα μια σύντομη καταγραφή της απόφασης μαζί με την υλοποίηση, εξηγώντας γιατί διατηρούνται οι παλιοί όροι και πώς αποτυπώνονται στο σύστημα. Ένας μελλοντικός συντηρητής θα πρέπει να μπορεί να τη διαβάσει πριν απλοποιήσει κάτι που διαφορετικά ίσως μοιάζει με περιττή πολυπλοκότητα. Τα μέλη που έκαναν κράτηση με εκείνους τους όρους εξακολουθούν να χρειάζονται αυτή τη διάκριση και μετά την απλοποίηση.

Μια ενημέρωση συνυπάρχει με παλαιότερες εκδόσεις
Αργότερα μέσα στον χρόνο, ας φανταστούμε ότι μια ενημέρωση του λειτουργικού συστήματος του κινητού αναδεικνύει ένα πρόβλημα στον τρόπο που η εφαρμογή χειρίζεται τις υπενθυμίσεις. Οι κρατήσεις εξακολουθούν να εμφανίζονται στην εφαρμογή, αλλά τα μέλη που επηρεάζονται σταματούν να λαμβάνουν την υπενθύμιση που έχουν συνηθίσει. Μια χαμένη υπενθύμιση φέρνει ξανά την πολιτική ακύρωσης στη συζήτηση, καθώς ένα μέλος μπορεί να δει την κράτησή του αφού έχει περάσει η προθεσμία. Το γυμναστήριο χρειάζεται να αποφασίσει πώς θα ανταποκριθεί όσο η ομάδα διερευνά το πρόβλημα.
Αναπαράγουμε το πρόβλημα και ετοιμάζουμε μια διόρθωση, ενώ κάποια μέλη συνεχίζουν να χρησιμοποιούν παλαιότερη έκδοση της εφαρμογής και άλλα εγκαθιστούν τη νέα. Οι κανόνες κρατήσεων και οι αποφάσεις που έχουν προστεθεί στην πορεία εξακολουθούν να χρειάζεται να λειτουργούν σε αυτόν τον συνδυασμό εκδόσεων.
Το σχέδιο διάθεσης χρειάζεται να προβλέπει αυτή τη συνύπαρξη. Θα ελέγχαμε τη συμπεριφορά στις συσκευές που επηρεάζονται, θα δοκιμάζαμε τη συνεργασία των εκδόσεων που συνεχίζουμε να υποστηρίζουμε με την υπηρεσία και θα αποφασίζαμε πώς θα εντοπίσουμε μια επιδείνωση μετά τη διάθεση. Οι οδηγίες της Google για τη σταδιακή διάθεση νέων εκδόσεων περιγράφουν την αξιολόγηση μιας αλλαγής σε περιορισμένο κοινό πριν από την επέκτασή της. Όπου τα εργαλεία διάθεσης το επιτρέπουν, αυτή είναι μια χρήσιμη προσέγγιση για να περιορίσουμε πόσους χρήστες θα επηρεάσει μια προβληματική έκδοση.
Χρειάζεται επίσης ακρίβεια όταν μιλάμε για αποκατάσταση. Η διακοπή της περαιτέρω διάθεσης δεν αφαιρεί μια ενημέρωση από τα κινητά που την έχουν ήδη εγκαταστήσει. Ανάλογα με το πρόβλημα, μπορεί να χρειαστούμε μια συμβατή αλλαγή στην υπηρεσία, έναν τρόπο απενεργοποίησης της συγκεκριμένης λειτουργίας ή μια ακόμη έκδοση της εφαρμογής. Αξίζει να εξετάσουμε αυτές τις επιλογές όσο έχουμε ακόμη χρόνο να επιλέξουμε ανάμεσά τους.
Κάποιος χρειάζεται επίσης την πρόσβαση και τη γνώση για να δημιουργήσει το πακέτο της διορθωμένης εφαρμογής, να το υπογράψει ψηφιακά, να το διανείμει και να παρακολουθήσει τη λειτουργία του. Ο οργανισμός χρειάζεται τον έλεγχο αυτών των λογαριασμών και έναν δεύτερο άνθρωπο που να μπορεί να ακολουθήσει τη διαδικασία. Μια διόρθωση γίνεται χρήσιμη στα μέλη όταν μπορούμε πράγματι να τη φέρουμε στα κινητά τους.
Υπάρχει επίσης μια πιο ήσυχη πλευρά αυτής της δουλειάς. Στο πλάνο μας για την εφαρμογή, θα κρατούσαμε χρόνο για να εξετάζουμε τις βιβλιοθήκες και τις εξωτερικές υπηρεσίες από τις οποίες εξαρτάται, να δοκιμάζουμε επερχόμενες αλλαγές και να διατηρούμε λειτουργική τη διαδικασία διάθεσης. Μπορούμε να ζητήσουμε από την ΤΝ να βοηθήσει στην αξιολόγηση μιας ενημέρωσης και να προτείνει τις απαραίτητες αλλαγές, ενώ εμείς αποφασίζουμε ποιες θα γίνουν μαζί και πώς θα τις ελέγξουμε. Αυτός ο χρόνος ανήκει στο κόστος λειτουργίας της εφαρμογής, μαζί με τη φιλοξενία, την υποστήριξη και την επόμενη λειτουργία.

Ο επόμενος συντηρητής παραλαμβάνει τις αποφάσεις μας
Προς το τέλος αυτού του υποθετικού πρώτου χρόνου, ο αρχικός προγραμματιστής αποχωρεί. Ένας άλλος αναλαμβάνει την εφαρμογή, έχοντας στη διάθεσή του έναν βοηθό ΤΝ για να εξερευνήσει τον κώδικα. Η πρώτη του εργασία είναι να προσθέσει μια λίστα αναμονής για τα μαθήματα που έχουν γεμίσει.
Για να προχωρήσει με σιγουριά, χρειάζεται να καταλάβει πώς ελευθερώνεται μια θέση, σε ποιο μέλος προσφέρεται και τι συμβαίνει αν περάσει η προθεσμία αποδοχής. Η λίστα αναμονής συνδέεται πλέον με όσα έχει μάθει η ομάδα: η χωρητικότητα πρέπει να παραμένει προστατευμένη, μια εκκρεμής πληρωμή χρειάζεται προσεκτικό χειρισμό και μια ακύρωση πρέπει να ακολουθεί τους όρους της κράτησής της.
Ας υποθέσουμε ότι ο νέος προγραμματιστής ζητά από έναν βοηθό ΤΝ να απλοποιήσει τον κώδικα ακύρωσης πριν προσθέσει τη λίστα αναμονής. Δύο διαφορετικοί χειρισμοί της πολιτικής μπορεί να φαίνονται σαν επανάληψη μέχρι να γίνει διαθέσιμη η προηγούμενη απόφαση. Θα πρέπει να δώσουμε στον βοηθό την καταγραφή της απόφασης και τις δοκιμές που διατηρούν τους παλιούς όρους και στη συνέχεια να ελέγξουμε ότι η πρότασή του κρατά αυτές τις δεσμεύσεις. Μια καταγραφή που βρίσκεται κάπου αλλού στο έργο βοηθά μόνο όταν ο άνθρωπος ή ο βοηθός που κάνει την αλλαγή τη συμβουλευτεί πραγματικά.
Εδώ αποκτά αξία η δουλειά που αφήνει πίσω της η ομάδα. Ο νέος προγραμματιστής μπορεί να διερευνήσει το πρόβλημα πληρωμής με τη διαδικασία αποκατάστασης, να εξηγήσει τις δύο προθεσμίες ακύρωσης από την καταγραφή της απόφασης και να δοκιμάσει μια διάθεση ακολουθώντας τις οδηγίες. Μπορούμε να του ζητήσουμε να ακολουθήσει μία κράτηση και να φτάσει μια μικρή αλλαγή μέχρι τη δοκιμαστική διάθεση, όσο ο αρχικός προγραμματιστής είναι ακόμη διαθέσιμος. Οι ερωτήσεις που θα προκύψουν δείχνουν τι χρειάζεται ακόμη η παράδοση.

Για αυτή την εφαρμογή, θα έκανα την ευθύνη της συνεχούς λειτουργίας σαφή μέσα από μερικές πρακτικές δεσμεύσεις:
- Ένας συγκεκριμένος άνθρωπος έχει την ευθύνη της υπηρεσίας, με αναπληρωτή που μπορεί να διαθέσει μια διόρθωση.
- Η ομάδα διατηρεί τους κανόνες κρατήσεων και πληρωμών μαζί με τις δοκιμές που τους ελέγχουν.
- Η υποστήριξη μπορεί να εντοπίσει τα μέλη που επηρεάζονται και να ακολουθήσει μια συμφωνημένη διαδικασία αποκατάστασης.
- Υπάρχει χρόνος για ενημερώσεις των βιβλιοθηκών που χρησιμοποιεί η εφαρμογή, δοκιμές σε συσκευές και αλλαγές στις εξωτερικές υπηρεσίες.
- Κάθε πρόταση για νέα λειτουργία περιλαμβάνει τη δουλειά που θα χρειαστεί για την υποστήριξή της μετά τη διάθεση.
Σε μια μικρή ομάδα, αρκετές από αυτές τις ευθύνες μπορεί να ανήκουν στον ίδιο άνθρωπο. Εξακολουθούν να χρειάζονται χρόνο, πρόσβαση και συμφωνία από όποιον αποφασίζει με τι θα ασχοληθεί η ομάδα. Ένας συγκεκριμένος υπεύθυνος μπορεί να συντονίζει τη δουλειά, να μεταφέρει μια εκκρεμή απόφαση στη διεύθυνση του γυμναστηρίου και να εξασφαλίζει ότι ένα πρόβλημα πελάτη φτάνει σε κάποιον που μπορεί να ενεργήσει. Ο αναπληρωτής επιτρέπει να συνεχίζεται αυτή η λειτουργία όταν ο υπεύθυνος απουσιάζει.
Για αυτό το αίτημα της λίστας αναμονής, θα έβαζα από την αρχή στη συζήτηση τη δουλειά που απαιτεί η λειτουργία της. Μια λίστα αναμονής χρειάζεται κανόνες για την προσφορά μιας θέσης και τη λήξη της προθεσμίας αποδοχής, υποστήριξη για μέλη που χάνουν μια προσφορά και συντήρηση όταν αλλάξει ξανά η ροή της κράτησης. Μπορεί να αποφασίσουμε ότι το όφελος δικαιολογεί όλα αυτά ή να κρατήσουμε την πρώτη έκδοση μικρότερη, ώστε η ομάδα να μπορεί να την υποστηρίξει σωστά.
Πριν προσθέσουμε άλλη μια λειτουργία, θα ήθελα να ακολουθήσουμε μαζί μια υπάρχουσα κράτηση, από το άγγιγμα του μέλους στην οθόνη μέχρι τη λίστα συμμετοχών του γυμναστή, και να εξηγήσουμε πώς θα βοηθούσαμε αν κάτι πήγαινε στραβά. Είναι ένας χρήσιμος τρόπος να δούμε τι καταλαβαίνουμε και πού έχουμε ακόμη δουλειά να κάνουμε.
Ας επιστρέψουμε στην υποδοχή έναν χρόνο αργότερα. Δύο μέλη προσπαθούν να κλείσουν την τελευταία θέση και η διορθωμένη ροή κράτησης επιβεβαιώνει το ένα, ενημερώνοντας το άλλο ότι το μάθημα έχει γεμίσει. Αν μια πληρωμή παραμένει σε εκκρεμότητα, η υποδοχή μπορεί να δει την κατάστασή της, να εξηγήσει το επόμενο βήμα και να επικοινωνήσει με τον άνθρωπο που την έχει αναλάβει.
Ο γυμναστής μπορεί να συνεχίσει το μάθημα και το μέλος έχει κάποιον που μπορεί να βοηθήσει. Προς αυτό το αποτέλεσμα θα ήθελα να συνεχίζει να δουλεύει η ομάδα, με την ΤΝ να μας βοηθά στην εργασία και με ανθρώπους που μπορούν να στηρίξουν όσα υπόσχεται η εφαρμογή.

