O singură voce, zece lane-uri: o zi de dictare
Cum arată o zi în care rulezi lane-uri paralele de startup când tastatura nu mai e singurul canal de output. Un parcurs al fondatorului, oră cu oră.
Doi copii, trei startup-uri, o singură voce a povestit originea: lane-uri paralele de startup cu miză mare, un al doilea copil de sub șase luni și o tastatură care devenise discret punctul unic de eșec pentru tot. Articolul acela explica de ce există Keebye. Oamenii au continuat să pună o întrebare mai practică: cum arată de fapt o zi?
Așa că iată ziua aceea. Nu o zi tipică, pentru că nu există așa ceva, ci o formă reală care se repetă. Am să evit intenționat cifrele. Nu am măsurat niciodată o îmbunătățire în procente și nici nu m-aș încrede în una dacă aș fi făcut-o. Ce pot descrie e unde se folosește canalul vocal, unde nu, și ce s-a schimbat în textura muncii.
O notă despre „zece lane-uri". Nu e o laudă. Un lane e orice avansează pe baza unei propoziții de la mine: un agent de programare la mijlocul unei sarcini, un review de cod pe care cineva îl așteaptă, un thread de Slack, un e-mail către avocatul unui investitor, o ciornă de document. Într-o zi aglomerată sunt cu adevărat cam atâtea deschise. Cele mai multe sunt inactive în orice moment dat. Problema e că cele care se trezesc o fac după programul lor, nu după al meu.
Dimineața devreme: un braț, trei agenți
Ziua începe înainte de casă, adică începe cu un bebeluș pe un braț. Asta e ora în care vocea a trecut de la comoditate la necesitate.
Trei lane-uri de agent rulează deja de peste noapte, fiecare în terminalul lui, fiecare în alt repository. Primul lucru pe care îl fac e să citesc ce au făcut. Cititul are nevoie de ochi, nu de mâini, așa că bebelușul e în regulă. Al doilea lucru e să redirecționez lane-urile care au luat-o razna, iar acolo pierdea o tastatură.
Acum: clic în terminal, ții ⌘ dreapta, spui redirecționarea, dai drumul. „Migrarea e în regulă, dar ai redenumit tabelul în model și nu în scriptul de seed. Repară seedul și rulează testele din nou." Textul ajunge în prompt. Enter. Următorul lane.
Am un obicei mic pe care l-am învățat cu greu: vorbește în propoziții complete. Agenții se descurcă mai bine cu ele, iar dictarea le produce natural, pentru că așa vorbesc oamenii. Stilul telegrafic pe care obișnuiam să-l tastez („repară seed, rulează din nou") era un artefact al tastaturii, nu o preferință.
Ora asta scoate la iveală și singura ciudățenie a primei dictări care merită știută. Microfonul se încălzește după prima dictare a sesiunii și păstrează un pre-roll de 500 ms de acolo încolo. Prima apăsare a dimineții poate plăti un cost de pornire a streamului și poate tăia un cuvânt, dacă încep să vorbesc prea devreme. Am învățat să aștept o clipă. De ce aplicațiile de dictare îți mănâncă primul cuvânt explică mecanica; versiunea scurtă e că e o problemă de categorie cu o reparație parțială, nu rezolvată.
Mijlocul dimineții: lane-ul de review
Două dintre startup-urile cu care lucrez au review-uri de cod care mă așteaptă aproape în fiecare dimineață. Review-ul e cel mai bun caz de utilizare posibil pentru dictare: e citit cu output ocazional de proză scurtă, iar proza e adresată unui om.
Citesc diff-ul într-un tab de browser. Când ceva are nevoie de un comentariu, dau clic în casetă, țin, vorbesc, dau drumul. Dicționarul personalizat duce identificatorii proiectului, așa că reconnectBackoff iese ca reconnectBackoff și nu ca trei cuvinte englezești. Curățarea e bazată pe reguli, implicit: cuvintele de umplutură și cele repetate dispar, formularea mea rămâne. Țin șlefuirea opțională prin LLM local oprită pentru comentariile de review, pentru că garda de fidelitate din spatele ei e o euristică împotriva pierderii severe de tokeni, a expansiunii sau a repetiției, nu o garanție că o negație a supraviețuit, iar într-un review un „nu" inversat schimbă verdictul.
Una dintre echipele acestea face review în română. Motorul de 25 de limbi al lui Keebye se descurcă cu asta on-device; fixez limba din tray, iar rostirea următoare e decodată ca română, cu identificatori englezești incluși. Dictează review-urile de cod în limba ta are detaliile, inclusiv lista sinceră a limbilor acoperite și a celor care nu sunt.
Târziu în dimineață: lane-urile umane
Nu orice lane e un agent. Cam pe acum, threadurile de Slack și e-mailurile care s-au învechit peste noapte au nevoie de răspunsuri, iar aici ziua pierdea ore în liniște. Nu pentru că răspunsurile erau grele, ci pentru că fiecare răspuns însemna să părăsești un lane, iar părăsirea unui lane are un cost de reintrare.
Vocea a schimbat economia unui răspuns. Un răspuns de două propoziții pe Slack e o singură apăsare de hotkey, rostită în caseta de mesaj cât timp ochii mei sunt încă pe jumătate pe terminalul de lângă. E-mailurile din zona investitorilor sunt mai lungi și încă le scriu cu grijă, dar prima ciornă e acum rostită, apoi editată. Rostirea unei ciorne pune forma pe hârtie repede; editarea prin tastare e locul unde intră precizia.
Asta e și ora în care cerința de confidențialitate contează cel mai mult. Ce dictez aici e interiorul companiilor altor oameni: produse nelansate, discuții de securitate, bani. Keebye transcrie on-device, funcționează cu Wi-Fi-ul oprit după descărcarea modelului, ține un istoric local doar cu text care se șterge singur după 30 de zile și nu trimite telemetrie. Unde ajunge vocea ta e versiunea lungă a motivului pentru care asta a fost nenegociabilă pentru mine.
După-amiaza: munca profundă și lane-urile care se trezesc
După-amiezile sunt pentru lane-ul care cere gândire adevărată: un design, un bug greu, un document care trebuie să fie corect. Asta se tastează. Vocea e un canal de control, nu un canal de gândire, iar o problemă grea nu devine mai ușoară pentru că e rostită.
Dar celelalte lane-uri nu știu că e vremea muncii profunde. Un agent termină și pune o întrebare. Un reviewer răspunde comentariului meu cu un contraargument. Înainte, fiecare dintre acestea era o decizie: rupi focusul și comuți fereastra sau lași să se învechească. Acum, cele mai multe sunt o privire și o propoziție. Arunc o privire la întrebarea agentului, dau clic, spun „da, dar ține endpointul vechi în viață până livrează clientul", dau clic înapoi. Fereastra de muncă profundă rămâne în mare parte intactă, pentru că întreruperea e de câteva secunde de vorbit, nu o comutare completă de context în problema altcuiva.
Vreau să fiu precis în privința afirmației de aici. Vocea nu face întreruperile gratuite. Face costul mecanic al răspunsului suficient de mic încât costul rămas să fie doar gândul — care oricum a fost mereu costul real.
Seara: lane-ul plin de terminal
Unul dintre startup-uri își rulează o mare parte din munca operațională prin SSH, în tmux, pe servere unde paste-ul din clipboard nu există ca noțiune. Aici cad de obicei instrumentele de dictare, pentru că mai toate inserează textul prin paste.
Keebye inserează implicit tot prin paste, cu un ritm adaptat shell-urilor. Pentru SSH și tmux comut pe modul de tastare opt-in, care injectează textul ca apăsări de taste Unicode în loc să se bazeze pe un clipboard. Funcționează cu layout-uri non-QWERTY, ceea ce contează pentru tastatura românească de pe una dintre mașini. Dictarea care supraviețuiește terminalului acoperă configurarea, iar dictare vocală pentru terminalul macOS acoperă compromisurile.
Keebye refuză de asemenea să insereze în câmpuri de input securizat, așa că, atunci când un server cere o passphrase, hotkey-ul nu face nimic. E ocazional agasant și complet corect.
Ce nu s-a schimbat
O zi ca asta poate suna ca și cum vocea ar fi rezolvat problema de a avea prea multe lane-uri. Nu a rezolvat-o. A rezolvat un singur gât de sticlă anume: costul fizic al livrării unei propoziții către lane-ul care avea nevoie de ea. Tot restul e la fel.
Gânditul e în continuare gâtuirea pentru munca grea. Cititul ia în continuare cât ia. Agenții o iau în continuare razna și au în continuare nevoie de redirecționare, iar o redirecționare mormăită produce un rezultat mormăit, fie rostită, fie tastată. Vocea e un supliment pentru mâini, nu un înlocuitor; tastez destul de mult, doar nu mai sunt singurul punct de strangulare în spatele căruia așteaptă fiecare lane.
Iar aplicația are marginile aspre ale softului tânăr. Identificatorii sunt auziți greșit. Primul cuvânt al zilei se taie uneori. Nu există vocabular de comenzi vocale, așa că navigarea între ferestre rămâne un clic. Rulează doar pe macOS.
Forma lucrului
Vechea imagine a developerului 10x era un om care tastează mai repede. Imaginea care a venit de fapt e un om care dirijează: mai multe lane-uri, unele automatizate și unele umane, fiecare așteptând o propoziție. În lumea aceea, pârghia nu e viteza de tastare. E cât de ieftin poți livra intenția către lane-ul care are nevoie de ea, în orice situație fizică te afli, inclusiv cu un braț ocupat.
Dacă ziua ta are forma asta, ghidul pentru programatori e punctul de plecare practic, iar dacă cântărești aplicații de dictare pentru ea, prezentarea noastră a alternativelor la Keebye e o comparație onestă care spune unde se potrivește mai bine fiecare. Proba are 14 zile și începe la prima autentificare din aplicația desktop, așa că o săptămână reală de lane-uri e exact pentru ce e făcută.
Mai multe lane-uri decât mâini? Încearcă celălalt canal.
Începe proba gratuită și rulează o zi reală cu vocea drept al doilea canal de output — 14 zile, on-device, fără card.
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
Citește mai departe
Doi copii, trei startup-uri, o singură voce
Povestea fondatorului Keebye: fluxuri paralele cu miză mare, un bebeluș sub șase luni și rezultate care cresc cu numărul de lane-uri conduse cu vocea.
Dictează review-urile de cod în limba ta
Codul e în engleză. Comentariile tale de review nu. Cum dictezi feedback de review în una din 25 de limbi on-device și de ce contează fixarea limbii.
Dictarea prompturilor către agenți paraleli, lane cu lane
Rularea a doi sau trei agenți de programare simultan face din prompt gâtuirea. Un flux vocal pentru a hrăni lane-uri paralele fără să pleci din cel curent.