Μετάβαση στο περιεχόμενο
Wednesday 11 November

Η τεχνητή νοημοσύνη και οι ακούσιες συνέπειές της

Η τεχνητή νοημοσύνη μπορεί να κάνει τις ομάδες πιο γρήγορες, όμως το ζητούμενο είναι αν αυτή η ταχύτητα είναι βιώσιμη. Το κείμενο του James Shore, που είχε δημοσιευθεί αρχικά στο Successful Software blog και αναδημοσιεύεται με την άδεια του συντάκτη, εξετάζει τις ακούσιες συνέπειες της χρήσης AI στην ανάπτυξη λογισμικού.

Πρόκειται για το τρίτο μέρος μιας σειράς σχετικά με τον αντίκτυπο της AI στο software development. Στο πρώτο μέρος εξετάστηκε γιατί έχει σημασία η αποτίμηση του αντίκτυπου και τι πρέπει να αποφεύγεται, ενώ στο δεύτερο μέρος η έμφαση δόθηκε στη μέτρηση της επίδρασης στην ταχύτητα παράδοσης. Εδώ το ενδιαφέρον στρέφεται στη μέτρηση και τη μοντελοποίηση των ακούσιων συνεπειών της χρήσης AI. Στο τέταρτο μέρος, όπως αναφέρεται, θα εξεταστούν τα επιχειρηματικά αποτελέσματα, ενώ ένα επίμετρο θα συγκεντρώνει τα βασικά σημεία μαζί με σημειώσεις που μπορούν να μοιραστούν με τον CFO.

Το βασικό ερώτημα είναι αν η συντηρησιμότητα έχει πραγματική σημασία. Ο συντάκτης υποστηρίζει ότι οι ακούσιες συνέπειες έχουν οικονομικό αποτύπωμα. Αν ο κώδικας δεν συντηρείται εύκολα, οι νέες λειτουργίες χρειάζονται περισσότερο χρόνο και τα σφάλματα αργούν περισσότερο να διορθωθούν. Αν οι άνθρωποι οδηγηθούν σε εξουθένωση, η απόδοσή τους πέφτει, κάποια στιγμή αποχωρούν και μαζί τους χάνεται οργανωσιακή γνώση, κάτι που φέρνει και χρονοβόρους κύκλους προσλήψεων. Αν υπάρξει εξάρτηση από συγκεκριμένη λύση και το κόστος των tokens αυξηθεί, μπορεί να προκύψει δίλημμα ανάμεσα σε υψηλό λογαριασμό και μείωση της ανάπτυξης.

Από τις συζητήσεις που αναφέρει ο συντάκτης, προκύπτει ευρεία συμφωνία ότι η εκτεταμένη χρήση AI παράγει κώδικα που οι άνθρωποι δυσκολεύονται να καταλάβουν. Ωστόσο, δεν υπάρχει συμφωνία για το πόσο σημαντικό είναι αυτό. Αν η συντήρηση γίνεται από την ίδια την AI, έχει σημασία αν ο άνθρωπος μπορεί να κατανοήσει τον κώδικα;

Ο ίδιος σημειώνει ότι για το θέμα υπάρχουν ισχυρές απόψεις, αλλά όχι πολλά απτά στοιχεία. Αυτό που είναι σαφές, γράφει, είναι ότι το κόστος συντήρησης και οι άλλες ακούσιες συνέπειες μετρούν μόνο αν υπάρχουν πράγματι κόστη. Το ζητούμενο, λοιπόν, είναι να φανεί αν υπάρχει επίδραση και, αν υπάρχει, αν είναι αρκετά μεγάλη ώστε να επηρεάζει τις αποφάσεις.

Σε αντίθεση με τη μέτρηση της ταχύτητας, που μπορεί να γίνει με πιο αυστηρό πείραμα, οι ακούσιες συνέπειες εμφανίζονται σταδιακά και με ασάφεια. Οι μετρήσεις θα είναι θορυβώδεις και θα καθυστερούν, οπότε χρειάζονται μοντέλα και σενάρια. Τελικά, οι αποφάσεις θα κριθούν από την κρίση, με βάση τις μετρήσεις και τα μοντέλα, αλλά όχι αποκλειστικά από αυτά.

