Μετάβαση στο κύριο περιεχόμενο
OpenAI

12 Δεκεμβρίου 2025

Εταιρεία

Πώς χρησιμοποιήσαμε το Codex για να αναπτύξουμε το Sora για Android σε 28 ημέρες

Από τους Πάτριχ Χαμ και Αρ Τζέι Μάρσαν, μέλη του τεχνικού προσωπικού

Φόρτωση…

Από τις 26 Απριλίου 2026, το προϊόν Sora δεν θα είναι πλέον διαθέσιμο.


Τον Νοέμβριο, θέσαμε σε παγκόσμια κυκλοφορία την εφαρμογή Sora για Android, δίνοντας σε οποιονδήποτε διαθέτει συσκευή Android τη δυνατότητα να μετατρέψει μια σύντομη προτροπή σε ένα ζωντανό βίντεο. Την ημέρα της κυκλοφορίας, η εφαρμογή έφτασε στην 1η θέση στο Play Store. Οι χρήστες Android δημιούργησαν πάνω από ένα εκατομμύριο βίντεο μέσα στις πρώτες 24 ώρες.

Το παρασκήνιο πίσω από την κυκλοφορία: η αρχική έκδοση της παραγωγικής εφαρμογής του Sora για Android δημιουργήθηκε μέσα σε 28 ημέρες, χάρη στον ίδιο πράκτορα που είναι διαθέσιμος σε οποιαδήποτε ομάδα ή προγραμματιστή: το Codex.

Από τις 8 Οκτωβρίου έως τις 5 Νοεμβρίου 2025, μια ολιγομελής ομάδα μηχανικών που εργαζόταν με το Codex και κατανάλωνε περίπου 5 δισεκατομμύρια token, πήρε το Sora για Android από πρωτότυπο και το παρέδωσε έτοιμο για παγκόσμια κυκλοφορία. Παρά την κλίμακά της, η εφαρμογή έχει ποσοστό απουσίας σφαλμάτων 99,9% και μια αρχιτεκτονική για την οποία είμαστε περήφανοι. Αν αναρωτιέστε μήπως χρησιμοποιήσαμε κάποιο μυστικό μοντέλο, χρησιμοποιήσαμε μια πρώιμη έκδοση του μοντέλου GPT‑5.1‑Codex – την ίδια έκδοση που μπορεί να χρησιμοποιήσει κάθε προγραμματιστής ή επιχείρηση σήμερα μέσω CLI, επέκτασης IDE ή εφαρμογής web.

Prompt: figure skater performs a triple axle with a cat on her head

Ενστερνιζόμαστε τον Νόμο του Brooks: Παραμένουμε ευέλικτοι για να κινούμαστε γρήγορα

Όταν το Sora κυκλοφόρησε σε iOS, η χρήση αυξήθηκε ραγδαία. Οι άνθρωποι άρχισαν αμέσως να δημιουργούν μια συνεχή ροή από βίντεο. Αντίθετα, στο Android, είχαμε μόνο ένα μικρό εσωτερικό πρωτότυπο και έναν αυξανόμενο αριθμό προεγγεγραμμένων χρηστών στο Google Play.

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

Ο Αμερικανός αρχιτέκτονας υπολογιστών Fred Brooks διατύπωσε το περίφημο: «η προσθήκη περισσότερων ατόμων σε ένα καθυστερημένο έργο λογισμικού το καθυστερεί ακόμη περισσότερο». Με άλλα λόγια, όταν προσπαθείτε να παραδώσετε γρήγορα ένα σύνθετο έργο, η προσθήκη περισσότερων μηχανικών μπορεί συχνά να επιβραδύνει την αποδοτικότητα, αυξάνοντας τον όγκο των επικοινωνιών, τον κατακερματισμό των εργασιών και το κόστος ενσωμάτωσης. Αντί να αγνοήσουμε αυτή την κατανόηση, την αξιοποιήσαμε και συγκροτήσαμε μια ισχυρή ομάδα τεσσάρων μηχανικών – όλοι εξοπλισμένοι με το Codex για να αυξήσουν δραστικά την επίδραση κάθε μηχανικού. 

