Uncle Bob: Γιατί οι βασικές αρχές του προγραμματισμού είναι πιο σημαντικές από ποτέ στην εποχή του AI

CodeCraft Video 56:40

Η Τεχνητή Νοημοσύνη μπορεί πλέον να γράφει κώδικα μέσα σε δευτερόλεπτα. Μπορεί όμως να κατασκευάσει σωστά ένα πολύπλοκο σύστημα; Ο Robert C. Martin, γνωστός ως Uncle Bob, εξηγεί γιατί η ταχύτητα παραγωγής κώδικα δεν αντικαθιστά τη μηχανική λογισμικού.

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

Οι AI coding agents δεν περιορίζονται πλέον στις προτάσεις κώδικα. Μπορούν να δημιουργούν αρχεία, να υλοποιούν λειτουργίες, να εκτελούν δοκιμές και να διορθώνουν σφάλματα.

Αυτό δημιουργεί ένα ουσιαστικό ερώτημα: Αν το AI αναλαμβάνει την παραγωγή κώδικα, χρειαζόμαστε ακόμη τις παραδοσιακές αρχές του Software Engineering;

Ο Robert C. Martin, γνωστός ως Uncle Bob και συγγραφέας του Clean Code, απαντά καταφατικά.

Σε συνέντευξη που παραχώρησε στον Matt Pocock στις 19 Αυγούστου 2026, εξηγεί πώς χρησιμοποιεί ο ίδιος AI agents. Παράλληλα, αναλύει τα προβλήματα που εμφανίζονται όταν η ταχύτητα ανάπτυξης προηγείται της ποιότητας.

Το AI γράφει γρήγορα, αλλά δεν κατανοεί πάντα τις συνέπειες

Ο Uncle Bob περιγράφει τις πρώτες του εμπειρίες με εργαλεία Τεχνητής Νοημοσύνης για την παραγωγή κώδικα.

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

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

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

Ακολουθούσαν νέες διορθώσεις, οι οποίες μερικές φορές προκαλούσαν πρόσθετες αστοχίες.

Η κατάσταση θυμίζει το γνωστό φαινόμενο του τεχνικού χρέους (Technical Debt). Πρόκειται για το πρόσθετο κόστος συντήρησης που προκύπτει από ανεπαρκείς τεχνικές επιλογές.

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

Γιατί τα μεγάλα prompts δεν αποτελούν επαρκή λύση

Μια συνηθισμένη προσέγγιση είναι να δίνουμε στους AI agents ολοένα περισσότερες οδηγίες.

Ζητάμε καθαρό κώδικα, μικρές συναρτήσεις, σωστή αρχιτεκτονική, δοκιμές και συμμόρφωση με συγκεκριμένους κανόνες.

Ο Uncle Bob εξηγεί ότι δοκίμασε και ο ίδιος αυτή τη μέθοδο, δημιουργώντας εκτενή κείμενα οδηγιών.

Παρατήρησε, όμως, ότι οι agents δεν τηρούσαν πάντοτε όλους τους κανόνες.

Ένας από τους λόγους είναι το φαινόμενο Lost in the Middle.

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

Αυτό σημαίνει ότι ένας κανόνας που εμφανίζεται στην αρχή μιας μεγάλης διαδικασίας μπορεί να μην εφαρμόζεται με συνέπεια αργότερα.

Η εναλλακτική που προτείνει είναι ιδιαίτερα πρακτική.

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

Έτσι, η ποιότητα δεν εξαρτάται αποκλειστικά από την ερμηνεία ενός prompt.

Από τις οδηγίες στους πραγματικούς ελέγχους ποιότητας

Δύο τεχνικές που αναφέρει ο Uncle Bob είναι το CRAP Score και το Mutation Testing.

CRAP Score: Πόσο δύσκολος είναι ο κώδικάς μας;

Το CRAP (Change Risk Anti-Patterns) είναι ένας δείκτης που συνδυάζει την πολυπλοκότητα μιας συνάρτησης με την κάλυψή της από δοκιμές.