Ο συντάκτης ξεχωρίζει το κόστος αλλαγής ως την πιο χρήσιμη έννοια για να αποτυπωθεί το μεγαλύτερο μέρος των ακούσιων συνεπειών. Το περιγράφει σαν έναν φόρο πάνω στις αλλαγές του λογισμικού. Όταν το κόστος αλλαγής είναι χαμηλό, και οι σύνθετες αλλαγές απαιτούν χρόνο αλλά παραμένουν εφικτές. Όταν είναι υψηλό, ακόμη και απλές αλλαγές μπορεί να πάρουν εβδομάδες και οι πιο περίπλοκες να μοιάζουν αδύνατες.

Για να το μετρήσει κανείς, ο συντάκτης προτείνει ορισμένους δείκτες. Ένας από αυτούς είναι το ποσοστό value-add, δηλαδή το ποσοστό της προσπάθειας ανάπτυξης που πηγαίνει σε εργασίες που προσθέτουν αξία στην επιχείρηση, όπως νέες λειτουργίες, σε σχέση με το ποσοστό που δαπανάται σε μη παραγωγικές εργασίες, όπως διορθώσεις σφαλμάτων, περιστατικά και χειροκίνητοι κύκλοι δοκιμών και κυκλοφορίας.

Οι μη προστιθέμενης αξίας εργασίες αποκαλούνται «muda». Κάποιες από αυτές είναι αναγκαίες, ακόμη και χρήσιμες, χωρίς όμως να μετατρέπονται σε value-add. Ο συντάκτης δίνει παραδείγματα: οι διορθώσεις σφαλμάτων είναι muda, όπως και οι εκδόσεις λογισμικού, παρότι και τα δύο είναι αναγκαία.

Χρήσιμη, όπως γράφει, είναι και η διάκριση της muda σε προαιρετική και μη προαιρετική. Η προαιρετική αφορά εργασίες που επιλέγει η ομάδα, όπως επενδύσεις σε αλλαγές κώδικα που μειώνουν το μελλοντικό κόστος ανάπτυξης. Η μη προαιρετική είναι εκείνη που επιβάλλεται από τις συνθήκες, όπως bug fixes, incidents και αναβαθμίσεις εξαρτήσεων.

Υπάρχει πάντα ένα βασικό επίπεδο μη προαιρετικής muda, το οποίο λειτουργεί σαν σταθερός φόρος στον χρόνο της ομάδας. Αν όμως αυξάνεται, σημαίνει ότι μειώνεται ο χρόνος για εργασίες αξίας και ανεβαίνουν τα κόστη. Ο ίδιος αναφέρει ότι, όταν είχε τον ρόλο του VP of engineering, το ποσοστό value-add ήταν από τους βασικούς δείκτες του. Η μείωση της muda ήταν προτεραιότητα και, όπως σημειώνει, το αποτέλεσμα ήταν ότι το ποσοστό value-add διπλασιάστηκε σε διάστημα τριών ετών, κάτι που επέτρεψε να προχωρήσουν σημαντικές νέες πρωτοβουλίες χωρίς αύξηση προσωπικού.

Ένας άλλος δείκτης είναι οι DORA metrics, όπως ο χρόνος από την αλλαγή έως την κυκλοφορία, η συχνότητα deployments και ο δείκτης αποτυχίας αλλαγών. Αν η οργάνωση τα παρακολουθεί ήδη, ο συντάκτης θεωρεί ότι αξίζει να παρακολουθούνται και οι μεταβολές τους.

Χρήσιμο είναι και το token usage, αφού τα tokens έχουν άμεσο κόστος. Όσο περισσότερα χρειάζονται για να γίνει μια αλλαγή, τόσο αυξάνεται το κόστος. Ο ίδιος αναγνωρίζει ότι η χρήση tokens μεταβάλλεται για πολλούς λόγους και όχι μόνο λόγω κόστους αλλαγής, όμως επιμένει ότι αξίζει να παρακολουθείται. Με βάση εμπειρικές ενδείξεις, καλύτερα δομημένο λογισμικό είναι ευκολότερο για την AI και κοστίζει λιγότερα tokens.