Εργαζόμενοι με αυτόν τον τρόπο, παραδώσαμε μια εσωτερική έκδοση του Sora για Android στους υπαλλήλους μέσα σε 18 ημέρες και τη διαθέσαμε σε δημόσια κυκλοφορία 10 ημέρες αργότερα. Διατηρήσαμε υψηλά πρότυπα στις πρακτικές μηχανικής του Android, επενδύσαμε στη δυνατότητα συντήρησης και διατηρήσαμε την εφαρμογή στο ίδιο επίπεδο αξιοπιστίας που θα περιμέναμε από ένα πιο παραδοσιακό έργο. (Συνεχίζουμε επίσης να χρησιμοποιούμε εκτενώς το Codex σήμερα για να εξελίσσουμε και να προσθέτουμε νέες δυνατότητες στην εφαρμογή).

Ένταξη νέου ανώτερου μηχανικού

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

Πού χρειάζεται καθοδήγηση το Codex

  1. Το Codex δεν είναι ακόμη εξαιρετικό στο να συμπεραίνει όσα δεν του έχουν ειπωθεί (π.χ., τις προτιμήσεις σας για τα αρχιτεκτονικά πρότυπα, τη στρατηγική προϊόντος, την πραγματική συμπεριφορά των χρηστών και τους εσωτερικοί κανόνες ή συντομεύσεις).
  2. Ομοίως, το Codex δεν μπορούσε να δει την εφαρμογή να εκτελείται πραγματικά: δεν μπορούσε να ανοίξει το Sora σε κάποια συσκευή, να παρατηρήσει ότι κάποια κύλιση ήταν παράταιρη ή να αισθανθεί ότι κάποια ροή ήταν συγκεχυμένη. Μόνο η ομάδα μας μπορούσε να καλύψει αυτές τις βιωματικές εργασίες.
  3. Κάθε περίπτωση απαιτεί ενσωμάτωση. Η κοινοποίηση του περιβάλλοντος με σαφείς στόχους, περιορισμούς και καθοδήγηση σχετικά με το «πώς κάνουμε τα πράγματα» ήταν απαραίτητη για την καλή εκτέλεση του Codex.
  4. Στο ίδιο πνεύμα, το Codex αντιμετώπισε δυσκολίες με την κρίση βαθιάς αρχιτεκτονικής: αν αφεθεί μόνο του, μπορεί να εισάγει ένα επιπλέον μοντέλο προβολής εκεί που πραγματικά θέλαμε να επεκτείνουμε ένα υπάρχον ή να μεταφέρει λογική στο επίπεδο του UI που σαφώς ανήκε σε ένα αποθετήριο. Το ένστικτό του είναι να κάνει κάτι να λειτουργεί, όχι να δίνει προτεραιότητα στη μακροπρόθεσμη καθαριότητα.

Μας φάνηκε χρήσιμο να βάζουμε το Codex να δημιουργεί και να διατηρεί έναν ευμεγέθη αριθμό αρχείων AGENT.md σε όλη τη βάση κώδικα. Αυτό διευκόλυνε την εφαρμογή της ίδιας καθοδήγησης και των βέλτιστων πρακτικών σε όλες τις περιόδους λειτουργίας. Για παράδειγμα, για να διασφαλίσουμε ότι το Codex έγραφε κώδικα σύμφωνα με τις οδηγίες στυλ μας, προσθέσαμε τα εξής στο αρχείο AGENTS.md κορυφαίου επιπέδου:

Απλό κείμενο

1
## Formatting and static checks
2
- **Always run** `./gradlew detektFix` (or for the affected modules) **before committing**. CI will fail if formatting or detekt issues are present.

