Perché una startup da 10 miliardi di dollari mi ha permesso di fare Vibe-Coding per loro e perché mi è piaciuto molto?


Ho chiesto ai miei editor se potevo andare a lavorare in una startup tecnologica. Era una richiesta insolita. Ma volevo imparare a programmare in modo vibe-code . Il mio bisogno di sapere era urgente. Volevo sopravvivere al futuro .
Il processo di presentazione è stato sorprendentemente semplice: prima i miei redattori hanno detto di sì, e poi la startup tecnologica a cui avevo proposto la mia folle idea, Notion, ha accettato di farmi collaborare con loro. Perché? È difficile dirlo. Forse perché la forza lavoro di Notion ha abbracciato appieno il vibe coding – "vibe" qui è un eufemismo per "assistito dall'intelligenza artificiale". Alcune aziende tecnologiche hanno stimato che circa il 30-40% del loro codice sia ora scritto dall'intelligenza artificiale.
Notion è una startup di San Francisco con 1.000 dipendenti, finanziata da venture capital, e una valutazione di 10 miliardi di dollari. È l'app definitiva per gestire le cose da fare e prendere appunti , composta da così tanti modelli, tabelle e modalità di formattazione delle attività che capire come usare Notion è un'impresa a sé stante. Su YouTube, i guru della produttività cercano di dare un senso a Notion usando il gergo ormai consolidato dell'ottimizzazione personale . Uno di questi video si intitola "Come iniziare a usare Notion senza perdere la testa". Ha 3,4 milioni di visualizzazioni.
Avrei dovuto iniziare a lavorare in Notion come vibe-coding engineer un giovedì di metà luglio. La sera prima, mi sono ritrovato a guardare in preda al panico questi video su YouTube. Di sicuro avrei dovuto essere un utente esperto dell'app se Notion mi permetteva – laureando in inglese! – di armeggiare con il suo codice. In una precedente chiamata di onboarding, un nuovo collega mi aveva incoraggiato a scaricare la piattaforma di coding di intelligenza artificiale Cursor e a sperimentarci. L'ho fatto. Da questi compiti non è emerso alcun codice vero e proprio.
La mia scrivania il mio primo giorno a Notion.
Fotografia: Lauren GoodeFortunatamente, avrei lavorato in coppia presso Notion, il che significava che avrei lavorato a fianco di programmatori (umani) esperti. Al mio arrivo, Sarah Sachs, responsabile dell'ingegneria dell'intelligenza artificiale presso Notion, mi ha fatto accomodare a una scrivania. Ad attendermi c'erano una borsa aziendale e un quaderno. Sachs mi ha informato che il giorno seguente avrei presentato il mio lavoro allo staff durante una riunione demo settimanale. Mi andava bene? Ho detto di sì. Eravamo tutti impegnati in quella parte.
Seduto a pochi metri di distanza c'era Simon Last, uno dei tre cofondatori di Notion. È un ingegnere allampanato e timido, che ha rinunciato alle responsabilità gestionali per concentrarsi sul ruolo di "super IC", ovvero un collaboratore individuale. Si è alzato per stringermi la mano e io, imbarazzato, l'ho ringraziato per avermi lasciato programmare. Simon è tornato al suo portatile, dove stava monitorando un'IA che stava programmando per lui. Più tardi, mi avrebbe detto che usare app di programmazione basate sull'IA era come gestire un gruppo di stagisti.
Dal 2022, l' app Notion dispone di un assistente AI che aiuta gli utenti a scrivere i propri appunti. Ora l'azienda sta rimodellando questo sistema come un "agente", un tipo di intelligenza artificiale che lavorerà autonomamente in background per conto dell'utente mentre questi si occupa di altre attività. Per riuscirci, gli ingegneri devono scrivere molto codice.
Aprono Cursor e selezionano a quale dei diversi modelli di intelligenza artificiale desiderano accedere. La maggior parte degli ingegneri con cui ho parlato durante la mia visita preferiva Claude, oppure utilizzavano direttamente l'app Claude Code. Dopo aver scelto il loro combattente, gli ingegneri chiedono alla loro intelligenza artificiale di scrivere una bozza di codice per creare un nuovo elemento o correggere una funzionalità. Il programmatore umano esegue quindi il debug e testa l'output secondo necessità, sebbene anche le IA contribuiscano in questo, prima di passare il codice in produzione.
Fondamentalmente, l'intelligenza artificiale generativa è enormemente costosa. Il risparmio teorico si traduce in tempo: se l'intelligenza artificiale aiutasse il cofondatore e CEO di Notion, Ivan Zhao, a terminare i suoi compiti prima del previsto, potrebbe tranquillamente andare al jazz club al piano terra del suo palazzo di uffici in Market Street e godersi un po' di relax. A Ivan piace il jazz. In realtà, riempie il tempo lavorando di più. Il sogno della settimana lavorativa di quattro giorni rimarrà tale.
La mia settimana lavorativa in Notion durava solo due giorni, il massimo sprint di programmazione. (In cambio dell'accesso completo al loro covo, ho accettato di identificare gli ingegneri di base solo per nome.) Il mio primo incarico è stato quello di correggere il modo in cui un grafico chiamato diagramma a sirena appare nell'app Notion. Due ingegneri, Quinn e Modi, mi hanno detto che questi diagrammi esistono come file SVG in Notion e, nonostante siano chiamati grafica vettoriale scalabile, non possono essere ingranditi o zoomati come un file JPEG. Di conseguenza, il testo all'interno dei diagrammi a sirena su Notion è spesso illeggibile.
Quinn mi fece scivolare il portatile. Aveva l'app Cursor aperta e pronta all'uso, con Claude in esecuzione. Per divertimento, scorse parte del codice di base di Notion. "Quindi, il codice di base di Notion? Ha un sacco di file. Probabilmente, anche se fossi un ingegnere, non sapresti nemmeno dove andare", disse, riferendosi educatamente a me come ingegnere. "Ma ignoreremo tutto questo. Chiederemo semplicemente all'IA nella barra laterale di farlo."
La sua strategia di vibe-coding, ha spiegato Quinn, consisteva spesso nel chiedere all'IA: "Ehi, perché questa cosa è così?". La domanda costringeva l'IA a fare prima un po' di ricerca, e la risposta contribuiva a informare il prompt che noi, gli ingegneri umani, avremmo scritto. Dopo aver "pensato", Cursor ci informava, tramite righe di testo in streaming, che i diagrammi a sirena di Notion sono immagini statiche che, tra le altre cose, non hanno gestori di clic e non sono integrate con un'infrastruttura a schermo intero. Certo.
Utilizzando gli appunti di Claude, ho scritto la richiesta e ho incollato in Cursor alcune note del team di ingegneria, in questo modo:
Ticket: Aggiungi schermo intero/zoom ai diagrammi della sirena. Cliccando sul diagramma, questo verrà ingrandito a schermo intero.
Note da Slack: "I diagrammi delle sirene dovrebbero essere ingrandibili/a schermo intero come le immagini caricate. Sono solo file svg, quindi probabilmente possiamo usare svg -> dataurl -> componente immagine se vogliamo ingrandire"
Abbiamo aspettato. Il tempo è invertito nel mondo delle vibrazioni. Progetti che prima richiedevano un'intera carriera ora vengono completati in pochi giorni, mentre comandi che ti aspetti di vedere eseguiti in pochi secondi richiedono minuti infiniti. Cento righe di codice generato dall'intelligenza artificiale dopo, i diagrammi a sirena erano espandibili.
Ma non proprio. Erano ancora troppo piccoli, alcune parti erano trasparenti e i margini intorno avevano bisogno di essere riempiti; inoltre, avrebbe funzionato nell'app sia in modalità chiara che scura? Ho passato la mezz'ora successiva a iterare su queste modifiche, con Quinn e Modi che mi spiegavano tutto. Trenta minuti dopo, avevamo un diagramma a sirena espandibile e leggibile.
Poi ho lavorato con un'ingegnere di nome Lucy, che mi ha spiegato che invece di digitare prompt in Cursor avremmo utilizzato un agente di Codegen, un altro strumento di ingegneria dell'intelligenza artificiale. Il compito era semplice. Avremmo creato una nuova skill in Notion chiamata Alphabetize, in modo che quando qualcuno usa l'intelligenza artificiale di Notion per stilare un elenco o una tabella delle razze canine più diffuse, l'utente possa ordinare alfabeticamente il contenuto con un clic.
In senso orario: sto imparando le basi con Lucy, Andy e Brooks.
Fotografia: Sarah SachsProprio in quel momento, Claude di Anthropic, che alimentava Codegen, subì un'interruzione. Sarah Sachs, che era nella stanza con noi, ricevette una chiamata sul suo telefono, come un medico del pronto soccorso. Uscì di corsa dalla stanza. La codifica e l'alfabetizzazione di Vibe furono temporaneamente sospese. I bulldog avrebbero preceduto i beagle finché Claude non fosse tornato online.
Il compito successivo era tanto aperto quanto quello di Lucy era specifico: costruire qualsiasi cosa volessi. La libertà era snervante, un test di Rorschach per programmatori di vibrazioni. Cosa ho visto quando ho guardato il cursore lampeggiante? Ho deciso che ci doveva essere un modo per gli utenti di Notion di creare una lista di cose da fare "intelligente" in un unico passaggio. Avrebbero potuto aprire l'app e digitare "da fare riordinare cibo per animali" e l'intelligenza artificiale di Notion avrebbe capito cosa intendevano. Volevo anche che questa funzione evitasse elementi duplicati da altre liste di cose da fare recenti.
Ce l'avevo fatta. Ero una babysitter responsabile del codice, lo guardavo scorrere davanti ai miei occhi e poi farsi strada nel mondo. Solo che la mia logica era sbagliata. Il mio trucco per la lista delle cose da fare in qualche modo favoriva infiniti duplicati invece di evitarli. Chi era la colpa: io o l'IA?
Un product designer di nome Brian mi ha spiegato tutto. "Fai finta di parlare con uno stagista intelligente", mi ha detto. Di nuovo con gli stagisti.
Ho invertito la mia logica e ho riprovato, digitando più dettagli su come immaginavo il funzionamento del widget. "Ottima idea", ha risposto Claude, come un leccapiedi, e poi si è messo al lavoro. Quaranta minuti dopo, noi tre avevamo prototipato una versione della mia minuscola – anzi, volevo dire micidiale – funzionalità. Avevamo speso 7 dollari per realizzarla, secondo il contatore di token di Claude Code. Mi è stato detto che altri progetti di ingegneria costavano molto di più, soprattutto se i programmatori lasciavano l'IA in funzione per ore. Era ancora giorno quando ho concluso il primo giorno.
Venerdì mattina mi sono presentato alla sessione dimostrativa. Nella sala conferenze ci aspettavano dei vassoi di formaggi, in onore del compleanno di un dipendente svizzero. I programmatori hanno preso i loro caffè, le loro lattine di Celsius, i loro bicchieri di acqua aromatizzata erogata da una macchina Bevi in cucina.
Una delle prime demo riguardava un agente di intelligenza artificiale di Notion a cui era stata assegnata una memoria, in modo da poter adottare uno stile di scrittura appreso. Per divertimento, un altro ingegnere aveva programmato un'app che teneva traccia degli sciroppi aromatizzati nell'amata Bevi dello staff. Alla fine di ogni presentazione, mi è stato detto, di solito qualcuno prende una piccola mazza e suona uno xilofono. Quel giorno mi hanno nominato custode dello xilofono. L'atmosfera era allegra.
Quando è stato il mio turno di presentare, ho cercato di descrivere in modo succinto le poche funzionalità che avevo codificato (attribuendo il merito ai miei pair programmer). Uno dei responsabili ha posto una domanda di approfondimento: quanto tempo ci era voluto per codificare le modifiche ai diagrammi a sirena, dall'inizio alla fine?
Ho guardato Quinn e Modi. Abbiamo calcolato che la nostra sessione di lavoro era durata circa 30 minuti, più circa 15 minuti di lavoro preliminare svolto da Quinn.
"Wow", disse qualcuno nella stanza.
"Oso immaginare che il grande pubblico impari a scrivere codice", ha scritto la programmatrice e scrittrice Ellen Ullman in un saggio del 2016 intitolato "Programmazione per milioni di persone".
Il sentimento prevalente negli anni 2010, ovviamente, era che tutti potessero imparare un po' di codice. Dovremmo spalancare le porte e invadere la società chiusa in cui si scrive codice, scrisse Ullman. Questa era la nostra migliore speranza per allentare la morsa del codice che ci circonda come società. Come parte del suo processo di informazione, Ullman si iscrisse a tre corsi online aperti su larga scala, o MOOC, che promettevano di insegnare ai normali come programmare. (Oso immaginare il suo sopracciglio inarcato mentre si iscriveva.)
"Infilzate un ago nella scintillante bolla di saggezza ricevuta dal mondo tecnico", esortava Ullman agli aspiranti programmatori. "Fatela scoppiare".
Espandere un diagramma di una sirena o ordinare alfabeticamente un elenco di razze canine non sembrava certo un'operazione da fare a un programmatore. Ma durante il mio periodo a Notion ho avuto la sensazione che una botola nel mio cervello si fosse aperta. Avevo avuto un'idea vaga di cosa significhi essere un anonimo dio della logica che aziona leve. Mi sentivo anche in grado di imparare qualcosa di nuovo – e avevo la libertà di essere scarso in qualcosa di nuovo – in uno spazio semi-privato.
Sia il vibe coding che il giornalismo sono un esercizio di sollecitazione e di ricerca: puoi dirmi di più su questo? Puoi approfondire? Puoi mostrarmi i documenti? Con i nostri simili, possiamo tollerare un po' di imprecisione nelle nostre conversazioni. Se il mio periodo come vibe coder ha sottolineato qualcosa, è che le IA che programmano per noi ci chiedono di esprimere esattamente ciò che vogliamo.
Durante il pranzo di uno dei miei giorni a Notion, un ingegnere mi ha chiesto se uso mai ChatGPT per scrivere i miei articoli. È una domanda che mi è stata rivolta più di una volta quest'estate. "Mai", le ho risposto, e lei ha spalancato gli occhi. Ho cercato di spiegarle il perché: è una questione di principio e non una dichiarazione sulla capacità di un'IA di mettere insieme una scrittura passabile. Ho deciso di non addentrarmi nel modo in cui i cambiamenti nei motori di ricerca e quei piccoli riassunti di IA che punteggiano il panorama informativo hanno fatto crollare il traffico web verso i siti di notizie. Quasi tutti quelli che conosco sono preoccupati per il proprio lavoro.
Un ingegnere di Notion ha paragonato il panico economico di quest'era dell'intelligenza artificiale a quando è stato introdotto per la prima volta il compilatore. L'idea che una persona possa improvvisamente svolgere il lavoro di 100 programmatori dovrebbe essere invertita, ha affermato; al contrario, ogni programmatore sarà 100 volte più produttivo. Il suo manager ha concordato: "Sì, come manager direi che tutti stanno semplicemente facendo di più", ha detto. Un altro ingegnere mi ha detto che risolvere problemi enormi richiede ancora collaborazione, interrogazione e pianificazione. Il Vibe coding, ha affermato, torna utile soprattutto quando le persone stanno rapidamente prototipando nuove funzionalità.
Questi ingegneri sembravano ragionevolmente certi che gli esseri umani sarebbero rimasti aggiornati, anche mentre disegnavano caricature del programmatore del futuro ("100 volte più produttivo"). Anch'io tendo a crederci, e che persone con competenze estremamente specializzate o con una profonda conoscenza della materia saranno ancora richieste in molti luoghi di lavoro. Voglio che sia vero, comunque.
Il saggio di Ullman del 2017 si conclude con una certa disillusione. Aveva giustamente definito i MOOC da lei osservati un miscuglio eterogeneo, pieni di uomini dall'aria fanciullesca e professori poco collaborativi. Un corso sulla progettazione di algoritmi, osservava, era autovalutato da strumenti primitivi, il che significava che gli studenti "cercavano di imparare algoritmi valutati da algoritmi difettosi". Il movimento "impara a programmare" ora appare bizzarro. Pochi avrebbero potuto immaginare che in poco meno di un decennio i computer avrebbero scritto il codice per loro.
Ullman, però, trovava ancora bellezza nello scrivere codice. È questo il punto. È questo il punto quando si crea qualcosa. Se si persevera, se si supera faticosamente il baratro della disillusione, "si percepisce un certo fascino", ha scritto. "Può essere come quelle volte in cui senti qualcuno suonare il pianoforte magnificamente o un sassofono che si dispiega nelle improvvisazioni jazz, e il suono accende in te un desiderio, un'aspirazione a superare le difficoltà e imparare a suonare quella musica".
Il Vibe Coding non ha acceso in me questo desiderio. Al contrario, ho visto più chiaramente che stiamo entrando in un'era vertiginosa di dualità nell'intelligenza artificiale. L'intelligenza artificiale ucciderà i nostri posti di lavoro o ne creerà di nuovi? Sì. Ho tecnicamente sviluppato una funzionalità in un'app che da allora è stata distribuita a cento milioni di utenti, o ho barato durante un compito affidandomi pesantemente all'intelligenza artificiale e ad altri esseri umani? Sì. Ho bisogno di una profonda conoscenza di base della programmazione software per essere un programmatore di successo, o posso cavarmela senza nemmeno sapere il nome del linguaggio di programmazione che sto usando? Anche in questo caso sì.
Nelle mie ultime ore a Notion, l'ho ammesso a Ivan Zhao, CEO di Notion. "Mi rendo conto che, per tutto questo tempo, non ho nemmeno chiesto in quale linguaggio stiamo programmando", ho detto.
Ivan sembrava divertito. "È TypeScript. È una versione più elaborata di JavaScript." Fece una pausa. "Ma il linguaggio che usi non ha importanza. Esprimi il tuo intento a livello di linguaggio umano, in inglese, e ora le macchine possono tradurlo. È questo che fondamentalmente fanno i modelli linguistici."
Per Ivan, questo momento di vibe-coding è particolarmente emozionante. Quando lui e Simon Last hanno iniziato a collaborare all'inizio degli anni 2010 (un terzo cofondatore, Akshay Kothari, si è unito in seguito), immaginavano il loro prodotto come un'app "no code/low code", per aiutare le persone a creare cose con uno sviluppo software minimo. Avrebbero portato il no code/low code al mainstream.
C'era solo un problema: "A nessuno importava", ha detto Ivan. "Nessuno si svegliava dicendo: 'Voglio pensare subito a sviluppare un software'. La maggior parte delle persone pensava solo: 'Devo solo finire questo foglio di calcolo per il mio capo'". Qualche anno dopo, si sono trasformati in quella che sarebbe diventata Notion.
Nell'ottobre del 2022, i fondatori portarono l'intera azienda – allora composta da meno di qualche centinaio di dipendenti – a un ritiro in Messico. Ivan ricordava di aver concluso il ritiro con brevi discorsi: un discorso di apertura, poi qualche parola a cena l'ultima sera. Per il resto, lui e Simon erano chiusi nelle loro stanze d'albergo, a bere acqua in bottiglia e a costruire prototipi con questa novità a cui avevano avuto accesso in anteprima, ChatGPT. Avevano visto cosa poteva generare. Avevano capito che stava per cambiare le cose. In un certo senso, sapevano che la loro idea originale per Notion si era chiusa, tutto grazie all'intelligenza artificiale generativa.
Faccio programmazione in coppia con Brian, un product designer di Notion che si occupa regolarmente di vibe-code.
Fotografia: Sarah SachsIvan, nato in Cina e laureato in scienze cognitive e arte durante l'università in Canada, ha una spiccata affinità per i prodotti di qualità. Indossa un orologio di lusso (regalo della moglie), è ossessionato dai mobili ben fatti e più di una volta mi ha fatto notare che le persone che eccellono nel loro lavoro spesso hanno buon gusto . Il suo amore per il buon design si estende anche agli strumenti che ci aiutano a comunicare; Douglas Engelbart, l'inventore del mouse, è un suo eroe.
Quindi ho dovuto chiedergli: cosa ne pensa della qualità di tutto questo codice generato dall'intelligenza artificiale? Il vibe coding produce altro software scadente ?
Ivan ha risposto che il codice è corretto o scorretto; non c'è una valutazione soggettiva che lo definisca alto o basso. Dal suo punto di vista, se scrivo male le frasi potrei essere considerato un pessimo scrittore, ma se un programmatore scrive male il codice, il programma semplicemente non funzionerà. Il codice generato dall'intelligenza artificiale a volte esce dai binari, ho replicato. Quando qualcuno si perde in chiacchiere, creando un sito web, la posta in gioco è bassa; se si tratta di software di vibe-coding per treni veri, allora le conseguenze degli errori sono maggiori.
Ivan ha ammesso che alcuni programmatori, soprattutto i più giovani, potrebbero acquisire un falso senso di competenza dal vibe coding. È qui che entra in gioco la programmazione in coppia, ha detto. Abbinare programmatori meno esperti con quelli che hanno imparato a programmare prima dell'intelligenza artificiale. "I programmatori senior hanno gusto , giusto?", ha detto.
Da parte sua, Simon afferma di pretendere che le app di programmazione basate sull'intelligenza artificiale siano più esigenti di quanto non lo siano gli ingegneri umani. Ecco perché non gli piace l'espressione "vibe coding". Per lui, il termine sminuisce ciò che questi agenti di programmazione, e gli esseri umani che li utilizzano , sono ora in grado di fare. Simon è uno dei vibe coder più prolifici di Notion. Crede che questo sia il futuro. A un certo punto utilizzava tre diversi strumenti di programmazione basati sull'intelligenza artificiale contemporaneamente. Lo trovava stressante; era come tornare a essere un manager. Ora di solito si affida a uno strumento alla volta.
Allora, come sta pensando ai lavori di ingegneria? Sospirò. "Voglio dire, almeno al momento stiamo ancora assumendo ingegneri in modo molto attivo. Ma vogliamo assumere ingegneri che siano davvero fiduciosi negli strumenti di programmazione." Quel "al momento" significava lavorare molto.
Questi cambiamenti, questa invasione del codice di intelligenza artificiale, si sono verificati tutti negli ultimi quattro-sei mesi. Notion ha persino un ingegnere di intelligenza artificiale assegnato al suo team di vendita aziendale, che insegna ai venditori di software come utilizzare l'intelligenza artificiale nel proprio lavoro. E non è solo in Notion. È ovunque . Il mio esperimento di vibe-coding, pur essendo solipsisticamente perspicace, era già in ritardo .
"Il mondo si sta surriscaldando in molti modi e la sensazione che ho non è 'ho liberato più tempo', ma che c'è più urgenza che mai di usare questi strumenti", ha detto Simon.
Il cambiamento lo esalta e al tempo stesso lo rende ansioso. Mi ha detto che ricorda con affetto il passato non troppo lontano, quando semplicemente programmava e costruiva cose, "quando non c'era, tipo, un'ondata di tsunami sociale in corso. Penso che sarebbe folle non avere un po' di paura".
Solo dopo aver lasciato l'ufficio di Notion, venerdì sera, il mio istinto giornalistico è tornato. Avevo dimenticato di chiedere: Paura di cosa?
Fateci sapere cosa ne pensate di questo articolo. Inviate una lettera alla redazione all'indirizzo [email protected] .
wired