Przejdź do treści

BlogAI

Code review w czasach, gdy kodu nikt nie napisał

Review nigdy nie było tylko szukaniem błędów

Przez lata mówiliśmy, że review służy łapaniu błędów. Ludzie naprawdę po to je otwierali. Błąd widoczny w jednej linijce był najtańszą częścią tej roboty. Trwalszy skutek był inny: druga osoba w zespole miała w głowie model zmiany. Wiedziała, jakiego zachowania ta zmiana broni, a jakiego nie. Gdy autor szedł na urlop, review było śladem, że decyzja nie mieszka w jednej głowie.

Przy ręcznym pisaniu kodu te dwie rzeczy przychodziły razem. Autor podejmował decyzje w trakcie pisania, a diff był ich zapisem. Osoba robiąca code review odtwarzała je, czytając kod. Mogła się nie zgodzić, pochwalić rozwiązanie, zaproponować inne.

AI te dwie rzeczy rozdzieliło. Diff nie jest już śladem decyzji. Jest prawdopodobnym rozwiązaniem zadania, które dało się streścić promptem. Osoba otwierająca pull request często jest pierwszym czytelnikiem, nie autorem wyborów.

Drugi model nie jest drugą osobą

Łatwo wziąć komentarz modelu AI za niezależną parę oczu. Model, który pisze kod, i model, który go komentuje, czerpią z tego samego rozkładu: z tych samych przykładów, tych samych pominięć, tego samego sposobu uznawania, że coś „wygląda na poprawne”.

Widać to najwyraźniej, gdy model poprawia kod wygenerowany przez siebie. W badaniu, w którym modele naprawiały kod czterech różnych generatorów, w tym własny, najsłabsze wyniki wypadały właśnie na kodzie własnym. Recenzent ma wtedy tę samą ślepą plamę co autor, bo to ten sam autor.

Jest i drugi koszt, cichszy. Model nie tylko coś pomija. On wskazuje, gdzie patrzeć. Eksperyment opisany na konferencji ICSE 2025 objął 29 zawodowych programistów i ponad 50 godzin nagranych recenzji. Ci, którzy dostali na początek komentarz wygenerowany przez model, uznawali jego uwagi za trafne. Czytali przede wszystkim miejsca, które model zaznaczył. Wyłapywali więcej usterek niskiej wagi. Usterek wysokiej wagi nie wyłapywali więcej niż osoby recenzujące ten sam kod bez tej podpowiedzi. Recenzja nie trwała krócej. Człowiek przestaje wtedy szukać. Zaczyna potwierdzać cudze szukanie. A cudze szukanie kończy się tam, gdzie kończy się wyobrażenie modelu o zadaniu.

Czego review ma bronić

Nie będziemy czytać każdej linii. Przy obecnym tempie to zdanie jest opisem stanu, nie postulatem. Pytanie brzmi, co w recenzji zostaje przy człowieku, skoro resztę naprawdę lepiej oddać.

Approve jest przejęciem odpowiedzialności - podpisem. Oznacza to, że rozumiem tę zmianę na tyle, że gdy jutro zachowa się źle, wiem, gdzie szukać rozwiązania. Build może być zielony. Komentarz modelu AI może być trafny co do nazwy funkcji. Odpowiedzialność i tak zostaje przy zespole.

Review było miejscem, w którym ta decyzja musiała paść drugi raz, innymi słowami, z ust kogoś, kto jej nie wpisał. Tego miejsca nie zastąpi model AI, który czyta ten sam tekst i uznaje go za spójny. Zespół, który oddaje klientowi system, ma wiedzieć, jak ten system działa

Czytaj dalej

Wolicie zobaczyć, jak to wygląda w projektach, a nie w teorii? Zajrzyjcie do realizacji

Wróć na blog

Porozmawiajmy