Un singur om, mulți agenți, nicio coadă de aprobări
Când agenții fac o mare parte din construcție, scrierea unei schimbări nu mai este partea lentă a muncii mele. Partea lentă vine după: hotărârea că schimbarea este corectă. Când un singur om ia această decizie pentru fiecare schimbare, toate așteaptă în aceeași coadă, iar coada este chiar omul acela.
Soluția nu este să verifici mai repede, ci ca un singur om să nu mai fie cel care acceptă fiecare schimbare.
Organizațiile de inginerie au rezolvat deja asta
Companiile cu mulți ingineri s-au lovit de aceeași problemă cu mult înainte de agenți. Răspunsul lor nu a fost un aprobator neobosit, ci câteva reguli care stabilesc dinainte cine trebuie să se uite la ce:
- Separarea responsabilităților. Cel care a scris o schimbare nu este cel care o acceptă.
- Zone sensibile stabilite după locul lor în cod. Ce contează drept sensibil este scris o singură dată, ca nimeni să nu decidă de la caz la caz dacă propria schimbare este riscantă.
- Schimbările cu risc mic, acceptate pe baza dovezilor. O schimbare care nu atinge nimic sensibil se închide când trec controalele ei consemnate, fără ședință.
- Responsabili care citesc rezultatele pe loturi. Cei care răspund pentru rezultat citesc împreună ce s-a terminat și ce a mers prost, în loc să semneze fiecare element în parte.
Nimic din toate acestea nu cere o echipă mare. Cere ca regulile să fie scrise, iar dovezile să fie consemnate acolo unde pot fi verificate.
Adaptat pentru un singur om
Lucrez ca un singur om responsabil, cu mai mulți agenți. În produsele care au adoptat aceste reguli, aceeași formă arată așa:
- Decide o listă, nu o apreciere de moment. Fiecare produs păstrează o singură listă cu zonele care au nevoie de o verificare independentă și cu cele care au nevoie de acordul meu. Agentul care face lucrul nu își etichetează singur schimbarea.
- Fiecare schimbare se închide pe baza dovezilor consemnate. Controalele care au rulat și ce au returnat, exact pe versiunea pe care au rulat; pentru o schimbare de comportament, un test care a eșuat înaintea ei și trece după ea. O schimbare fără nimic consemnat nu este gata, oricât de bine ar arăta.
- O zonă sensibilă este verificată înainte de publicare. Verificatorul este un agent separat, care nu a scris schimbarea. O citește față de criteriile de acceptare inițiale, nu față de rezumatul autorului, și caută defecte, nu probleme de stil.
- Zonele mele au nevoie de acordul meu explicit. Pentru zonele care sunt ale mele, verificarea nu ajunge; schimbarea așteaptă decizia mea.
- Citesc rezultatele pe loturi. În loc să aprob fiecare element pe măsură ce apare, citesc împreună ce s-a terminat, ce au găsit verificările și ce a trebuit reparat ulterior.
Rostul este să nu mai fiu eu coada. Schimbările obișnuite se închid pe baza propriilor dovezi, cele care ating ceva sensibil primesc un al doilea cititor, iar atenția mea merge spre deciziile care chiar îmi aparțin.
Ce nu face
Limitele contează la fel de mult ca regulile:
- Controalele automate te apără de uitare, nu de trișat. Un control automat care refuză o schimbare fără dovezi oprește o omisiune onestă. Nu oprește pe cineva hotărât să o ocolească, și de aceea încă citesc rezultatele.
- Un verificator poate avea aceleași puncte oarbe ca autorul. Un verificator din aceeași familie de modele ca autorul poate rata exact ce a ratat și autorul. De aceea măsura nu este verdictul verificării, ci ce a trebuit reparat mai târziu. Asta decide dacă o zonă are nevoie de mai multă sau de mai puțină verificare, iar numai eu mut o zonă de pe o listă pe alta.
- Unele acțiuni au mereu nevoie de acordul meu. O lansare, o cheltuială, un pas juridic sau un mesaj către un client au în continuare nevoie de acordul meu pentru acea acțiune anume. Codul verificat nu aduce cu el și permisiunea de a-l lansa.
Dacă lucrăm împreună
Iată la ce te poți aștepta de la mine: specificația înaintea codului, schimbările din zonele sensibile verificate de un agent separat înainte să fie publicate și o declarație clară despre stadiul la care a ajuns fiecare lucru, dintre cele cinci stadii ale lui „gata”. Întreaga metodă este pe pagina Cum lucrez cu agenți AI.