#AMA #AI Harness #AI Accountability #Spec-Driven Development #Developer Experience #Long Running Agents
“AI jest idealnym konsultantem, bo mówi to zależy, ale nie mówi czemu.” 🎯 Tak Szymon otwiera odcinek Q&A, w którym odpowiadamy na Wasze pytania z Discorda. Głównie na pytania Oskara, któremu niedługo zaczniemy liczyć opłaty za reklamę.
Na start spec-driven development: czemu Markdown, a nie oldschoolowe BDD? Szymon: “BDD były wymyślone po to, żeby były konsumowane przez maszynę deterministyczną”. Dalej testy outside-in w Gherkinie, legacy bez testów jako Eldorado i Extreme Programming, który wciąż jest aktualny. O feedback loopie Łukasz mówi bez znieczulenia: “Jego mać, to nie jest cecha architektury, to jest developer experience”.
Potem odpowiedzialność za kod. Zarząd każe używać agentów AI? “A myślisz, że za co Ci płacą?” Do tego Sonar, który “jest używany, ale ignorowany”, i overengineering, którego żaden linter nie wyłapie. ⚠️
Na deser długie pętle agentów: nocne zadania z DSPy, grill me i subagenci kontra 4–5 godzin produkowania śmietnika. Plus juniorzy w IT i stawki rosnące przy spadającej jakości. Czy AI harness ma sens, skoro nie macie nawet działającego CI?
Linki i ciekawe znaleziska
Transkrypcja
Szymon Warda: BDD były wymyślone po to, żeby były konsumowane przez maszynę deterministyczną.
Łukasz Kałużny: Jego mać, to nie jest cecha architektury, to jest developer experience, które powinniśmy mieć od dawien dawna zrobione.
Szymon Warda: Jak masz kogoś, kto jest leniwy…
Łukasz Kałużny: To będzie leniwy.
Szymon Warda: Będzie leniwy i nic z tym nie zrobisz.
Łukasz Kałużny: Oni widzieli ciągły wzrost stawek ze spadającą jakością.
Szymon Warda: AI jest idealnym konsultantem, bo mówi to zależy, ale nie mówi czemu. I waszą odpowiedzialnością jest powiedzenie ok, to biorąc pod uwagę ryzyka, plusy i minusy każdej opcji, wybieram tą. Cześć! Słuchacie Patoarchitektów. Prowadzą Szymon Warda…
Łukasz Kałużny: I Łukasz Kałużny. Albo ten z prawej i ten z lewej, jak tam w tym. Dobra, słuchajcie, dzisiaj nie ma przerwy od AI-a. Na chwilę wrócimy sobie z drobnym Q&A z waszych pytań, które się zebrały pod różnymi odcinkami, ale też bardzo dużo na Discordzie u nas w tym. Ciekawe czy linki poprawnie sobie… A zrobiłem sobie linki, więc wiadomo skąd jest ten. Jak Szymon podejrzysz to zobaczysz skąd jest dany komentarz.
Szymon Warda: Widziałem, widziałem.
Łukasz Kałużny: Dobra, to słuchajcie lecimy sobie do odcinka. Pierwszy poleciał, podzieliliśmy sobie to na takie bloki i wybieramy, różnie będzie. To lecimy od pytania, które było pierwsze na liście, bo najwięcej się tego pojawiało. I wylosowaliśmy Ciurana, Ciuran, odcinek 205, czyli o Spec Kicie. Czemu markdowny jako specki a nie oldschoolowe BDD, które dziś jest łatwiejsze niż kiedykolwiek?
Szymon Warda: Odpowiedź prosta, nic nie jest łatwiejsze niż język naturalny, bardziej elastyczny, przyjmujące wszystko i tak dalej.
Łukasz Kałużny: Bo inaczej, jak teraz pójdziemy, bo masz te specification by example, tam się bardzo dużo z tym rozbudowywało Szymon. Ale jak popatrzysz tak, to na przykład tak jak my u siebie zapisujemy, to zapisujemy testy BDD sobie w tym Markdownie w środku.
Szymon Warda: Tak, ale to jest dalej Markdown. Co więcej ten Markdown możesz zapisać sobie, dać innemu człowiekowi, masz tą elastyczność. BDD były wymyślone po to, żeby były konsumowane przez maszynę deterministyczną, czyli przez jakiś automat powiedzmy sobie. A językiem angielskim, polskim możesz wyrazić dużo więcej, bardziej, wolniej i tak dalej.
Łukasz Kałużny: Ale jak zobaczysz scenario, to też ten zapis, który był tych plików feature, bo nie wiem czy, do których…
Szymon Warda: On będzie inspirowany, ale i tak mimo wszystko nie musisz nakładać takiego ograniczenia na siebie i tyle.
Łukasz Kałużny: Wiesz, z drugiej strony tak, miałeś te feature’y różne, że tam co zrobię, jak będzie wyglądało i w ogóle w zależności tam od softu do zarządzania, bo pamiętaj, że też były soft do testingu, których rzadko poruszamy, ale jest trochę takich produktów na rynku. Jak sobie popatrzysz… Inaczej, więc tak, BDD, oldschoolowy BDD jako samo forum, raczej wróć, ma sens. Stosujemy scenario (…) NDM, to stosujemy te zapisy u nas w speckach, mamy je.
Szymon Warda: Tak, tylko, że to jest chomąto mentalne, żeby być dokładnym w wyrażaniu się.
Łukasz Kałużny: Tak i sprawdzić sobie, to tam przejdziemy, ale zobaczyć, mieć wspólny język i powiedzieć sobie czy na pewno tego chcemy w tym miejscu. I teraz wiesz, te Feature File Cucumbera czy inne rzeczy, część osób mnie wychłosta, ale ja na przykład patrzyłem sobie jak zrobić speckę na przykład takich rzeczy i wrzucić do Yamla w ogóle, żeby nie był Markdownem, żeby było inaczej parsowalne. Zostawmy to. Patrzyłem sobie jak pozbyć się Markdowna Szymon, o. Moim celem było jak pozbyć się gdzieś Markdowna z tych rzeczy. Widzicie jego minę, mówiłem, że ten pierwszy będzie mnie chłostał i się z tego nabijał potem, wspólnik.
wstawka: No, God, please, no, no, no.
Szymon Warda: Gorzej niż żona. Dawaj.
Łukasz Kałużny: Dobra, następne pytanie, które jest, bo ono było na temat właśnie szybkiego feedback loopu. Czy człowiek sam pisze scenariusze bDD czy tylko zatwierdza to od agenta i jak to egzekwujecie w harnassie?
Szymon Warda: Ustalmy, niczego nie piszesz sam już praktycznie.
Łukasz Kałużny: Tak, czy inaczej, teraz jest tam, do tego dojdziemy. I jest Szymon jeden duży problem, jak na to popatrzysz. To, że praktyki, tak wiesz, takie w sensie będziemy jeszcze mówić dzisiaj o odpowiedzialności, ale Twoją zwaloną odpowiedzialnością i za to Ci płacą, że jak tego nie wygenerowałeś, nie napisałeś sam, to żebyś siadł, przeczytał, poprawił, zrozumiał, zaakceptował i to jest Twoja odpowiedzialność.
Szymon Warda: Łukasz, a nawet wcześniej jeszcze, zawęził dokładnie co dokładnie chcesz i dowiedział się i wyspecyfikował co, jak, gdzie (…), czy tu coś się jeszcze wydarzy? Ale ręczne pisanie, nie ta bajka. Tak, zrozumienie, zawężenie, danie sensu biznesowego, tak, więcej nie.
Łukasz Kałużny: Poprawienie, wiesz, albo zrobienie: no sorry, brakowało Ci takich edge case’ów, szukanie innych rzeczy.
Szymon Warda: Inaczej, powiedzmy inaczej, używanie agenta nie zwalnia z myślenia, bo do tego dążymy tak naprawdę. A jak będzie, kto finalnie wygeneruje plik tekstowy? Obojętne. Nakarm algorytm, daj suba, daj lajka, będzie łatwiej. Dobrze. Od czego zacząć z agentem w projekcie bez testów?
Łukasz Kałużny: Nie, jeszcze miałeś o to: jak egzekwujecie to w harnassie? I w harnassie jest tak, to jest teraz trochę problem jak z testami kontraktowymi i z tym wszystkim, bo powinieneś testy… Inaczej i kłania się całe TDD, że testy powinny zostać napisane na początku. Powinny i to jest…
Szymon Warda: I tu ostatnio wpadł mi gdzieś odcinek jakiegoś podcastu, nie pamiętam już dokłdnie którego, właśnie odnośnie tego, że pisanie testów na start powoduje, że skupiamy się na mikro problemach, a nie na ogólnym bilansie systemu.
Łukasz Kałużny: Inaczej…
Szymon Warda: I jest w tym trochę prawdy.
Łukasz Kałużny: Dobra, ale wiesz co? I dlatego lubię bardzo testy. Na przykład to, co zrobił Oskar u siebie w swoich bibliotekach, że ma natywnie zintegrowane testy w postaci właśnie gherkinowej outside/inside. Czyli Ty wołasz np. swoje API scenariuszem biznesowym i nie patrzysz, nie mówię o unit testach w tym miejscu, tylko przetestujmy to z wysokiego poziomu, czy kod ma robić to co miał robić zgodnie z naszymi założeniami?
Szymon Warda: Tak, czyli takie BDD właściwie można powiedzieć to jest.
Łukasz Kałużny: Raczej bo jest, rozmawiamy BDD, tylko wiesz, że w sensie test driven development, że napisz te testy BDD outside/inside i dopiero potem. A nie mówimy tutaj o tonie unit testów, zamockowania wszystkiego. W ogóle nie.
Szymon Warda: Czyli dostajemy wartość biznesową, czy to działa?
Łukasz Kałużny: Tak, czy to działa zgodnie z tym i czy nie mamy regresji przypadkiem.
Szymon Warda: Tak. Dobra, dalej. Od czego zacząć z agentami w projekcie bez testów? Testy regresyjne od agenta, czy to błędne koło? Regresję i stare systemy, gdzie nie było czasu na nic, to teraz jest Eldorado, bo można tam zrobić dużo fajnych rzeczy.
Łukasz Kałużny: Wyciągnąć… Inaczej, tak jak mówisz, te testy… Inaczej, testy regresyjne od agenta są ok. Tylko bardzo świadomo, niestety jest tak, że trzeba mieć świadomość, że musimy uchwycić i nie bawić się w unittesty i inne rzeczy, tylko to co było przed chwilą powiedziane, w poprzednim pytaniu, złapać testy… Inaczej, w zależności jak kto woli, testy integracyjne. Czyli coś woła nasze API i sprawdza wszystkie możliwe ścieżki w kodzie, jeżeli coś zepsujemy. Czyli niestety agent powinien wziąć…
Szymon Warda: Nie wszystkie.
Łukasz Kałużny: Ale powinien przelecieć wszystkie możliwe przypadki, które wynikają z kodu testami.
Szymon Warda: Tak. To jest to, że czemu to jest Eldorado? Bo możemy teraz mając system, który nie ma ani nawet jednego pliku dokumentacyjnego i nikt nie jest w projekcie i tak dalej, dać mu powiedzieć: wymyśl co ten system właściwie robi i zrób mi featurery biznesowe, procesy biznesowe i on to zrobi.
Łukasz Kałużny: To, co pokazuje na Architekturze też 101 na przykład dla architektów. Weź ten, jeden z takich scenariuszy, z których ja korzystam od dawna. Biorę request, biorę zawartość i weź mi narysuj i wytłumacz diagramem sekwencyjnym, co się z tym dzieje.
Szymon Warda: Sekwencje, przepływy i tak dalej. Zrobisz to w parę minut.
Łukasz Kałużny: Tak. I tak samo będzie z testami potem. Tylko trzeba mieć świadomość, że to jest praca endpoint po endpoincie, to nie jest takie just like that, że to przepięknie zadziała.
Szymon Warda: I trzeba jeszcze zweryfikować, bo może zrobić dużo testów, które mają zerową wartość.
Łukasz Kałużny: Tak. I znowu trafiamy do tej odpowiedzialności. Dobra, ja sobie w chacie odpaliłem, następne pytanie mamy. Które praktyki Extreme Programmingu przetrwają w pracy z agentami? Drogie dzieci i młodsi słuchacze, Extreme Programming to jest taki zestaw praktyk, który powstał przed Agilem. I Agile Manifesto powstał dlatego, że ludzie nie zrozumieli Extreme Programmingu. To tak można było by zażartować. Ja przeczytam, jakie to są Szymon praktyki. Test driven development, continuous integration, smaller releases, smaller batches, simple design, refactoring, collective code ownership, coding standard, on site customer, closed, customer collaboration, planning game.
Szymon Warda: Czyli dokładnie to, co dalej nam się nie udało zrobić w pełnym, jako całyemu środowisku, że tak powiem.
Łukasz Kałużny: Czekaj, sprawdzę, bo nie pamiętam daty. Poczekajcie. I uwaga, uwaga, sprawdzam z kiedy jest…
Szymon Warda: Osiemdziesiąte lata.
Łukasz Kałużny: 1996 rok, a pierwsza książka Extreme Programming Explained wyszła w 1999. No więc zostawmy. I teraz jeżeli popatrzycie, to moim zdaniem tu wszystko zostaje.
Szymon Warda: Znaczy zostaje wszystko i co więcej, te praktyki przydają się nawet do pracy z agentem jako takim. Ja będę o tym mówił już wiele razy, jak ktoś umie pracować z ludźmi, to umie pracować z agentami.
Łukasz Kałużny: Inaczej i te wszystkie praktyki, wiesz teraz te wszystkie praktyki, jak mamy zwalone continuous integration, które się kręci nie wiadomo po co, to tak samo będzie zwalone dla agenta. I to jest fajnie, na przykład też Oskar za te nasze dyskusje, to co pisałeś o poprawianiu czasu i na przykład, że w zależności ile chcesz mieć tych agentów, to mogą Ci zajechać dysk na przykład, bo testy masz zwalone.
Szymon Warda: Oczywiście, absolutnie wszystko.
Łukasz Kałużny: Albo system buildowania czy coś, nie będę się odnosił już do konkretnych języków w tym miejscu, ale że będzie trzeba to w tym. Developer experience, które były dla człowieka, jest tak samo ważne dla agenta. I ten cały feedback loop, szybki feedback loop, o którym mówimy, bo było jeszcze przedtem pytanie: czy cały, czy czas feedback loop staje się cechą architektury i co robić jak testy trwają godzinę? Jego mać, to nie jest cecha architektury, to jest developer experience, które powinniśmy mieć od dawien dawna zrobione.
Szymon Warda: Tak, to jest takie coś, co nie błyszczy, nie jest fajne, ale powinniśmy mieć zawsze. I nie robiliśmy tego, robiliśmy to wolno. Teraz to się realnie przekłada, bo… Znaczy, bo w większości organizacji ten czas builda nie bolał, bo jak w projekcie miałeś 10 osób, to Cię to nie bolało. Ale jak nagle każdy z tych 10 osób ma pięciu agentów, to już Cię to boli.
Łukasz Kałużny: Ale stary, pamiętasz te walki? Mieliśmy te projekty, że buduje się, idę na kawę. I było i…
Szymon Warda: Ale to też wynikało trochę z lenistwa, nie oszukujmy się, wielu ludzi.
Łukasz Kałużny: Raczej z lenistwa tak. Ale pamiętasz ten przeskok na przykład? Dla mnie taki, wiesz, pamiętam przeskok na pierwszych SSD-kach w stacjach roboczych.
Szymon Warda: Tak, to była różnica.
Łukasz Kałużny: O bożesz, przecież pamiętasz, jaki to był strzał.
Szymon Warda: Tak, była. Ale ponownie, nie zmienia się nic, agenci nie zmieniają nic. Jeżeli miałeś pewne umiejętności, to dalej z nich korzystasz i dalej plusujesz i dalej je rozwijasz.
Łukasz Kałużny: Inaczej, więc jeżeli popatrzymy, to co nazywamy Extreme Programmingiem, to jest coś, co nazywamy w branży dobrymi praktykami, najlepszymi praktykami, których ja też, na LinkedInie teraz miałem taki post, już mi się zebrało i po prostu wrzuciłem, na zasadzie, gdzie to było, na zasadzie przestańmy mówić o harnassie dla agentów. Nie macie działającego CI. Nie było porządnego feedbacku, nawet dla ludzi. Statyczna analiza kodu istniała tylko po to, żeby odhaczyć test coverage. To o czym my w ogóle rozmawiamy?
Szymon Warda: Tak. Dobra, lecimy dalej. Jak wymuszać myślenie przed generowaniem kodu, skoro zasady bez procesu przegrywają z lenistwem? Review plan, wspólne projektowanie czy coś innego? Grill me.
Łukasz Kałużny: Raczej dobra, ale, dobra, dobra dobra.
Szymon Warda: Mówiąc odnośnie już tego skilla.
Łukasz Kałużny: Dobra, to co Szymon mówi w tym, Szymon ma miłość w ostatnich trzech tygodniach.
Szymon Warda: Bo ja to zawsze robiłem na zasadzie takiej, że weź znajdź dziurę gdzie pomysł nie działa. A teraz mam pod to gotowego skilla i nie muszę pisać mojego prompta jednolinijkowego.
Łukasz Kałużny: Tak. Ale ogólnie słuchajcie, grill with docs, spoko, będę się kłócił co do reszty, ale sam skill od grill with docs od Matta…
Szymon Warda: Grill me samym, jeden pies.
Łukasz Kałużny: Ale tak, jest zajebiste.
Łukasz Kałużny: Grill with docs ma ten domain modeling i glossary dlatego widzę w tym wartość.
Szymon Warda: Tak, ale tu mówimy odnośnie namierzenia pomysłu, czyli czy warto to robić, to (…) przed.
Łukasz Kałużny: Dobra, tylko jest…
Szymon Warda: Jeszcze jedna rzecz. I tu wracamy do tego, co było właśnie fajnego w Spec Kicie. To było to właśnie, ta opcja weryfikacji, te kroki, które były opcjonalne, które miały największą wartość.
Łukasz Kałużny: Tak, tylko zobacz Szymon, mówi, Szymon, tutaj panowie mówią, Mateusz, Oskar mówią zupełnie o czym innym, jak zobaczysz. Jak wymusić myślenie przed generowaniem kodu?
Szymon Warda: No właśnie, grill me, żeby (…) czy w ogóle tego potrzebujesz.
Łukasz Kałużny: Dobra, Ty wiesz co, ale nie Szymon, ale ktoś poleci na recommended. Zgadzam się. Napiszę, że się zgadzam i wiesz i nie zrobisz tego. Ale…
Szymon Warda: To jest opcja. Masz dwa typy problemów: ludzkie i techniczne. Czy technologią rozwiążesz problemy ludzkie?
Łukasz Kałużny: Nie.
Szymon Warda: W pewnym zakresie tak, ale ogólnie mówiąc nie. Jak masz kogoś, kto jest leniwy…
Łukasz Kałużny: To będzie leniwy.
Szymon Warda: Będzie leniwy.
Łukasz Kałużny: To ma…
Szymon Warda: I nic z tym nie zrobisz. Jak masz kogoś kto nie ma ownershipu, nic z tym nie zrobisz, nie nauczysz.
Łukasz Kałużny: Raczej ten, przeczytać… Inaczej, chyba, że jesteś złośliwym w pull requeście, sprawdzasz jakieś założenie i pytasz się kolesia face to face na callu, na daily, czemu podjął taką decyzję?
Szymon Warda: Nie nauczy. Nie wydaje mi się, żeby to się nauczyło. Nie, to po prostu nie działa.
Łukasz Kałużny: Dobra Szymon, następne pytanie, które zaznaczyłeś Skąd wezmą się seniorzy za 5 lat, jeśli dziś, jeśli firmy dziś nie zatrudniają juniorów?
Szymon Warda: Ja mam taką jedną szaloną myśl. Pytanie czy to zadziała? To moje pytanie jest takie, czy w takim razie, bo taki ogromny napływ juniorów, jaki mieliśmy, wynikało z tego, że programiści tyle zarabiają, miliony, latają odrzutowcami i w ogóle jest fajnie, to czy nie będzie za chwilę tak, że do programowania wrócą pasjonaci?
Łukasz Kałużny: Znaczy wiesz co, nie, ja mam trochę inną rzecz. Ja powiem tak po rozmowach z klientami i innymi rzeczam, to co była ta bańka, która zaczęła się eldoradowa w 2018 i trwała chwilę po covidzie.
Szymon Warda: Trochę wcześniej wydaje mi się.
Łukasz Kałużny: Ja tak liczę te mocne bootcampy, to był 2018 taki peak u nas w Polsce. Ale słuchajcie, ja to porównuję do tego, że nadal wierzono, że 9 kobiet urodzi jedno dziecko w miesiąc, nadal w to wierzono. Bo mieliśmy mieć mikroserwisy, mikro frontendy, a w większości problemem moim zdaniem był problem, że po prostu chcieliśmy, mamy ten przyjęty trochę protestancki slash, anglosaski model tego, żeby się działo.
Szymon Warda: Wydaje mi się, że nie do końca, bo wydaje mi się, że przed generowliśmy dużo, mieliśmy frameworki, był wysyp frameworków w tym czasie, a szczególnie na frontendzie w ogóle swoją drogą. I była opcja, że po prostu patrzyłem, było dużo kobiet, żeby dużo tego kodu nagenerować, który robił niewiele. Do jednego labela nagle była zmiana w pięciu plikach, no nie. Łukasz, ale tak było. Teraz już te zmiany…
Łukasz Kałużny: Pamiętasz tego erpa, z którym mam traumę, solidową traumę po takim pewnym erpie.
Szymon Warda: Nie wiem po którym erpie.
Łukasz Kałużny: Tym workowanym.
Szymon Warda: Idziemy dalej. Raczej z założenia do potrzeb, świetny projekt, będę to uważał. Możemy kogoś w ogóle zaprosić do tego projektu kiedyś, pogadamy sobie. Zobaczymy jak będzie Łukasza wyobrażenie zweryfikowane. Więc ja uważam, że…
Łukasz Kałużny: Nie, nie, ja nie mówię o Twoim, nie mówię o Twoim, tylko ten, który był internalowy.
Szymon Warda: A ten, ok.
Łukasz Kałużny: To już…
Szymon Warda: To inna bajka. Ale nie, poważnie uważam, że teraz, jak gadam z moimi kolegami, to niektórzy mają znowu frajdę i to są głównie seniorzy, frajdę z programowania. Wreszcie mogę robić to, co chciałem robić. Nie potrzebuję pięciu osób, żeby zrobić to, co chciałem zrobić.
Łukasz Kałużny: Ale wróć, ja się na szczęście wyleczyłem z wielu rzeczy. Dobrze, cieszę się. Aczkolwiek wczoraj widziałaś po PR-ach ile miałem frajdy.
Szymon Warda: Widziałem.
Łukasz Kałużny: Jest.
Szymon Warda: Ej, ale ja też mam ogromną frajdę, żeby robić. Więc ludzie, którzy chcą robić, działać i tak dalej, oni…
Łukasz Kałużny: Oni się pojawią, wiesz co…
Szymon Warda: Pojawią się i będą.
Łukasz Kałużny: I teraz jest czy będzie brakowało, czy juniorów. To jest też tak, słuchajcie, ja zawsze powtarzam, że warto zobaczyć na statystyki. Jeżeli popatrzymy na studentów, statystyki z prawa, farmacji, psychologii.
Szymon Warda: Łukasz, ale to jest taka opcja. Ja zaczynałem w czasie, kiedy dokumentacja Microsoftu kosztowała 500 dolarów miesięcznie.
Łukasz Kałużny: A mówisz o tym. Znaczy nie dokumentacja…
Szymon Warda: MS kosztował tyle. Kiedy dokumentacja była płatna, co się w większości chyba ludziom, powiedzmy urodzonym w 2000 roku, nie mieści w głowie.
Łukasz Kałużny: Update’y, tak, z tym.
Szymon Warda: No nie? Więc z całym szacunkiem.
Łukasz Kałużny: I płytki wysyłane co miesiąc.
Szymon Warda: Tak, płytki wysyłane i tego typu rzeczy. Więc z całym szacunkiem wydaje mi się, że będzie ok. Ci, którzy będą chcieli i są wartościowi, zostaną. Ci, którzy chcą robić to byle jak, sorry, tu nie ma miejsca już.
Łukasz Kałużny: I teraz jest jedna rzecz, o której sobie trzeba też powiedzieć, bo teraz mówimy o juniorach, ale mówimy też o seniorach. Zaraz sobie do tego przejdziemy, do odpowiedzialności. W wielu miejscach przychodzi wycena wartości. I ogólnie jeżeli teraz pójdziecie i porozmawiacie z ludźmi, którzy są odpowiedzialni za budżety wyżej, pod zarządami, w planowaniach, oni widzieli ciągły wzrost stawek ze spadającą, ze spadającą jakością.
Szymon Warda: Bardzo.
Łukasz Kałużny: Tak.
Szymon Warda: Ale też (…) też spadające zadowolenie ludzi, seniorów, bo nagle mieli pod sobą pięciu juniorów, bo musieli mieć tych juniorów.
Łukasz Kałużny: Pięciu juniorów albo były akcje, że…
Szymon Warda: I takich juniorów, których nie powinno tam być.
Łukasz Kałużny: Ale zobacz, byli też akcja, pamiętam, juniorów sprzedawanych jako midów albo seniorów, bo każdy chciał seniora.
Szymon Warda: Oczywiście, że tak. Albo weźmiesz, weźmiesz, dostaniesz seniora, jak weźmiesz dwóch juniorów. No nieważne. Więc wydaje mi się, ja bym się nie martwił. Wbrew temu, co się dzieje dookoła, to będzie dobrze. Dobrze Łukaszu, zahczyłeś teraz cały punkt.
Łukasz Kałużny: Pętli autonomicznej i decyzja agenta. Śmietnik czy 4-5 godzin bez uwagi? I teraz tak, Oskar pozdrawiam Cię, musimy Cię ten, z Wrocławia, ten, sflyoutować do Warszawy na parę tych.
Szymon Warda: Łukasz, to będzie jakiś taki pretekst do randki generalnie czy co?
Łukasz Kałużny: Ty też na nią pójdziesz.
Szymon Warda: Trójkąty. Cholera.
Łukasz Kałużny: Szykuj się. Dobra, nie, nieważne, nie będziemy ciąć.
Szymon Warda: Dajesz.
Łukasz Kałużny: Dobra. O co chodzi? To wszystko chyba zależy jakie zadania.
Szymon Warda: Raczej mówi się dużo o tej autonomii. Nawet ja już parę razy mówiłem, że jestem, wierzę w to, że jakieś powiedzmy Dark Grey, czy jakkolwiek to jest teraz nazywane, Factories mają jakiś sens i to jest kierunek, w którym będziemy szli? Tak, ale to też wynika z tego, że pętla autonomiczna będzie się działa, jak będzie dobre przygotowanie i ten agent będzie miał co robić. I to nie jest, że przez 4-5 godzin agent po prostu leci tokenami, odpala narzędzia i tak dalej. Czyli (…) tamtego? CI/CD.
Łukasz Kałużny: Ale weźmy teraz tak. Weźmy sobie przykłady, które, tasków, które ja puszczam, tak zwanych nocnych. Bo to jest chyba dobry przykład. Ja mam 2 tylko taski, 2 typy tasków, które puszczam w nocy albo tam 2,5 typu tasku. Pierwszy jest, która dzisiaj w nocy mi leciał, weź mi na przykład przeklikaj się przez szkolenie. Czyli mam w tym tygodniu szkolenie i weź sprawdź i jeżeli będą bugi zatrzymaj się, zostaw, zaproponuj, zaproponuj rozwiązanie, zacznij od nowa z poprawką. Cofnij się i weź mi przejdź, weź poudawaj mi człowieka.
Szymon Warda: Ja bym to zgeneralizował. Przejście scenariuszy, które zapisałeś i użycia. Czy to będą użycie pod szkolenie, użycie pod…
Łukasz Kałużny: Testy regresjyjne.
Szymon Warda: Regresję, użycie pod platformę, co chcesz zrobić i tak dalej.
Łukasz Kałużny: Czy tam discovery, tak, czy przeklikaj się przez wszystkie opcje, zostaw mi raporty, screenshoty i inne takie elementy.
Szymon Warda: (…) duży zbiór tekstów.
Łukasz Kałużny: Tak, dobra. Następna rzecz, która jest, to na przykład mam takie większe rzeczy przy ragach innych rzeczach i są zadania, których nie będę oglądał. Nie oszukujmy się, promptów się już nie pisze. Macie takie biblioteki do optymalizacji promptów agentowych, które się nazywają. Czyli mówię, że tworzę agenta biznesowego, automację i, automatyzację, i są takie coś, co się nazywa DSPy, DSPy, jest takie rozwiązanie. I tam macie możliwość robienia potem, w ramach tego jest też całe robienie i testowanie promptów, testing promptów, metryki, accuracy, te LLM as a Judge i całe takie rzeczy. I na przykład porównuje sobie ileś tych, ileś modeli na przykład, jak wypadną optymalizacje promptów pod model, bo są jednak drobne tweaki, żeby model sam pisał prompta i potem go (…). Nie ma sensu, żebym ja to robił. W sensie zostawiasz to na noc i rano sprawdzasz te wszystkie wyniki. Widzisz po kolei jak dataset, masz datasety treningowe i inne takie, raczej testowe i do blind testów i rano przychodzisz, oglądasz, co z tego wyszło. I przy takich całonocnych, czy z innej rzeczy na przykład tam parę tygodni temu potrzebowałem pogenerować datasety, zrobić sobie tak zwane syntetyczne datasety, ale żeby miały rozkład danych przypominający normalny. I na przykład zostawiłem sobie tam generatory i inne rzeczy, żeby nadzorował za mnie LLM, że na bazie, zrobiłem sobie symulację z danych francuskich bodajże, czy tam z francuskich czy z UK-a, zrobiłem sobie symulację, żeby ładnie było geograficznie Polska i inne rzeczy, żeby jakoś tam się kleiło, żeby to wyglądało w miarę naturalnie do prezentacji i innych takich rzeczy, testowania, o tak.
Szymon Warda: Tak, to też różne zestawy projektów. Mówię, że chcę mieć projekt taki, taki CI/CD i takiego IaC-a i tak dalej. I mówię zrób, przetestuj, zweryfikuj i tak dalej, i tak dalej. I to mu zajmie, masz te iteracje deploymentu i tak dalej, i tak dalej, to mu zajmie ten czas.
Łukasz Kałużny: I to jest, i to jest taka rzecz, która działa.
Szymon Warda: Tak, ale to działa tylko wtedy, jeśli powiesz mu: to chcę mieć zgodnie z tym, co tutaj widzisz, to chcę mieć, zgodnie z tym, co tutaj widzisz i tak dalej. I to wejście jest ogromne i on po prostu dokładnie wie, co ma robić.
Łukasz Kałużny: Tak i to nie są duże zadania, tak wbrew pozorom, jak zobaczysz, one są bardzo zamknięte.
Szymon Warda: One są zamknięte, ale są duże.
Łukasz Kałużny: Bardzo zamknięte. I to, co Oskar na przykład pisał, że dostał speckę, puścił dużą, dokładną speckę i dostał śmietnik. Kurde Oskar i robisz rzeczy niskopoziomowe wbrew pozorom przy tym trochę inaczej. Jak jest ten i te godziny udanego przebiegu 4-5 godzin? Ja nie wierzę w takich programistycznych. Wierzę w pętlę 2 godziny, że sobie robi. Inaczej i tak masz takie, że trzeba w tym… Nie wtrącajcie się kontra zatrzymywanie agenta po każdej fazie? Nie Szymon, to zależy co Ty robisz. To naprawdę zależy od taska. Jeżeli robisz task w softwarze, że dostarczasz kolejny feature, ekrany, zbiór, to masz te odcięcia w postaci specki, review specyfikacji i sam powiedziałeś, siedziałeś kilka godzin nad grill with me i dostawałeś po twarzy tym.
Szymon Warda: Tylko, że moje założenie jest takie, że przez pętlę rozumiem opcję, że on już dokładnie wie co ma zrobić i po prostu implementuje to.
Łukasz Kałużny: Tak, tylko też… Inaczej, też odleci w bok jeżeli będzie to za duże, rozwlekłe, niespecyfikowane, odleci to w bok. To też nie oszukujmy się.
Szymon Warda: Ewentualnie może być dużo, ale musi być złożone… Niekoniecznie się z Tobą zgodzę, jeżeli jest duże, ale ta dużość składa się, jest ta dużość, powodem tej dużości jest to, że tam jest dużo małych kroków, to będzie w porządku. Bo w tym momencie mówisz, żeby każdy krok był osobnym agentem.
Łukasz Kałużny: Subagentem, tak.
Szymon Warda: I wtedy będzie śmigało.
Łukasz Kałużny: Batchem albo batche kroków.
Szymon Warda: Jeden pies, tak. To wtedy sobie spokojnie zadziała. Faktycznie, zadanie takie, że mamy, nie wiadomo co on właściwie ma zrobić, to się rozpłynie, ale no.
Łukasz Kałużny: I teraz lecimy: You vibe it, You own it, czyli odpowiedzialność za kod. I jest pytanie: jeśli zarząd nakazuje agentów i wymaga przyspieszenia, czy developer nadal odpowiada za dod w 100%?
Szymon Warda: A myślisz, że za co Ci płacą? Proste. Czemu biznes ma IT? Żeby mógł przedelegować odpowiedzialność. Czemu Twój manager ma Ciebie? Żebny mógł przedelegować odpowiedzialność.
Łukasz Kałużny: Tak, ale tak, bo płacimy za delegację odpowiedzialności, za to dostajemy pensję. I teraz tak to wygląda. I słuchajcie, jedną rzeczą, którą bym zobaczył tutaj, mam nadzieję, że do naszego Powered by Protopia uda mi się zaprosić klienta tam za parę tygodni, żeby pogadać. Mamy na przykład takie szkolenie, które robimy z klientami, jako AI oczami developera. I to jest dla managementu technicznego, ale w tym, na którym pokazujemy czym różni się vibe coding od inżynierskiego podejścia od kodu. I niektórym naprawdę, były dość ciekawe rzeczy w tym, dość ciekawe rzeczy i spostrzeżenia. Na przykład jak dla nich było męczące grill with me, grill me with docs grill with docs.
Szymon Warda: Jest naprawdę męczący.
Łukasz Kałużny: Że musieli na przykład siedzieć i godzinę do feature’a w tym i ktoś na przykład przyszedł ze swoim pomysłem i były mu wytykane błędy. Nazwijmy to błędy logiczne.
Szymon Warda: Ja bym powiedział niekoniecznie błędy. Są obszary, o których się w ogóle nie pomyślało często, bo w tym naprawdę AI-e są świetne. Mają tą wiedzę, mają te obszary, to jest bardzo dobre.
Łukasz Kałużny: Znaczy inaczej, teraz tak, tutaj było też od Oskara, czy You vibe it… Oskar, kurde, będziesz miał ten, będziemy pobierać Ci opłątę.
Szymon Warda: Na randkę idealnie.
Łukasz Kałużny: Na randkę, opłaty Ci pobierzemy za ten, za reklamę. Ale w tym, ale to Ty zaznaczyłeś, ale to ty zaznaczyłeś, to Ty Szymon zaznaczyłeś: czy You vibe it, You own it to wystarczający kontrakt dla zespołu czy potrzebnych twardych bramek? Inaczej, ale software to software.
Szymon Warda: Wcześniej mieliśmy generalnie, że Ty pisałeś, to Ty utrzymujesz. Nie zadziałało, bo developer…
Łukasz Kałużny: Ty wyvibe’owałeś, Ty utrzymujesz.
Szymon Warda: Bo developerzy powiedzieli, że ja nie będę na oncallu. To jest kultura organizacji. Tutaj AI ponownie nie zmienia nic. Jak organizacja miała, miała oncalla i tak dalej i tak dalej, wszystkie praktyki OPS-owe, to super. Tylko, że to zadziała. Realnie moje rozczarowanie było takie, że mało który developer jest zainteresowany w ogóle monitoringiem, jak to zrobić. Tylko jest: a napiszę kawałek kodu i ok, moja tu robota się w ogóle zakończyła.
Łukasz Kałużny: Dobra. I teraz jest od Oskara taki ten, od Oskara i od dużej ilości osób, ale Oskar był prowodyrem: Sonar i statyczna analiza, corporate’owo czy harness dla LLM? I teraz Sonar jest dla mnie przykładów, bo w wielu organizacjach on jest na miejscu.
Szymon Warda: Tak i nieużywany.
Łukasz Kałużny: Albo używany do test coverage’y.
Szymon Warda: Jest używany, ale ignorowany, to jest bardziej poprawna opcja.
Łukasz Kałużny: Tak i teraz o co chodzi? I tak jak dużo osób tam wspomina, że czy Sonar łapie slop czy inne takie rzeczy? Słuchajcie, jak sobie popatrzycie, ja też wrzucę, gdzieś tam może jako w notatce czy coś takiego, wrzucę moje takie, wrzucę kawałek gista na przykład dla Pythona, z takimi regułami, na które patrzymy, które wrzucamy metryki. Ale jeżeli popatrzycie, to jest… Inaczej, to jest za co powoływaliśmy dokładnie ludzi, czyli czy pozwalamy, czy nie pozwalamy na syf, bo… Inaczej, slop od ludzi, przepraszam, ale tyle samo slopu było od ludzi co od agentów, jeżeli popatrzymy w pewnych projektach.
Szymon Warda: Ja mam problem z Sonarem taki, tak, Sonar wyłapie metody, które mają 13 parametrów i tego typu rzeczy. Ale scenariusz nie wyłapie totalnego overengineeringu tego wszystkiego.
Łukasz Kałużny: Nie, nie wyłapie.
Szymon Warda: No właśnie. I tutaj, a agenci uwielbiają overengineering. Do jednej prostej rzeczy nagle masz pięć klas, bo takiego kodu było dużo, na taskim kodzie się nauczył.
Łukasz Kałużny: Tak, więc to nie jest, więc wiesz, takie pętle czy też tam Sonar, bardziej statyczna analiza. Na przykład ja też… Czy używamy Sonara? Nie, często korzystamy z lokalnych narzędzi i powinno być tak, że lokalne narzędzia, które jesteś w stanie odpalić, odpalane są w CI-u, powinny być też odpalane automatycznie w hooku na koniec pracy.
Szymon Warda: Tak, ale to też jest taka opcja generalnie, też takiego prostego harnessa, który się mówi: jak chcę, żeby ten kod wyglądał. Spałowanie agenta, żeby nie kombinował.
Łukasz Kałużny: Ale to są szkopuł, to są całe coding standards i całe takie podejście do całości. Jak popatrzymy sobie na takie, na takie sety, tak jak pójdziemy sobie na przykład do Pythona, do Ruffa, to macie całe właśnie w tym zagnieżdżenia, ilość branchy, taki cały coding style, który powinien zostać gdzieś utrzymany w środku, o tak. Te wszystkie code, security code z Sonara też są dobrym feedbackiem. To są takie wiecie pierdoły. I teraz ja bym nie patrzył, bo…
Szymon Warda: Tylko ważne, Sonar to nie jest ten silver bullet.
Łukasz Kałużny: Nie, on nie jest.
Szymon Warda: Żeby to było jasno powiedziane.
Łukasz Kałużny: On jest, w naszym przypadku my się odwołujemy do niego, bo w dużej ilości corpo się spotykamy z jakąś formą statycznej analizy kodu, że ona jest, jest dostępna, jest licencja, posłuchajcie, jest licencja, o tak.
Szymon Warda: Sonar chroni przed jedną skrajnością, ale zostaje jeszcze druga skrajność, którą też nie wolno przegiąć za bardzo.
Łukasz Kałużny: Więc to bardziej patrzymy na to. Więc i Oskar zgadzam się, że nie pomógł, bo w większości jest olewany. W szczególności jak włączamy Sonar na istniejącym projekcie, świeci się na czerwono, robimy finetuning wyciszania reguł, finetuning…
Szymon Warda: On staje się ignorowany w momencie, jak wypluje pierwszy raport, gdzie jest kilka tysięcy rzeczy do ogarnięcia.
Łukasz Kałużny: Tak, dziękujemy. I wiesz i to jest tak…
Szymon Warda: Nie ma sensu.
Łukasz Kałużny: Dlatego na przykład wiesz, w takim tym. Więc…
Szymon Warda: Lećmy dalej.
Łukasz Kałużny: Inaczej, jedna rzecz do slopu, to jest Wasze, to jest często przyzwolenie ludzi z lenistwa na ten slop, bo looks good for me, jak zawsze.
wstawka: Nie widzę przeciwwskazań.
Szymon Warda: Oczywiście, że tak. Dobrze. AI poza kodem. Wymagania, ryzyka, Product Management, Enterprise, Architect. Zaznaczyłeś Łukaszu.
Łukasz Kałużny: Czy AI pomaga w znajdowaniu ryzyk projektu, skoro decyzje architektoniczne zostawiacie człowiekowi?
Szymon Warda: Jest to absolutnie, w tym jest fenomenalny. On przeczytał całą dokumentację, przeczytał masę wpisów i on wie więcej od Was. I dla mnie jest jedno ważne, AI jest idealnym konsultantem, bo on mówi to zależy, ale nie mówi czemu. I Waszą odpowiedzialnością jest powiedzenie: ok, to biorąc pod uwagę ryzyka, plusy i minusy każdej opcji, wybieram tą. I tu człowiek jest potrzebny. Agent tylko Wam powie: masz takie możliwości, weź sobie coś wybierz.
Łukasz Kałużny: I to też nie, bo musisz go skierować i w ogóle. Więc zobaczyć na ryzyka, przemyśleć to, ale jest idealnym sparring partnerem decyzji.
Szymon Warda: Fenomenalny. Jeszcze robi researche, każesz mu zweryfikować i tak dalej, i tak dalej. On się nie męczy, nie będzie miał Ciebie dosyć i tak dalej.
Łukasz Kałużny: Tak. I wiesz i tu jest też padło takie coś, o tu, to było od Piotrka Filipowicza, ale… Czy przy agentach product manager przesuwa się w stronę discovery i GTM? Tak. Raczej inaczej, te role w ogóle się zacierają. To jest wiesz, teraz, jeżeli teraz popatrzymy, to jest znowu, to było, co było w Extreme Programmingu. Jak popatrzymy w tym, pytanie, czy to jest ten, GTM, to Go To Market pewnie w tym momencie, ale jeżeli teraz popatrzymy, to…
Szymon Warda: To się nie zmieniło, ownership jest łatwiejszy.
Łukasz Kałużny: Jest ownership, tak i pozwala łatwiej… Inaczej, dla mnie jedną z takich rzeczy, jak popatrzę przy product managemencie, to jest jeden taki bardzo ważny element, możliwość takiego rapid prototyping. To jest bardzo rzecz, która w ogóle zmienia, bo można nagle zamiast bawić się w ten, zrobić chamski prototyp na lokal hoście, ale z kimś to siąść, przetestować i w ogóle i dopiero popatrzeć czy optymalizujemy.
Szymon Warda: Ale też ważana rzecz, to jest taka opcja, że bo prodyuct się kojarzy, że nowy produkt. A tu mamy taką opcję, że możemy nawet jakiś nasz pomysł szybko zweryfikować. Po prostu dajemy: ej, weź mi to zaimplementuj, przetestuj i daj mi liczby. Kończy się: a bo mi się wydaje. To dalej jest dobra rzecz, dobra umiejętność, bo mi się wydaje, ale poparcie tego liczbami jest zawsze lepsze.
Łukasz Kałużny: No i chyba tyle, zostawmy, zostawmy.
Szymon Warda: Tak, tyle.
Łukasz Kałużny: Ale dziękujemy, jest parę pomysłów na odcinki dzięki Wam.
Szymon Warda: Jest, jest, jest.
Łukasz Kałużny: Tak, ale na razie AI-a zostawmy ten, przecież w tym. To już po GitHub Universie, więc byliście.
Szymon Warda: Łukasz, będą konferencje, to będą, będą AI-e, nie oszukujmy się.
Łukasz Kałużny: Dobra, trzymajcie się, hej.
Szymon Warda: Pa pa.
Łukasz Kałużny: Dosłuchałeś do końca, więc chyba nie było źle, więc zostaw komentarz, najlepiej 8 losowych słów oraz lajka pod tym odcinkiem.

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