Για παράδειγμα, μια συνάρτηση με πολλές διαφορετικές διαδρομές εκτέλεσης είναι δυσκολότερο να ελεγχθεί.

Αν επιπλέον διαθέτει ελάχιστες δοκιμές, ο κίνδυνος να εμφανιστούν σφάλματα κατά την τροποποίησή της αυξάνεται.

Ο δείκτης βοηθά τους developers να εντοπίζουν συναρτήσεις που χρειάζονται απλοποίηση ή καλύτερη κάλυψη.

Mutation Testing: Ελέγχουμε αν τα tests είναι πραγματικά αποτελεσματικά

Η δεύτερη τεχνική εξετάζει κάτι διαφορετικό: όχι αν οι δοκιμές εκτελούνται, αλλά αν μπορούν να εντοπίσουν πραγματικά σφάλματα.

Φανταστείτε ότι μια συνάρτηση ελέγχει αν μια τιμή είναι μεγαλύτερη από 100.

Ένα εργαλείο Mutation Testing μπορεί να τροποποιήσει σκόπιμα τη συνθήκη, αντικαθιστώντας το «μεγαλύτερο» με το «μικρότερο».

Στη συνέχεια εκτελεί τις υπάρχουσες δοκιμές.

Αν καμία δοκιμή δεν εντοπίσει τη μεταβολή, πιθανότατα υπάρχει κενό στους ελέγχους του συστήματος.

Η μέθοδος δεν εγγυάται ότι το λογισμικό είναι απαλλαγμένο από σφάλματα. Προσφέρει, όμως, ισχυρότερες ενδείξεις για την αποτελεσματικότητα των δοκιμών.

Ο Uncle Bob θεωρεί ότι οι AI agents μπορούν να κάνουν οικονομικά πιο εφικτή την εφαρμογή τέτοιων απαιτητικών διαδικασιών.

Μια ομάδα AI agents αντί για έναν παντοδύναμο agent

Ιδιαίτερο ενδιαφέρον παρουσιάζει ο τρόπος με τον οποίο ο Uncle Bob οργανώνει την ανάπτυξη λογισμικού.

Αντί να αναθέτει ολόκληρη τη διαδικασία σε έναν agent, πειραματίζεται με διαφορετικούς εξειδικευμένους ρόλους.

Η διαδικασία περιλαμβάνει πέντε βασικά στάδια:

  1. Specifier: Μετατρέπει τις ανθρώπινες απαιτήσεις σε ελέγξιμα κριτήρια αποδοχής και διαδικασίες ελέγχου.

  2. Coder: Γράφει τον κώδικα και τις απαραίτητες δοκιμές για την υλοποίηση της λειτουργίας.

  3. Cleaner: Εξετάζει τον παραγόμενο κώδικα και βελτιώνει την ποιότητα και την πολυπλοκότητά του.

  4. Hardener: Εκτελεί απαιτητικούς ελέγχους, όπως Mutation Testing, αναζητώντας αδυναμίες στις δοκιμές.

  5. QA Agent: Ελέγχει την εφαρμογή σε επίπεδο πραγματικής λειτουργίας, χρησιμοποιώντας προκαθορισμένα σενάρια.

Κάθε agent αναλαμβάνει ένα συγκεκριμένο μέρος της εργασίας και παραδίδει το αποτέλεσμα στον επόμενο.

Η προσέγγιση αυτή έχει δύο πλεονεκτήματα.

Πρώτον, κάθε agent επικεντρώνεται σε περιορισμένο αντικείμενο. Δεύτερον, περιορίζεται ο όγκος των πληροφοριών που χρειάζεται να επεξεργάζεται ταυτόχρονα.

Υπάρχει, βέβαια, και κόστος. Η επικοινωνία και οι πρόσθετοι έλεγχοι αυξάνουν τον χρόνο ολοκλήρωσης.

Ο Uncle Bob υποστηρίζει ότι, στις δικές του δοκιμές, αυτή η διαδικασία παραμένει ταχύτερη από την αντίστοιχη ανθρώπινη εργασία.

