Anul trecut feedul meu de LinkedIn avea un gen al lui. Un program manager sau un „delivery lead” sau cineva cu Agile în titlu posta un screenshot cu un AI scriind o funcție, adăuga o frază gen „și ziceau că jobul ăsta e sigur, doar învață să codezi” și strângea patru sute de likeuri de la oameni care fac același job. Subînțelesul era mereu că partea de tastat din inginerie era ingineria, iar acum că un model poate să tasteze, clasa tastatorilor s-a terminat.
Cred că au citit organigrama pe dos. Și mă bucur că află acum
Uite chestia pe care nimeni de pe partea aia a feedului n-o spune cu voce tare. AI nu e prea bun la partea de rezistență din construit, adică a decide ce ar trebui să facă sistemul, a ști de ce au eșuat ultimele trei încercări și a putea spune când modelul tocmai ți-a dat cu încredere ceva stricat. E cu adevărat, jenant de bun la cealaltă parte. Raportul de status. Notele de release pe care nu le citește nimeni. Catalogul de funcționalități care se învechește într-o săptămână. Planul de test care e în mare o reformatare a criteriilor de acceptare. Update-ul săptămânal care rezumă standupul care a rezumat thread-ul de Slack. Asta nu e munca la care se chinuie AI. Asta e munca pentru care s-a născut AI.
Așa că uită-te cine stă unde. Stratul de suport există, prin design, ca să facă părțile pe care inginerii nu voiau să le facă. Să țină project trackerul la zi. Să fugărească oamenii pentru update-uri. Să transforme două propoziții ale unui inginer într-un paragraf pentru VP. Să transforme un paragraf al unui inginer în două propoziții pentru VP. Să întrețină docul. Să țină ședința în care toți spun ce-au spus în scris ieri. Nu sunt crud când zic asta. Taskurile astea erau reale și erau plictisitoare și trebuia să le facă cineva, ceea ce e tot motivul pentru care au fost finanțate rolurile. Problema e că „produ un rezumat curat al unor date generate de alții” e exact forma a ce face cel mai bine un model de limbaj, iar „produ datele” e partea pe care încă n-o poate face singur.
Și uite asimetria pe care posterii cu obsolescența au sărit-o. Ca să folosești AI bine trebuie să-l poți verifica. Trebuie să citești diff-ul și să știi că e greșit. Trebuie să te uiți la migrarea generată și să observi că n-are rollback. Constructorul are deja asta. E aceeași pricepere care l-a făcut constructor. Stratul de coordonare, pe de altă parte, a fost angajat cu înțelegerea explicită că nu va trebui să citească codul, iar acum toolul care ar trebui să-l salveze produce rezultate în care poate avea încredere doar cineva care poate citi codul. Li s-a dat o drujbă, iar manualul e într-o limbă despre care li s-a spus că nu vor trebui niciodată s-o învețe.
Un program manager bun nu e o mașină de update-uri de status.
Da, știu. Dar din vreo ~40 pe care i-am întâlnit până acum în carieră, poate 2 erau. 38 erau categoric mașini de update-uri de status. Jobul propriu-zis, ăla pentru care merită plătit, e judecata despre ce se taie, acoperirea politică atunci când o lansare alunecă, a ști care „întrebare rapidă” a unui director e o amenințare și a face șase echipe care se urăsc între ele să se angajeze la o singură dată. AI nu face nimic din astea. Nu poate absorbi vina într-o încăpere. Nu poate decide că secvențierea corectă tehnic e cea sinucigașă politic. A reduce întreaga funcție la „ține pagina de Confluence caldă” e cea mai veche fantezie a coderului și s-a înșelat dintotdeauna în privința celor mai buni oameni din rol. Știu.
Jobul de judecată-și-protecție n-a fost niciodată tot headcountul. Sub fiecare dintre acei program manageri cu adevărat buni era un strat de oameni a căror zi propriu-zisă era întreținerea artefactelor, raportul de status, catalogul, deck-ul care reafirma deck-ul.
Gașca cu „inginerii sunt terminați” a înțeles-o pe dos fiindcă a confundat cine produce valoare cu cine e cel mai gălăgios în legătură cu producerea ei. Persoana care poate deosebi un răspuns bun de unul greșit spus cu încredere e persoana pe care AI o face mai valoroasă, nu mai puțin. Persoana aia de obicei construia. Rareori era cea care posta screenshotul.