Πού διαπρέπει το Codex

  1. Στην γρήγορη ανάγνωση και κατανόηση μεγάλων βάσεων κώδικα: Το Codex γνωρίζει ουσιαστικά όλες τις κύριες γλώσσες προγραμματισμού, και αυτό διευκολύνει την αξιοποίηση των ίδιων εννοιών σε πολλές πλατφόρμες χωρίς περίπλοκες αφαιρέσεις.
  2. Στην κάλυψη δοκιμών: Το Codex επιδεικνύει (ιδιαίτερο ) ενθουσιασμό στη συγγραφή δοκιμών μονάδας που καλύπτουν μια ευρεία ποικιλία περιπτώσεων. Δεν ήταν κάθε δοκιμή διεξοδική, αλλά η ευρεία κάλυψη ήταν χρήσιμη για την αποτροπή παλινδρομήσεων. 
  3. Στην εφαρμογή σχολίων: Με παρόμοιο τρόπο, το Codex είναι καλό στο να αντιδρά στα σχόλια. Όταν η CI αποτύγχανε, μπορούσαμε να επικολλήσουμε την έξοδο των καταγραφών σε μια προτροπή και να ζητήσουμε από το Codex να προτείνει διορθώσεις.
  4. Στη μαζική παράλληλη, αναλώσιμη εκτέλεση: Οι περισσότερες δεν θα φτάσουν τα όρια του αριθμού των περιόδων λειτουργίας που θα μπορούσαν πραγματικά να εκτελέσουν ταυτόχρονα. Είναι ιδιαίτερα εφικτό να δοκιμάσετε πολλές ιδέες παράλληλα και να θεωρήσετε τον κώδικα αναλώσιμο.
  5. Στην παροχή νέας προοπτικής: Στις συζητήσεις σχεδιασμού, χρησιμοποιήσαμε το Codex ως εργαλείο δημιουργίας για να εξερευνήσουμε πιθανά σημεία αποτυχίας και να ανακαλύψουμε νέους τρόπους επίλυσης ενός προβλήματος. Για παράδειγμα, ενώ σχεδιάζαμε βελτιστοποιήσεις μνήμης για την αναπαραγωγή βίντεο, το Codex εξέτασε πολλαπλά SDK για να προτείνει προσεγγίσεις που δεν θα είχαμε χρόνο να εξετάσουμε. Τα ευρήματα από την έρευνα του Codex αποδείχθηκαν ανεκτίμητα στη μείωση του αποτυπώματος μνήμης στην τελική εφαρμογή.
  6. Στην αύξηση της μόχλευσης της εργασίας: Στην πράξη, καταλήξαμε να αφιερώσουμε περισσότερο χρόνο για να ελέγχουμε και να κατευθύνουμε τον κώδικα παρά να τον γράφουμε εμείς οι ίδιοι. Παράλληλα, το Codex είναι πολύ καλό στον έλεγχο του κώδικα, συχνά εντοπίζοντας σφάλματα πριν συγχωνευτούν, βελτιώνοντας την αξιοπιστία.

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

Θέσαμε τα θεμέλια χειροκίνητα

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

Με αυτές τις βάσεις, γράψαμε μερικά αντιπροσωπευτικά χαρακτηριστικά end‑to‑end. Χρησιμοποιήσαμε τους κανόνες που θέλαμε να ακολουθεί ολόκληρη η βάση κώδικα και καταγράψαμε τα πρότυπα του έργου καθώς προχωρούσαμε. Δείχνοντας στο Codex αντιπροσωπευτικά χαρακτηριστικά, ήταν σε θέση να εργάζεται πιο ανεξάρτητα εντός των προτύπων μας. Για ένα έργο που εκτιμούμε ότι γράφτηκε κατά 85% από το Codex, ένα προσεκτικά σχεδιασμένο θεμέλιο απέτρεψε δαπανηρές αναδρομές και αναδιαμορφώσεις. Ήταν μία από τις πιο σημαντικές αποφάσεις που πήραμε. 

Η ιδέα δεν ήταν να φτιάξουμε «κάτι που απλώς λειτουργεί» όσο το δυνατόν γρηγορότερα, αλλά να δημιουργήσουμε «κάτι που κατανοεί πώς θέλουμε να λειτουργούν τα πράγματα». Υπάρχουν πολλοί «σωστοί» τρόποι να γράψουμε κώδικα. Δεν χρειαζόταν να πούμε στο Codex ακριβώς τι να κάνει. Έπρεπε να δείξουμε στο Codex τι είναι «σωστό» στην ομάδα μας. Μόλις καθορίσαμε το σημείο εκκίνησής μας και πώς μας άρεσε να δημιουργούμε, το Codex ήταν έτοιμο να ξεκινήσει.