Το ζητούμενο δεν είναι επομένως να παραχθεί κώδικας όσο το δυνατόν γρηγορότερα.

Το ζητούμενο είναι να παραχθεί λειτουργικό και συντηρήσιμο λογισμικό με το μικρότερο δυνατό συνολικό κόστος.

Η αρχιτεκτονική δεν εξαφανίζεται επειδή υπάρχει AI

Ένα ακόμη σημαντικό σημείο της συνέντευξης αφορά την αρχιτεκτονική λογισμικού.

Ένα σύστημα μπορεί να λειτουργεί σωστά σήμερα, αλλά να είναι εξαιρετικά δύσκολο να τροποποιηθεί αύριο.

Αυτό συμβαίνει συχνά όταν διαφορετικά τμήματα της εφαρμογής εξαρτώνται υπερβολικά το ένα από το άλλο.

Η αρχιτεκτονική προσπαθεί να διαχειριστεί αυτή την πολυπλοκότητα, οργανώνοντας το σύστημα σε σαφώς οριοθετημένες ενότητες, γνωστές ως modules.

Κάθε module αναλαμβάνει συγκεκριμένες ευθύνες και επικοινωνεί με τα υπόλοιπα μέσω καθορισμένων διεπαφών.

Η οργάνωση αυτή είναι χρήσιμη τόσο για τους ανθρώπους όσο και για τους AI agents.

Ο Uncle Bob περιγράφει μάλιστα εργαλεία που χρησιμοποιεί για να επιθεωρεί οπτικά τις εξαρτήσεις μεταξύ modules.

Έχει επίσης δημιουργήσει αυτοματοποιημένους ελέγχους που εμποδίζουν τους agents να παραβιάζουν συγκεκριμένους αρχιτεκτονικούς κανόνες.

Με αυτόν τον τρόπο, ένας προγραμματιστής μπορεί να ορίζει τη δομή του συστήματος και να επιτρέπει στο AI να υλοποιεί λειτουργίες μέσα σε αυτήν.

Πρέπει οι AI agents να ακολουθούν Test-Driven Development;

Εδώ ο Uncle Bob παρουσιάζει μια ενδιαφέρουσα διαφοροποίηση από τις παραδοσιακές του θέσεις.

Παραμένει υποστηρικτής του Test-Driven Development (TDD), δηλαδή της ανάπτυξης λογισμικού με τις δοκιμές να προηγούνται της υλοποίησης.

Ωστόσο, δεν θεωρεί απαραίτητο να επιβάλλεται στους AI agents ακριβώς η ίδια διαδικασία που ακολουθεί ένας άνθρωπος.

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

Οι AI agents διαθέτουν διαφορετικά χαρακτηριστικά και ενδέχεται να λειτουργούν αποτελεσματικότερα με διαφορετική σειρά εργασιών.

Η βασική διάκριση βρίσκεται ανάμεσα στις αρχές και στις μεθόδους.

Η ποιότητα, η ελεγξιμότητα και η συντηρησιμότητα παραμένουν απαραίτητες. Ο ακριβής τρόπος επίτευξής τους, όμως, μπορεί να αλλάζει.

Λιγότερος σχεδιασμός από την αρχή, περισσότεροι κύκλοι βελτίωσης

Η συνέντευξη εξετάζει επίσης τη δημοτικότητα του Spec-Driven Development, δηλαδή της ανάπτυξης βάσει προδιαγραφών.

Ο Uncle Bob εμφανίζεται επιφυλακτικός απέναντι στην προσπάθεια να περιγράψουμε ολόκληρο ένα σύστημα με κάθε λεπτομέρεια πριν αρχίσει η υλοποίηση.

Υπενθυμίζει ότι παρόμοιες προσεγγίσεις συνδέθηκαν ιστορικά με το μοντέλο Waterfall.

Όσο προσεκτικός κι αν είναι ο αρχικός σχεδιασμός, οι απαιτήσεις και οι συνθήκες συχνά μεταβάλλονται κατά την ανάπτυξη.

Η Τεχνητή Νοημοσύνη μειώνει σημαντικά το κόστος παραγωγής και αλλαγής κώδικα.

