Generisanje koda može iskusnog developera da natera da se oseti zamenljivo. Zadatak koji je ranije uzimao celo popodne sada dobije ubedljiv prvi nacrt za nekoliko minuta.
Greška je meriti posao brojem otkucaja. Softverski inženjering nikada nije bio samo proizvodnja izvornog koda. Posao je da nejasnu potrebu pretvoriš u sistem koji nastavlja da radi posle release-a.
Odvoji output od ishoda
AI alat može da napravi patch. Inženjerski ishod obuhvata mnogo više:
- zahtev odgovara problemu korisnika;
- dizajn odgovara postojećem sistemu;
- kvarovi i zloupotrebe su obrađeni;
- podaci ostaju tačni tokom migracije;
- izmena može da se nadgleda i vrati;
- neko može da je održava za šest meseci.
Generisani kod čini output jeftinijim. Ne uklanja ove obaveze. U nekim timovima ih povećava jer više koda brže stiže na review.
Premesti trud na tačke odluke
Vredan rad se pomera ka odlukama koje utiču na mnogo kasnijih koraka.
Specifikacija pretvara „dodaj dozvole“ u aktere, resurse, akcije, početna pravila, nasleđivanje, audit potrebe i zabranjena stanja.
Dekompozicija bira redosled u kom je svaka izmena dovoljno mala za proveru i dovoljno bezbedna za isporuku.
Review proverava ponašanje, arhitekturu, bezbednost, podatke, operacije i održavanje. Formatiranje je lak deo.
Verifikacija bira dokaz koji može da opovrgne agentovu tvrdnju da je posao gotov. Zelen test koji ne prolazi kroz promenjenu putanju je ukras.
Vežbaj veštine za koje model ne odgovara
Inženjersku procenu možeš svesno da treniraš.
Za svaki zadatak napiši uslove prihvatanja pre otvaranja editora. Posle implementacije uporedi diff sa njima i zapiši šta specifikacija nije predvidela.
Kada odbiješ generisan dizajn, objasni razlog običnim jezikom. Imenuj prekršeno pravilo ili buduću cenu umesto da kažeš da rešenje „ne deluje dobro“.
Debug zasnivaj na dokazima. Ponovi kvar, suzi sloj, postavi proverljivu hipotezu i izvedi najmanji eksperiment koji razdvaja dva moguća uzroka.
Čitaj sistem izvan feature-a koji menjaš. Isprati zahtev kroz mrežu, aplikaciju, bazu, red poruka, metrike i deployment.
Nastavi da kodiraš
Manje kucanja ne znači da treba da prestaneš da razumeš kod. Čitanje generisanog koda bez sposobnosti da ga napišeš ili izmeniš stvara plitku sigurnost.
Nastavi da praviš male komponente od nule. Isprati rad nepoznate biblioteke. Napiši test pre nego što od agenta zatražiš implementaciju. Debuguj pre zahteva za nov patch.
Ove vežbe čuvaju mentalni model potreban za procenu bržeg outputa.
Promeni meru svog rada
Broj linija i sati kucanja su loše mere. Bolja pitanja su:
- Da li sam smanjio neizvesnost?
- Da li sam opasnu ivicu našao pre produkcije?
- Da li je sistem posle mene manji i jasniji?
- Može li drugi inženjer da proveri zašto je izmena tačna?
AI menja raspodelu truda. Developer koji ume da oblikuje problem, ograniči rešenje i dokaže rezultat i dalje odgovara za sistem.
Ta odgovornost nije utešna nagrada posle kodiranja. To je posao.