Για να δούμε τι θα συνέβαινε, δοκιμάσαμε την προτροπή: «Δημιούργησε την εφαρμογή Sora για Android με βάση τον κώδικα για iOS. Ξεκίνα», αλλά γρήγορα εγκαταλείψαμε αυτό το μονοπάτι. Παρόλο που αυτό που δημιούργησε το Codex λειτουργούσε από τεχνικής άποψης, η εμπειρία του προϊόντος ήταν υποδεέστερη. Και χωρίς σαφή κατανόηση των τελικών σημείων, των δεδομένων και των ροών χρηστών, ο κώδικας ενός μόνο βήματος του Codex ήταν αναξιόπιστος (Ακόμα και χωρίς τη χρήση πράκτορα, είναι επικίνδυνο να συγχωνεύσετε χιλιάδες γραμμές κώδικα.) 

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

Σχεδιασμός με το Codex πριν από τη σύνταξη κώδικα

Το επόμενο βήμα μας για τη μεγιστοποίηση των δυνατοτήτων του Codex ήταν να κατανοήσουμε πώς θα δώσουμε τη δυνατότητα στο Codex να λειτουργεί για μεγάλες χρονικές περιόδους (πρόσφατα, πάνω από 24 ώρες), χωρίς επίβλεψη.

Στην αρχή της χρήσης του Codex, σπεύσαμε σε προτροπές όπως: «Εδώ είναι το χαρακτηριστικό». Εδώ είναι μερικά αρχεία. Δημιούργησέ το». Αυτό μερικές φορές πήγαινε καλά, αλλά κυρίως παρήγαγε κώδικα που τεχνικά μεταγλωττιζόταν, ενώ απομακρυνόταν από την αρχιτεκτονική και τους στόχους μας.

Έτσι αλλάξαμε τη ροή εργασίας. Για οποιαδήποτε μη ασήμαντη αλλαγή, πρώτα ζητήσαμε από το Codex να μας βοηθήσει να κατανοήσουμε πώς λειτουργεί το σύστημα και ο κώδικας. Για παράδειγμα, του ζητούσαμε να διαβάσει ένα σύνολο σχετικών αρχείων και να συνοψίσει πώς λειτουργεί αυτή η δυνατότητα. Για παράδειγμα, πώς ρέουν τα δεδομένα από το API μέσω του επιπέδου αποθετηρίου, του μοντέλου προβολής και στο UI. Έπειτα διορθώναμε ή βελτιώναμε την κατανόησή του. (Για παράδειγμα, επισημαίναμε ότι μια συγκεκριμένη αφαίρεση ανήκει πραγματικά σε διαφορετικό επίπεδο ή ότι μια δεδομένη κλάση υπάρχει μόνο για τη λειτουργία εκτός σύνδεσης και δεν πρέπει να επεκταθεί.)

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

Αυτός ο επιπλέον κύκλος σχεδιασμού αποδείχθηκε ότι άξιζε τον χρόνο. Μας επέτρεψε να αφήσουμε το Codex να λειτουργεί «χωρίς επίβλεψη» για μεγάλα χρονικά διαστήματα, επειδή γνωρίζαμε τα προγράμματά του. Διευκόλυνε τον έλεγχο του κώδικα, επειδή μπορούσαμε να εξετάσουμε την υλοποίηση σε σχέση με το πρόγραμμά μας αντί να διαβάζουμε μια διαφορά εκτός πλαισίου. Και όταν κάτι πήγαινε στραβά, μπορούσαμε να εντοπίζουμε σφάλματα πρώτα στο πρόγραμμα και μετά στον κώδικα. 

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

Κατανεμημένη μηχανική

Στην κορύφωση του έργου, συχνά εκτελούσαμε πολλαπλές περιόδους λειτουργίας του Codex ταυτόχρονα. Κάποιος εργαζόταν στην αναπαραγωγή, άλλος στην αναζήτηση, άλλος στη διαχείριση σφαλμάτων, και μερικές φορές κάποιος στις δοκιμές ή στις αναδιαμορφώσεις. Φαινόταν λιγότερο σαν να χρησιμοποιούμε ένα εργαλείο και περισσότερο σαν να διαχειριζόμαστε μια ομάδα.

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

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

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