Γι' αυτό διερευνά μια περισσότερο επαναληπτική διαδικασία, εμπνευσμένη από τις αρχές του Agile.

Κατασκευάζουμε μια μικρή λειτουργία, ελέγχουμε το αποτέλεσμα, επανεξετάζουμε την αρχιτεκτονική και συνεχίζουμε.

Αυτό δεν σημαίνει ανάπτυξη χωρίς προδιαγραφές. Σημαίνει ότι οι προδιαγραφές μπορούν να εξελίσσονται μέσα από σύντομους κύκλους υλοποίησης και ανατροφοδότησης.

Τι θα κάνουν οι προγραμματιστές στο μέλλον;

Ίσως το σημαντικότερο ερώτημα της συζήτησης αφορά τον ρόλο του ανθρώπου.

Αν οι AI agents αναλαμβάνουν ολοένα περισσότερες εργασίες υλοποίησης, ποιες δεξιότητες θα χρειάζονται οι επόμενες γενιές developers;

Στη συνέντευξη γίνεται διάκριση ανάμεσα στον τακτικό και στον στρατηγικό προγραμματισμό.

Ο τακτικός προγραμματισμός αφορά την άμεση υλοποίηση μιας λειτουργίας και την επίλυση συγκεκριμένων τεχνικών προβλημάτων.

Ο στρατηγικός προγραμματισμός αφορά τη συνολική οργάνωση του συστήματος, τις αρχιτεκτονικές αποφάσεις και τη μακροχρόνια συντηρησιμότητα.

Οι AI agents εμφανίζονται ιδιαίτερα αποτελεσματικοί στην πρώτη κατηγορία.

Ωστόσο, η στρατηγική σκέψη απαιτεί εμπειρία και κατανόηση των συνεπειών που έχουν οι τεχνικές αποφάσεις.

Ο Uncle Bob επιμένει ότι οι νέοι προγραμματιστές πρέπει να συνεχίσουν να γράφουν κώδικα.

Χωρίς προσωπική εμπειρία είναι δύσκολο να αναγνωρίσουν πότε ένα σύστημα έχει σχεδιαστεί λανθασμένα ή πότε ένας agent επαναλαμβάνει τα ίδια σφάλματα.

Η χρήση του AI δεν πρέπει επομένως να αντικαθιστά τη διαδικασία μάθησης, αλλά να την ενισχύει.

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

Η Τεχνητή Νοημοσύνη αλλάζει τον τρόπο με τον οποίο παράγουμε λογισμικό.

Οι developers μπορούν να δημιουργούν λειτουργίες γρηγορότερα, να αυτοματοποιούν επαναλαμβανόμενες εργασίες και να αξιοποιούν εργαλεία που παλαιότερα απαιτούσαν σημαντικό χρόνο.

Ωστόσο, η ταχύτητα παραγωγής δεν εξαλείφει την πολυπλοκότητα.

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

Η πραγματική πρόκληση δεν είναι πλέον μόνο να γράφουμε σωστό κώδικα.

Είναι να σχεδιάζουμε διαδικασίες που επιτρέπουν σε ανθρώπους και AI agents να συνεργάζονται, διατηρώντας την ποιότητα σε κάθε στάδιο.

Ίσως λοιπόν η σημαντικότερη δεξιότητα του μελλοντικού software engineer να μην είναι η ταχύτητα με την οποία γράφει κώδικα, αλλά η ικανότητά του να κατανοεί, να σχεδιάζει και να ελέγχει το λογισμικό που παράγεται.


Πηγή

Matt Pocock – LIVE: Uncle Bob on Software Fundamentals in the Age of AI

Συνέντευξη με τον Robert C. Martin, 19 Αυγούστου 2026, διάρκεια περίπου 57 λεπτά.

Παρακολουθήστε την πλήρη συνέντευξη στο YouTube

Διαβάστε την απομαγνητοφώνηση της συζήτησης

Πηγή

Πώς σου φάνηκε;

Σχόλια

Φόρτωση σχολίων…