Ένας από τους μεγαλύτερους παράγοντες μεταβλητότητας στη χρήση tokens είναι η υιοθέτηση από τους χρήστες. Γι’ αυτό, αντί για συνολική εικόνα, ο συντάκτης προτείνει να παρακολουθούνται οι μεταβολές σε ατομικό επίπεδο. Στα διαγράμματα που έχει δει, η χρήση ακολουθεί καμπύλη Pareto. Οι αυξήσεις στο χαμηλό άκρο μπορεί απλώς να δείχνουν εξοικείωση, ενώ οι αυξήσεις στο υψηλό άκρο χρειάζονται περισσότερη διερεύνηση.

Αλλαγές στα μοντέλα, στα harnesses, στα prompts και σε άλλα στοιχεία επηρεάζουν επίσης το token usage. Για τον λόγο αυτό, ο συντάκτης το αντιμετωπίζει ως καθαρά ενδεικτικό δείκτη, που πρέπει να ενεργοποιεί περαιτέρω έρευνα και όχι να χρησιμοποιείται μόνος του.

Από όλους τους δείκτες, το ποσοστό value-add είναι εκείνο που εμπιστεύεται περισσότερο, γιατί απαντά στο κρίσιμο ερώτημα: πού πηγαίνει ο χρόνος;

Η παρακολούθηση δεν χρειάζεται να είναι περίπλοκη. Δεν απαιτούνται timesheets ή λεπτομερής καταγραφή κάθε εργασίας. Το ζητούμενο, λέει, δεν είναι η απόλυτη ακρίβεια, αλλά η επαρκής εικόνα σε ορίζοντα μίας ή δύο ημερών.

Στη δική του εμπειρία, η καταγραφή συνδέθηκε με την παρακολούθηση των valuable increments, δηλαδή των διακριτών ενοτήτων εργασίας που διαρκούσαν από μερικές ημέρες έως μερικές εβδομάδες και μπορούσαν να χαρακτηριστούν καθαρά ως value-add ή muda. Δεν είναι, ωστόσο, η μόνη μέθοδος.

Ο συντάκτης αποφεύγει την υπερβολική λεπτομέρεια. Ως VP, οι managers ενημέρωναν κάθε ομάδα δύο φορές την εβδομάδα και κατέγραφαν σε ποιο VI δούλευαν και πόσα άτομα συμμετείχαν. Κάθε VI ταξινομούνταν ως muda ή value-add και υπήρχαν επιμέρους κατηγορίες, όπως bug, capacity investment και major initiative, ώστε να φαίνεται πού κατευθύνεται ο χρόνος. Η διαδικασία, όπως λέει, ήταν ελαφριά και πολύ χρήσιμη.

Η σύσταση είναι να γίνεται μηνιαία ανασκόπηση του ποσοστού value-add. Αν πέφτει, αυτό δεν σημαίνει αυτομάτως ότι υπάρχει πρόβλημα, αλλά αξίζει διερεύνηση. Το βασικό μειονέκτημα του δείκτη είναι ο θόρυβος: οι τάσεις, σύμφωνα με την εμπειρία του, χρειάστηκαν τρεις έως έξι μήνες για να φανούν. Πέρασε ένας χρόνος μέχρι να είναι βέβαιος ότι οι προσπάθειες μείωσης του cost of change είχαν φέρει μόνιμο αποτέλεσμα.

Παρά την καθυστέρηση, ο δείκτης παρέμεινε χρήσιμος. Ο ίδιος και οι συνεργάτες του τον βρήκαν εξαιρετικά χρήσιμο για να εξηγούν τι συνέβαινε στην ανάπτυξη προϊόντος. Και, όπως σημειώνει, είναι πολύ δυσκολότερο να βελτιώσεις το cost of change παρά να το χειροτερέψεις. Αν η AI προκαλεί σοβαρά προβλήματα, αυτό πιθανότατα θα φανεί πιο γρήγορα.

Επειδή οι ενδείξεις για το κόστος αλλαγής θα είναι θορυβώδεις και αβέβαιες, ο συντάκτης προτείνει να συμπληρώνονται με μοντέλα και σχεδιασμό σεναρίων. Τα μοντέλα δεν θα δείξουν τι θα συμβεί, αλλά τι θα μπορούσε να συμβεί, βοηθώντας στη διαχείριση του ρίσκου.