Εδώ είναι που οι ιδέες του Brooks αποκτούν νέα διάσταση. Δεν μπορείτε απλώς να προσθέσετε περιόδους λειτουργίας στο Codex και να περιμένετε γραμμικές επιταχύνσεις, όπως δεν μπορείτε να συνεχίσετε να προσθέτετε μηχανικούς σε ένα έργο και να περιμένετε το χρονοδιάγραμμα να συρρικνωθεί γραμμικά. Κάθε επιπλέον «χέρι βοηθείας», ακόμα και το εικονικό, επιβαρύνει περαιτέρω τον συντονισμό. Είχαμε καταντήσει ένας μαέστρος ορχήστρας αντί να είμαστε απλώς πιο γρήγοροι μεμονωμένοι παίκτες.

Το Codex ως δια-πλατφορμική υπερδύναμη

Ξεκινήσαμε το έργο μας με ένα μεγάλο ορόσημο: το Sora είχε ήδη κυκλοφορήσει στο iOS. Συχνά κατευθύναμε το Codex στις βάσεις κώδικα iOS και backend για να το βοηθήσουμε να κατανοήσει βασικές απαιτήσεις και περιορισμούς. Καθ' όλη τη διάρκεια του έργου, αστειευόμασταν ότι είχαμε επανεφεύρει την ιδέα ενός δια-πλατφορμικού πλαισίου. Ξεχάστε το React Native ή το Flutter. Το μέλλον του δια-πλατφορμικού προγραμματισμού είναι απλώς το Codex.

Πέρα από το αστείο υπάρχουν δύο αρχές.

  1. Η λογική είναι φορητή. Είτε ο κώδικας είναι γραμμένος σε Swift είτε σε Kotlin, η υποκείμενη λογική της εφαρμογής – μοντέλα δεδομένων, κλήσεις δικτύου, κανόνες επικύρωσης, επιχειρηματική λογική – είναι η ίδια. Το Codex είναι εξαιρετικό στο να αναλύει μια υλοποίηση σε Swift και να δημιουργεί ένα ισοδύναμο σε Kotlin που διατηρεί τη σημασιολογική ακρίβεια.
  2. Τα συγκεκριμένα παραδείγματα παρέχουν ισχυρό περιβάλλον. Μια νέα περίοδος λειτουργίας του Codex που μπορεί να δει «ορίστε πώς ακριβώς λειτουργεί αυτό στο iOS» και «ορίστε η αρχιτεκτονική του Android» είναι πολύ πιο αποτελεσματική από μία που λειτουργεί μόνο από περιγραφές σε φυσική γλώσσα.

Εφαρμόζοντας αυτές τις αρχές, κάναμε τα αποθετήρια για iOS, backend και Android διαθέσιμα στο ίδιο περιβάλλον. Δώσαμε στο Codex προτροπές όπως:

«Διάβασε αυτά τα μοντέλα και τα τελικά σημεία στον κώδικα iOS και στη συνέχεια πρότεινε ένα πρόγραμμα για την υλοποίηση της αντίστοιχης συμπεριφοράς σε Android χρησιμοποιώντας τον υπάρχοντα πελάτη API και τις κλάσεις μοντέλων μας».

Ένα μικρό αλλά χρήσιμο κόλπο ήταν να συμπεριλάβουμε αναλυτικά στοιχεία στο ~/.codex/AGENTS.md για τη θέση και το περιεχόμενο των τοπικών αποθετηρίων. Αυτό διευκόλυνε το Codex να ανακαλύπτει και να πλοηγείται σε σχετικό κώδικα.

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

Το ευρύτερο μάθημα είναι ότι για το Codex, το περιβάλλον είναι το παν. Το Codex έκανε την καλύτερη δουλειά του όταν κατανοούσε πώς λειτουργούσε ήδη το χαρακτηριστικό στο iOS, και παράλληλα κατανοούσε πώς ήταν δομημένη η εφαρμογή μας στο Android. Όταν το Codex δεν είχε στη διάθεσή του αυτό το περιβάλλον, δεν «αρνιόταν να συνεργαστεί». Απλώς έκανε εικασίες. Όσο περισσότερο το αντιμετωπίζαμε σαν νέο συνεργάτη και επενδύαμε δίνοντάς του τις σωστές εισαγωγές, τόσο καλύτερα απέδιδε.

Η μηχανική λογισμικού του αύριο, σήμερα

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

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

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

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

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

Τι θα δημιουργήσετε με τη δική σας ομάδα Codex;

Ευχαριστίες

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

Συντάκτες

Patrick Hum, RJ Marsan