#AI #Developer Productivity #AI-Assisted Programming #Code Generation
“Człowieka zaczęły spadać już tylko edge case’y.” Łukasz przywołuje raport BCG o zjawisku “brain fry” - przemęczeniu przy pracy z AI agents. Plot twist? Problem ma korzenie w automatyzacji fabryk z lat 50. - Ironies of Automation i vigilance decrement, czyli spadek czujności spowodowany nadzorem. Context switching zabija produktywność, ale może robisz to źle? 🎯
Dwa podejścia, dwa światy. Mikrozarządzanie AI jak “dłuższa kompilacja” prowadzi do wypalenia. Delegowanie większych zadań? Szymon: “To bardzo ambitny junior z 25 letnim doświadczeniem - tak trzeba go traktować.” Łukasz kontratakuje: “Jak sobie popatrzysz na profile ryzyka w niektórych miejscach, to jest proszenie się o zabójstwo.” SonarQube w feedback loop, Claude Opus z większym kontekstem, ale edge case’ów masa. ⚠️
Dark code factories - mit czy rzeczywistość? Szymon zna systemy produkcyjne w pełni wygenerowane przez AI, gdzie “nie skupiaj się na generowaniu ładnego kodu, bo i tak go nie będę przeglądał”. UI na pałę, ale CI/CD? Bug zjadł darmowe minuty na GitHub Actions. Code generation przyspiesza, ale czy Twój feedback loop wyłapie to, co ucieknie automatycznym testom?
Łukasz ogranicza się do 2-3 kontekstów, Szymon operuje 4 wirtualnymi desktopami. Developer productivity czy kontrolowany chaos? Rok AI-assisted programming czy rok trzeźwienia po brain fry? 🤖
Linki i ciekawe znaleziska
Transkrypcja
Szymon Warda: Gdzie traktujesz go jako juniora, który po prostu ma zadanie na jakieś pół godziny, godzinę i tak dalej, to nie, tu wypalenia nie będzie.
Łukasz Kałużny: Słuchaj, jak sobie popatrzysz na profile ryzyka w niektórych miejscach, to jest proszenie się o zabójstwo.
Szymon Warda: To jest bardzo ambitny junior z 25 letnim doświadczeniem i tak trzeba go traktować.
Łukasz Kałużny: Tak naprawdę człowieka zaczęły spadać już tylko edge case’y.
Szymon Warda: To są wszystko narzędzia, które działają, mogą bardzo mocno przyspieszyć. Czy można się przygotować? Tak. Czy wykorzystując je będzie się można łatwo kopnąć w kolano, kostkę i jeszcze inne części ciała? Oczywiście. Cześć! Słuchacie Patoarchitektów. Prowadzą Szymon Warda…
Łukasz Kałużny: I Łukasz Kałużny. Wszystkie linki do tego odcinka tam gdzie zawsze, czyli na dole. Polecimy dzisiaj szybko więc przypominamy - konferencja Pato 16 czerwca. Szymon się określił dzisiaj z tematem i nie opowie o AI-u, albo postara się nie opowiedzieć. Więc o czym Szymon?
Szymon Warda: Czwarty filar - observability. Czyli mianowicie to, jak ja to uważam, czyli to są profile. Czyli powiemy sobie trochę o profilowaniu, eBPF-ach, jak to połączyć, jacy są gracze, co to w ogóle daje i czemu, jak security to widzi, to robi pod siebie dosłownie.
Łukasz Kałużny: A u mnie wygrał temat 200 odcinków patologii, czyli co oglądamy, co się powtarza na rynku. Więc…
Szymon Warda: Też ciekawe.
Łukasz Kałużny: Będzie ciekawie. No i czekamy jeszcze na sesję Mariusza Gila i jeszcze jedną, to już będziemy zaraz ogłaszać pełną agendę. Bilety znajdziecie w opisie. A, no i oczywiście na koniec nagrywamy dwusetny odcinek wspólnie tam na żywo, będziecie mogli pierwsi go usłyszeć w postaci takiego panelu dyskusyjnego. Dobra, to o czym Szymon?
Szymon Warda: Dzisiaj będzie o content switchingu, bo nas prosiliście, bo temat wywołał duże zainteresowanie w ogóle wbrew temu, co się spodziewaliśmy. Przynajmniej ja się tak nie spodziewałem. Więc trochę naszych rad jak do tego podejść w ogóle, jak ugryźć temat, jak żyć, żeby żyć.
Łukasz Kałużny: Dobra, to ja zacznę od swojej w ogóle opinii. Dla mnie, w ogóle powołam się dzisiaj, Szymon już zrobił raz wielkie oczy srającego kota. Pozdrawiamy przedszkolaki. Dobra, o co chodzi? Jak nigdy powołam się na raport z BCG. I to jest, jeżeli nas słuchacie dłużej, wiecie, że szydzimy z tych raportów. Ale BCG wydał teraz na temat zjawiska “When using AI leads to Brain Fry” opublikowanym w Harvard Business Review. Jest on sprzed dwóch tygodni, jak teraz to nagrywamy, z 5 marca. I słuchajcie, w tym miejscu jest tam powiedziane, że na dość dużej próbce ankiet wyszło, że ludzie czują się przemęczeni. To jest to, co ja powiedziałem, że mnie na przykład to męczy. I teraz Szymon, ale idziemy, i zacząłem sobie badać ten temat w ogóle. Bo jak wszystko IT ma korzenie w latach 50., 70. z automotive i przemysłu, prawda?
Szymon Warda: No dużo rzeczy tak.
Łukasz Kałużny: Tak. I słuchaj, wyobraź sobie, że miało to w ogóle swoją nazwę, kiedy wprowadzano pierwsze prawdziwe automatyzacje do fabryk.
Szymon Warda: Dajesz, bo ja mam (…) do tego.
Łukasz Kałużny: Dobra i poleciało, to było w tym. Całe zjawisko, potem problem został nazwany jako Ironies of Automation i villages decrement, czyli spadek czujności spowodowany monitorowaniem i nadzorem. To jest jedna rzecz. A druga, że tak naprawdę człowieka zaczęły spadać już tylko edge case’y.
Szymon Warda: Dobra, to teraz kontekst. Ja się z tym zgadzam i się z tym nie zgadzam, bo to jest prawdziwe i nieprawdziwe. Jeżeli traktujesz kodowanie z agentem jako na zasadzie generalnie mikrozadań, mówienie co masz po kawałku robić, to to jest takie trochę dłuższa kompilacja i małe kroki. Natomiast jeżeli podchodzisz do agenta na tej zasadzie, że dajesz mu zadanie, które ma start, ma poziom weryfikacji, ma deployment i tak dalej, gdzie traktujesz go jako juniora, który po prostu ma zadanie na jakieś pół godziny, godzinę i tak dalej, to nie, tu wypalenia nie będzie. Ale to co widzimy też, Ty też to widzisz, że sporo właśnie ludzi podchodzi do AI na zasadzie generalnie małych zadań, takich małych (…), na5 minut powiedzmy (…).
Łukasz Kałużny: Dobra, to tak i to jest wypalenie. Tylko teraz jak mówisz o tych większych, Szymon sorry, ale jak ja teraz robię coś bardziej w tym, potrafi wyprodukować to kupę i polecieć w kierunku…
Szymon Warda: Oczywiście, że tak.
Łukasz Kałużny: W sensie inaczej, widzisz, teraz wiesz, mówisz sobie, że dajesz zadanie na godzinę. No nie, bo słuchacj… Inaczej, rzecz, którą na przykład zacząłem wprowadzać, o czym rozmawialiśmy, gdzieś napisałem też na Discordzie, że zacząłem testować i przepraszać się z SonarQubem, żeby zrobić go w feedback loop. I nie, ludzie, nie pokrycie testami, ale tam są dwie, trzy takie wstrętne typy anomalii. Czyli błędy security wynikające ze statycznej analizy… Raczej statyczna analiza kodu wskazująca na potencjalne błędy bezpieczeństwa i w logice tej, jeżeli chodzi o bezpieczeństwo. I dwie kolejne, to jest złożoność cyklomatyczna, tak. Dobrze zacząłem po polsku?
Szymon Warda: Tak.
Łukasz Kałużny: Tak, tak i tam jest tam nowa metryka ich autorska, czyli nowa, ona jest tak stara, że, ale nazwijmy ten, to jest ten cognitive load, gdzie jest, tam mają swoją punktację, że coś jest przekombinowane razem z tym złożonością. I zacząłem z tym kombinować. Jako feedback loop jest ciekawszy. Tylko znowu Szymon wiesz… Inaczej, u mnie jest przeciążeniem nie to, że puścimy, tylko potem potencjalne review. Potencjalne review, sprawdzenie tego, bo kurde to się potrafi, wiesz o tym, że na dziwnych pierdołach potrafi wygenerować masę edge case’ów.
Szymon Warda: Oczywiście, że tak. Łukasz, teraz powoli od AI Hyper powoli zmierzasz do kod pisany bez żadnego AI-a?
Łukasz Kałużny: Nie, nie, nie zmierzam. Inaczej, wróć, nie pójdę tą drogą. Nie, nie widzę odwrotu. Inaczej, jeżeli o to chodzi, nie widzę odwrotu. Wiesz co? Kojarzysz na przykład shadow, teraz pojawia się ten koncept shadow software fabric, shadow software developer, że masz, dark code factories, że wrzucasz feature’y i niby ci to wszystko agentami obgania. Wiesz, że to jest mit w tym momencie.
Szymon Warda: Zależy. Znam systemy, które weszły na produkcję, naprawdę nie poznałbyś, które są wygenerowane całkowicie z AI-a. Łącznie, że jeden z moich znajomych ma jeden prompt, który wrzuca zawsze w instrukcję, to jest na zasadzie, że nie skupia się na generowaniu ładnego kodu i tak go nie będę przeglądał.
Łukasz Kałużny: Wiesz, ale dobra stary, tylko że to… Słuchaj, jak sobie popatrzysz na profile ryzyka w niektórych miejscach, to jest proszenie się o zabójstwo.
Szymon Warda: I tak, i nie. Bo teraz znowu wracamy do tego feedback loopa. Mnie osobiście, jak ten kod wewnętrznie wygląda, semi interesuje, średnio. Jeżeli obudujesz go odpowiednimi regułami wejścia i wyjścia, co, zgadzam się, nie jest łatwe, żeby nie było, nie jest totalnie łatwe, ale odpowiednie reguły wejścia/wyjścia i odpowiednia jego pętla zwrotna, żeby on mógł zweryfikować co tam wykombinował, to w tym momencie ten czas się wydłuża jego pracy i jednocześnie no nie czekam na wynik, ale zdania sobie będzie pełne i nie trzeba mikro zarządzać tym. Czyli dajesz mu tryb planowania i on jedzie po kolei. I tą pętlę ma, leci, leci, leci.
Łukasz Kałużny: I wiesz co, i powiem Ci tak, to co wiesz, to co mnie zaczęło gdzieś teraz patrząc się tak z perspektywy zupełnie reliability kodu, tego co się dzieje wokół i kurde jest kupa Szymon. Jak go tak puścisz jest kupa edge case’ów, w którym feedback loopem i automatycznymi testami na początku nie wyłapiesz.
Szymon Warda: Ależ oczywiście.
Łukasz Kałużny: Jest tego masa. Jest tego o wiele większa… Inaczej i sam by się pewnie zaadresował przeglądając ten kod na bieżąco, że poszedł i poleciał w złą stronę.
Szymon Warda: Oczywicie, tylko dla mnie, dobrze powiedziałeś odnośnie tego względnego odniesienia do adresowania, bo sorry, jak patrzę i jeszcze pamiętam jak to wyglądało w czasach, kiedy dużo więcej kodowałem, to średni kod od średniego developera albo początkującego juniora miał jeszcze więcej tych edge case’ów nieogarniętych. Więc to wracamy do tego, co ty mówiłeś, to jest bardzo ambitny junior z 25 letnim doświadczeniem i tak trzeba go traktować i tam będzie.
Łukasz Kałużny: Ostatnio gdzieś usłyszałem: to senior, który próbuje szybko wejść do projektu, a nie wie, jak się załatwić.
Szymon Warda: Tak, ale z takim juniorem to w tym momencie ta jakość kodu wcale nie jest dużo inna, dużo gorsza, bym powiedział. Porównując to z seniorami i tak dalej, ok, tak, zgadzamy się. Ale mówimy w tym momencie o wygeneruj UI-e, wygeneruj CI/CD-ki, wygeneruj IaC-e.
Łukasz Kałużny: Dobra, inaczej, o, przykład, dobra, to tu inaczej, to akurat wiesz o tym, że akurat to puszczam na pałę: wygeneruj UI-a. Wiesz o tym, że puszczam i z gotowych komponentów puszczamy to na pałę, bo API ma walidację i tyle i tam jest logika.
Szymon Warda: Tak, co też widać na przykład w Patonewsletterach.
Łukasz Kałużny: Nie, teraz jest fallback, jest fallback. Jest fallback, za późno mi napisałeś, wiesz o tym.
Szymon Warda: Trochę złośliwości musi być.
Łukasz Kałużny: Wiem. Nie, nie, ale masz rację, fallback właśnie, teraz już ręczny feedback został udzielony, jest fallback.
Szymon Warda: Tak.
Łukasz Kałużny: Dobra.
Szymon Warda: Okej, zgodzę się z tym, jak mamy bardzo skomplikowane logiki biznesowe, które obrosły przez lata, tak, on się zgubi, w ogóle bez dwóch zdań zgubi się. Dla małych serwisów, mikro - ogarnie.
Łukasz Kałużny: Dobra, więc nie, ja mam takie wiesz, ja po prostu doszedłem do… Kurde, inaczej, próbuję to ładnie teraz ugryźć. Jestem, czuję się ofiarą, ostatnio w niektórych przypadkach, bugów, które mnie trafiły na przykład w niektórych miejscach. Dobrze, że one mi szybko wybuchły w twarz, ale na przykład też dostałem gdzieś po twarzy, o tak Szymon, w tym, co robiłem. I jest tak, że frontend to walę wiesz, tak jak powiedzieliśmy, frontend… O, przepraszam, w CI/CD mi zwalił sprawę jak junior. To jest w ogóle ciekawostka, nie wykluczył przy customizie, akurat dobrze, że to side project, nie wykluczył mi przy customizie filtrów i za każdym razem jak był image update, to triggerowało w tym, był commit z Fluxa, że podbija image. To generowało nowy i zjadło mi całe darmowe minuty na actions akurat prywatnym tym. Pierdoła, ale wiesz, była. I dobra, ja Ci powiem tak, patrząc się to, co ja zrobiłem, ja… Inaczej, to mi przyspiesza pracę i w ogóle się okazuje, że doszedłem do podobnego wniosku w tym artykule zacytowanym, że dla mnie to są dwie duże rzeczy, które sobie latają i jakaś drobna, nad którą się skupiam, ale nie mam więcej niż dwóch, trzech kontekstów. To jest na przykład w moim przypadku ograniczyłem ilość kontekstów i ilość skakania między projektami.
Szymon Warda: No to ja mam inaczej. Wiesz co, wspominałem o tej książce właśnie, która była odnośnie trzymania uwagi. Mój flow jest ju teraz bardzo mocno wypracowany. Wirtualne desktopy na absurdalnie szerokim monitorze, widziałeś, więc wiesz, pół monitora - przeglądarka, pół monitora - VSCode i zawsze jest prosty flow. Tam jest tylko i wyłącznie rzeczy odnośnie tego konkretnego zadania. Jak zadanie się skończy zamykam cały desktop, wszystko i kolejne, i kolejne, i kolejne. I to się sprawdza fenomenalnie dla mnie. I tam 4 to jest taka normalka bym powiedział. Łącznie z jakimś RnD, łącznie z jakimś kodowaniem. Natomiast załóżmy unikam tego, co Ty kiedyś powiedziałeś, że na przykład dwóch jednoczesnych agentów albo 2 jednoczesne przepływy na jednym projekcie, to w ogóle mi się nie sprawdza.
Łukasz Kałużny: Nie, to jest tak, to jest wiesz, teraz jeszcze te git worktrees, ale inne te rzeczy. Więc tutaj… Inaczej, to moja rzecz, ograniczam ilość kontekstów jednoczesnych. Bo dla mnie to na przykład prowadzi, to jest taki właśnie moment do, u mnie prowadzi to do przemęczenia.
Szymon Warda: Wiesz co, ja skupiam się na tym właśnie, żeby dawać mu w kontekście folderu jak najwięcej informacji, których potrzebuje, łącznie z dostępami, oczywiście zaszyfrowane przez git secrets, żeby miał w katalogu wszystko, co może wykorzystywać i nawet dość spore uprawnienia, żeby po prostu ta pętla była jak najdłuższa i ten prompt konkretny z punktami. I na końcu zawsze jest zdanie: commit, deploy, verifie and fix all the bugs. I to robi robotę, bo w tym momencie faktycznie wchodzi w pętlę i tam potrafi naprawdę dłuższy czas spędzić na mieleniu. I nie zerkam, że tak powiem, no nie. Dużo bardziej rozpraszały mnie inne rzeczy, więc to nie jest w ogóle żaden problem. A, co jeszcze ważne, Power Toolsy do snopowania odpowiednich okien, żeby to się wszystko ładnie mieściło, żeby (…)…
Łukasz Kałużny: No to jest takie ten.
Szymon Warda: Żby był cały kontekst, to jest super sprawa.
Łukasz Kałużny: Więc wiesz, ja… Inaczej, więc wiesz, to jest ok, super ważne. Ułożenie tego, wiesz, ja tak patrzę, ułożenie tego na ekranie - nie. Dla mnie największym kontekstem jest koszt przełączania się i skakania. I potem dużym kosztem jest w ogóle dowiedzenie się, co tam jest, co się stało i jak to będzie wyglądało.
Szymon Warda: Musimy kiedyś siąść koło siebie, generalnie zobaczymy, ale będzie okazja niedługo.
Łukasz Kałużny: Tak, jest w tym. Więc to jest taka, wiesz, to jest zupełnie inaczej i mimo… Inaczej, za dużo kontekstów powoduje poziom chaosu, którego ja już nie ogarniam. To jest rzecz. Część z Was tego nie wie, czasami, kiedyś w starych odcinkach były z tego dowcipy, ale tak, ja żyję w bardzo kontrolowanym chaosie na co dzień, jeżeli chodzi o sposób pracy.
Szymon Warda: Nie wiem do czego się przyczepić bardziej, czy do bardzo, czy do kontrolowanym, ale generalnie niech będzie. Ale muszę powiedzieć, że od Ciebie też podkradłem skille i coraz więcej skilli w kontekście tego, żeby mu dokładnie definiować co ma po kolei robić.
Łukasz Kałużny: Ale to są, wiesz, to jest małe, tylko wiesz, to jest też tam kurde zgubi się… Inaczej, dobra, Opus zrobi to trochę lepiej. Mam wrażenie, że limit zapchania kontekstu przez te nowe okno się trochę przesunął, o tak, mam takie wrażenie, że coś tam podrasowali w ciągu ostatnio, tak. Dobra, jeszcze jest duży disclaimer, bo wszyscy ten. My ten przepraszam, ale jesteśmy trendsetterami, więc zaśmieję się, nie tak jak cały rynek odkryliśmy, kto da w tym momencie, tylko Ci, co nas nie słuchali, zapraszamy do odcinka sprzed roku. I wtedy już była mowa o Claudzie.
Szymon Warda: To są wszystko narzędzia, które działają, mogą bardzo mocno przyspieszyć. Czy można się przygotować? Tak. Czy wykorzystując je, będzie się można łatwo kopnąć w kolano, kostkę i jeszcze inne części ciała? Oczywiście i z dużo większą prędkością. Czy można się przygotować? Tak. Czy dokładnie te same problemy widziałem w projektach, które się długo kompilowały? Tak, to jest dokładnie ta sama bajka, że ludzie tracili nagle kontekst, stracili fokus, bo coś się komplikowało 3, 4, 5 minut. To się niczym nie różni. Więc że tak powiem witamy w klubie.
Łukasz Kałużny: Ja ograniczam, o tak. Czyli moje podejście jest takie: ograniczam sobie ilość wątków. O, przykładowo wiesz, tak jak mówisz, teraz leci mi rzecz tutaj na przykład ręcznie bym, 3 tygodnie bym do tego podchodził i nie chciał zrobić, bo trzeba zrobić analizę z palca jakiegoś tam dużego zbioru danych, poprawności, matchowania i innych rzeczy. Nie, jest to puszczone sobie i koniec. Nie dotykam tego, to sobie leci w tle. Później pójdę sobie pooglądać wyniki i jakoś losowo połapię próbki przykładowo i to będzie spoko i to się nie przemęczy. Ale tak na bieżąco po prostu mówię skrzywdziłem, ostatnio się sparzyłem, o, to jest ładne określenie.
Szymon Warda: No dobrze, to co, kończymy ten odcinek, bo powoli to się zamienia w starzy ludzie krzyczą na chmurek.
Łukasz Kałużny: Starzy się ludzie zebrali, nie ogarniają kuwety. Jak to było ten na firmowych teamsach? Szymon, to nie choroba, to czterdziestka. Trzymajcie się. Na razie.
Łukasz Kałużny: Na razie. Hejo!

Wypełnij poniższy formularz, aby być na bieżąco ze wszystkimi
odcinkami Patoarchitektów
i uzyskać dostęp do dodatkowych
materiałów.