Σε ένα μοντέλο για τη συντηρησιμότητα, η συντήρηση αντιμετωπίζεται ως υποχρεωτικός φόρος πάνω στην ανάπτυξη. Για κάθε μήνα ανάπτυξης με προστιθέμενη αξία, εκτιμάται ένα ποσό συντήρησης για το επόμενο έτος και ένα χαμηλότερο ποσό για τα επόμενα χρόνια. Στη συνέχεια δημιουργείται μοντέλο για το πόσες engineering days είναι διαθέσιμες κάθε μήνα. Από αυτές αφαιρείται ο χρόνος της συντήρησης και το υπόλοιπο αποδίδεται σε value-add.

Για να αποτιμηθεί η επίδραση της AI, εφαρμόζονται οι μετρημένες βελτιώσεις στην ταχύτητα ανάπτυξης, εκτιμάται πώς η AI θα αλλάξει το κόστος συντήρησης και υπολογίζονται οι επιπτώσεις στο headcount. Έπειτα εξετάζονται σενάρια με διαφορετικό κόστος συντήρησης της AI. Ο ίδιος λέει ότι, αν δημιουργηθεί μόνο ένα μοντέλο, αυτό θα πρέπει να είναι το συγκεκριμένο.

Ένα δεύτερο μοντέλο χρησιμοποιεί τις γραμμές κώδικα ως δείκτη κόστους. Οι γραμμές κώδικα δεν είναι καλός δείκτης παραγωγικότητας, αλλά είναι εύλογος δείκτης κόστους, αφού περισσότερες γραμμές συνήθως σημαίνουν υψηλότερο κόστος συντήρησης. Το μοντέλο λειτουργεί με παρόμοιο τρόπο, αλλά βασίζεται σε commits και στο gross code churn, δηλαδή στις γραμμές που αλλάζουν, προστίθενται ή διαγράφονται.

Και εδώ η AI αποτιμάται μέσα από το πώς επηρεάζει το code churn κατά τη διάρκεια της δοκιμής ταχύτητας. Έπειτα γίνεται πρόβλεψη της μελλοντικής value-add δραστηριότητας και του τρόπου με τον οποίο μπορεί να αλλάξει το churn συντήρησης. Το πλεονέκτημα αυτού του μοντέλου είναι ότι μπορεί να βασιστεί σε πραγματικά δεδομένα commit για πιο ακριβείς εκτιμήσεις. Ο συντάκτης αναφέρει ως παράδειγμα το open source tmux project, όπου οι αρχικές υποθέσεις του αποδείχθηκαν κοντά στα πραγματικά δεδομένα.

Το lock-in είναι μια ακόμη μεταβλητή. Αν το κόστος των tokens αυξηθεί, η αντίδραση μπορεί να είναι μείωση προσωπικού, περιορισμός της χρήσης AI ή μετάβαση σε λιγότερο ικανό μοντέλο. Για να αποτυπωθούν αυτά τα σενάρια, προτείνεται η προσαρμογή του μοντέλου συντηρησιμότητας, η μείωση της μηνιαίας engineering capacity ανάλογα με το headcount και η εκτίμηση της μείωσης των speed improvements όταν μειώνεται η χρήση AI. Ίσως χρειαστεί και ξεχωριστό σύνολο υπολογισμών για τους ανθρώπους που συντηρούν κώδικα γραμμένο από AI.

Τέλος, για το burnout, ο συντάκτης θεωρεί πιθανή τη μείωση της παραγωγικότητας όσο αυξάνεται η πνευματική κόπωση και την αύξηση του turnover. Δεν πιστεύει ότι αυτά τα φαινόμενα μπορούν να μοντελοποιηθούν με ακρίβεια, όμως μπορούν να παρακολουθούνται. Προτείνει να ενταχθεί η πνευματική εξάντληση στη μελέτη ταχύτητας ανάπτυξης, ώστε να φανεί αν υπάρχει ουσιαστική διαφορά ανάμεσα στις δύο προσεγγίσεις. Επίσης προτείνει περιοδικές, μονοερωτηματικές έρευνες για το επίπεδο ψυχικής ενέργειας των ανθρώπων και σύγκριση της πραγματικής αποχώρησης με τα ιστορικά δεδομένα, καθώς και αναζήτηση παραπόνων για την AI σε εσωτερικά κανάλια.

Πηγή: oreilly.com.

Το κείμενο δημιουργήθηκε από GPT 5.0. Δείτε τα AI Editorial Guidelines.

Περισσότερα από AI + Robots

Όλα →