Το πλάνο που παραλείπεις είναι η διακοπή που θα αποσφαλματώσεις αργότερα
Κάθε πλαίσιο στη μηχανική λογισμικού σου λέει να κινείσαι γρήγορα, να δημοσιεύεις νωρίς, να επαναλαμβάνεις σε παραγωγή. Για ιστότοπους που δημιουργούνται από AI, αυτό είναι ανάποδο. Ο κατασκευαστής εδώ αρνείται να στείλει κώδικα απευθείας από την προτροπή σου — σταματά, γράφει ένα πλάνο και περιμένει να το δεις — και αυτή η άρνηση είναι η μοναδική απόφαση γύρω από την οποία χτίζεται όλο το υπόλοιπο pipeline. Πιο αργό στην αρχή, πιο φθηνό παντού μετά. Θα έκανα αυτή τη συμφωνία κάθε φορά, και πιστεύω ότι οι περισσότεροι που υποστηρίζουν το αντίθετο δεν έχουν δει πραγματικά τι κοστίζει μια λάθος εικασία παρακάτω στη διαδικασία.
Να το σενάριο αποτυχίας που το πλάνο υπάρχει για να αποτρέψει. Γράφεις "ένα site κρατήσεων για το στούντιό μου" και πατάς έναρξη. Το σύστημα πρέπει να μαντέψει τι σημαίνει "κράτηση" — ένα widget ημερολογίου, ένα ενσωματωμένο τρίτο εργαλείο, ένα πραγματικό σύστημα κρατήσεων με έλεγχο συγκρούσεων — και πρέπει να το μαντέψει πριν γράψει οτιδήποτε, γιατί δεν υπάρχει άλλη σειρά για να γίνει. Αν μαντέψεις λάθος μέσα σε ένα πλάνο, η διόρθωση είναι μία πρόταση, πέντε δευτερόλεπτα, τέλος. Αν μαντέψεις λάθος μέσα σε παραγμένο κώδικα, δεν διορθώνεις πλέον μια πρόταση, ξεμπλέκεις δέκα αρχεία που ήδη εξαρτώνται από τη λάθος υπόθεση. Έχω δει και τα δύο σενάρια να συμβαίνουν. Η διόρθωση στο στάδιο του πλάνου είναι μία ανταλλαγή. Η αλλαγή κατεύθυνσης μετά τη δημιουργία, για την ίδια ακριβώς αμφισημία, είναι απόρριψη και ανακατασκευή.
Το πλάνο δεν είναι απλώς μια λίστα εργασιών, και αυτό είναι το σημείο που ξεφεύγει από πολλούς. Είναι ένα συμβόλαιο, και το σύστημα δεσμεύεται σε αυτό: ένας επαληθευτής συμμόρφωσης, ένας από τους agents που πρέπει να εγκρίνει πριν σταλεί μια δημιουργία, συγκρίνει τον ολοκληρωμένο ιστότοπο με το πλάνο που ενέκρινες. Δημιουργήθηκε κάθε προγραμματισμένη σελίδα; Ταιριάζει η λίστα λειτουργιών με αυτό που παραδόθηκε; Το "έτοιμο" δεν είναι εντύπωση εδώ — είναι σχετικό με μια γραπτή υπόσχεση, ελέγξιμο γραμμή προς γραμμή. Αυτό είναι ισχυρότερη εγγύηση από το "ο κώδικας τρέχει", και την αποκτάς μόνο επειδή υπάρχει ένα έγγραφο για σύγκριση. Αφαίρεσε το πλάνο και αφαιρείς το μέτρο σύγκρισης.
Πού αποδίδει πραγματικά αυτό
Η επιρροή σου ως το άτομο που καθοδηγεί τη δημιουργία είναι συγκεντρωμένη στην αρχή, είτε την ασκήσεις είτε όχι. Αν σε ενδιαφέρει η αρχιτεκτονική πληροφορίας, η δομή των σελίδων, ποιες λειτουργίες μπαίνουν στην v1 έναντι της v2 — αυτή η λεπτομέρεια αξίζει δέκα φορές περισσότερο κατά την αναθεώρηση του πλάνου παρά μετά το πρώτο πέρασμα δημιουργίας. Τέσσερα επιπλέον λεπτά επανάγνωσης ενός πλάνου ξεπερνούν σε αξία έναν γύρο διόρθωσης μιας δημιουργίας που έχει ήδη παρεκκλίνει.
Το πιο ξεκάθαρο παράδειγμα είναι ο τύπος προϊόντος — απλός στατικός ιστότοπος, εγκαταστάσιμη εφαρμογή, δημιουργία με framework, εφαρμογή με backend server και πραγματική μόνιμη αποθήκευση δεδομένων. Φαίνεται σαν ένα dropdown menu. Δεν είναι. Είναι η πιο δομική επιλογή σε όλη τη διαδικασία, γιατί αποφασίζει σιωπηλά μια ντουζίνα πράγματα που δεν έχουν καμία σχέση με το πώς φαίνεται ο ιστότοπος.
| Τύπος προϊόντος | Προεπισκόπηση | Δημοσίευση | Λογαριασμοί / βάση δεδομένων |
|---|---|---|---|
| Απλός στατικός ιστότοπος | Άμεση, αφού πρόκειται μόνο για στατικά αρχεία | Το στατικό αποτέλεσμα αντιγράφεται καθαρά | Δεν είναι δυνατό — η αίτηση για σύνδεση ζητά κάτι που ο τύπος δομικά δεν μπορεί να κάνει |
| Δημιουργία με framework | Πρώτα γίνεται μεταγλώττιση· μια αποτυχημένη δημιουργία εμφανίζεται ως "καμία προεπισκόπηση", όχι ως "σπασμένη σελίδα" | Ίδια καθαρή διαδρομή στατικής αντιγραφής, μόλις γίνει η μεταγλώττιση | Δεν είναι δυνατό |
| Εφαρμογή με backend server | — | Χρειάζεται κάπου να τρέξει πραγματικά μια διεργασία, κάτι που αποτυγχάνει διαφορετικά — μια διεργασία που κρασάρει, όχι ένα αρχείο που λείπει | Ο μόνος τύπος όπου υπάρχουν καθόλου λογαριασμοί και βάσεις δεδομένων |
Και δεν μπορείς να αλλάξεις τύπο αργότερα με ευκολία. Το πέρασμα από απλό ιστότοπο σε εφαρμογή με backend server δεν είναι ένας διακόπτης ρυθμίσεων — είναι σχεδόν δεύτερη δημιουργία, γιατί οι μισές υποθέσεις του πλάνου (πώς φορτώνονται οι σελίδες, πού βρίσκονται τα δεδομένα, τι σημαίνει "δημοσίευση") έγιναν με βάση τον παλιό τύπο. Οπότε πες το κατά τον σχεδιασμό, ακόμα κι αν δεν είσαι σίγουρος: "υπάρχει πιθανότητα να χρειαστώ λογαριασμούς". Ο σχεδιασμός για εφαρμογή με backend server και η χρήση μόνο των στατικών μερών δεν κοστίζει τίποτα. Το να ανακαλύψεις ότι τη χρειαζόσουν εκ των υστέρων κοστίζει μια ανακατασκευή.
Πού έχουν δίκιο οι επικριτές
Τίποτα από αυτά δεν είναι δωρεάν, και δεν θα προσποιηθώ ότι είναι. Οι απομονωμένοι χώροι εργασίας ανά εκτέλεση σημαίνουν ότι τα αρχεία γνώσης σου αντιγράφονται φρέσκα, τίποτα δεν επιστρέφει στο μηχάνημά σου — καλό για σένα αν ο υπολογιστής σου χαλάσει στη μέση της δημιουργίας, κακό για την καθυστέρηση, γιατί η προετοιμασία ενός χώρου εργασίας και, για δημιουργίες με framework, η εκτέλεση μιας πραγματικής εγκατάστασης εξαρτήσεων μέσα σε ένα όριο container παίρνει πραγματικό χρόνο. Αυτό το όριο container υπάρχει επειδή μια δημιουργία με framework τρέχει `npm install` και αυθαίρετα scripts δημιουργίας — κώδικα που δεν έγραψες εσύ, εκτελούμενο με προνόμια χρόνου δημιουργίας — και το να το κάνεις αυτό σε κοινόχρηστο host χωρίς απομόνωση απέχει μία επίθεση dependency-confusion από το να αγγίξεις τα δεδομένα κάποιου άλλου χρήστη. Η γρήγορη-αλλά-ανασφαλής επιλογή ήταν διαθέσιμη. Απλώς δεν άξιζε τον συμβιβασμό.
Ίδια ιστορία με την επαλήθευση. Μια ολοκληρωμένη δημιουργία δεν φεύγει από το pipeline όταν σταματήσει η παραγωγή· φεύγει όταν ένα σύνολο ανεξάρτητων επαληθευτών σταματήσει να βρίσκει πράγματα που αξίζει να μπλοκάρουν:
- Έλεγχος κώδικα
- Ασφάλεια
- Σύνδεσμοι και SEO
- Προσβασιμότητα
- Συμμόρφωση
- Μια πραγματική εκτέλεση σε browser
Αυτό δεν είναι ένα πέρασμα, είναι σήμανση-διόρθωση-επανέλεγχος, σε βρόχο μέχρι κανείς να μην έχει τίποτα άλλο να πει, γιατί ένα μεμονωμένο πέρασμα linter μπορεί να χάσει μια οπισθοδρόμηση που εισάγει η ίδια του η διόρθωση. Το να διορθώσεις έναν σπασμένο σύνδεσμο και κατά λάθος να σπάσεις την ιεραρχία επικεφαλίδων στην ίδια σελίδα είναι ακριβώς το είδος πράγματος που ένας εφάπαξ έλεγχος χάνει και ένας επανέλεγχος πιάνει. Το τίμιο κόστος αυτού του βρόχου είναι η περιστασιακή δημιουργία που παίρνει ένα επιπλέον λεπτό ακριβώς στο τέλος χωρίς εμφανή λόγο. Ο κόσμος προσέχει αυτό το λεπτό. Δεν προσέχει τους έξι agents που μόλις τελείωσαν να συζητούν για τον ιστότοπό τους. Αυτό είναι δίκαιο παράπονο για την εμπειρία — απλώς δεν νομίζω ότι είναι καλό επιχείρημα για να στέλνεις κάτι χωρίς να έχει γίνει καν η συζήτηση.



