Generatywna AI w kodzie: 3 sytuacje, gdy oszczędza czas, a nie pieniądze
Słyszałem ostatnio od CTO jednej z agencji: „Wdrożyliśmy GitHub Copilot dla całego zespołu, oszczędzamy 30% czasu, ale nie widzę tego w budżecie”. Brzmi znajomo? To częsty paradoks – narzędzia AI obiecują produktywność, ale przekładają się na wzrost kosztów, a nie oszczędności. Dlaczego? Bo generatywna AI działa świetnie przy konkretnych zadaniach, a fatalnie, gdy traktujemy ją jak uniwersalne rozwiązanie.
W JurskiTech od kilku miesięcy testujemy różne modele w codziennej pracy. Zauważyliśmy, że są obszary, gdzie AI faktycznie skraca czas i obniża koszty, ale też takie, gdzie wprowadza chaos. Dziś pokażę trzy konkretne sytuacje, w których generatywna AI w kodzie ma sens – i gdzie lepiej odpuścić.
1. Pisanie testów jednostkowych – nudna robota, która musi być zrobiona dobrze
Testy jednostkowe to jeden z najbardziej przewidywalnych przypadków użycia dla AI. Modele językowe świetnie radzą sobie z generowaniem standardowych asercji, mocków i scenariuszy brzegowych na podstawie istniejącego kodu. W jednym z naszych projektów (aplikacja SaaS z backendem w Node.js) ręczne pisanie testów zabierało juniorom około 40% czasu. Po wdrożeniu Copilota i GPT-4 z odpowiednim promptem inżynierskim, czas spadł o połowę.
Ale uwaga: Kluczowe jest przygotowanie scaffolda testów – struktury opisującej, co ma być testowane. AI bez kontekstu generuje testy, które albo są zbyt ogólne, albo testują nie to, co trzeba. W praktyce oznacza to, że programista musi poświęcić 10-15 minut na przygotowanie opisu, a potem AI robi resztę. W skali sprintu daje to realne oszczędności, ale nie 80% – raczej 30-40%.
Przykład: Przy projekcie e-commerce z 200 endpointami, wygenerowaliśmy testy jednostkowe dla połowy z nich w jeden dzień – normalnie trwałoby to trzy dni. Koszt? Około 20 dolarów za API OpenAI. Efekt? Szybsze mergowanie PR-ów i mniej błędów w produkcji. To jest właśnie moment, gdy AI zwraca się w czasie i pieniądzach.
2. Refaktoryzacja legacy code – operacja na starym kodzie bez ryzyka
Każdy, kto pracował z aplikacją mającą 5-10 lat, wie, że refaktoryzacja to najczęściej kosztowny ból. AI może tu pomóc, ale tylko pod warunkiem, że traktujemy ją jak asystenta, a nie zamiennik. W jednym z naszych zleceń (migracja z jQuery do React w sklepie internetowym) użyliśmy Copilota do identyfikacji wzorców i generowania propozycji kodu dla prostych komponentów.
Kluczowy insight: AI świetnie radzi sobie z konwersją dobrze napisanego, ale przestarzałego kodu. Gorzej, gdy kod jest spaghetti – wtedy generuje równie zagmatwane wyjście. Dlatego nasza strategia polegała na najpierw ręcznym wyodrębnieniu czystych fragmentów logiki (np. funkcji pomocniczych), a dopiero potem puszczeniu ich przez model.
Efekt? Skróciliśmy czas refaktoryzacji o około 25%, ale najważniejsze było zmniejszenie ryzyka błędów. AI potrafiła zasugerować lepsze nazwy zmiennych, usunąć dead code i ujednolicić styl. To nie są rewolucyjne oszczędności, ale w połączeniu z mniejszą liczbą bugów na produkcji – realna wartość.
Trzeba jednak pamiętać: AI nie zrozumie kontekstu biznesowego. Jeśli legacy kod zawiera niestandardowe reguły logowania czy walidacji, model może je pominąć. Dlatego każdą wygenerowaną zmianę trzeba przejrzeć – to zajmuje czas, ale i tak mniej niż ręczne przepisywanie.
3. Generowanie dokumentacji i boilerplate – tam, gdzie kreatywność nie jest potrzebna
Dokumentacja API, komentarze inline, pliki README – to zadania, które programiści nienawidzą, a które są niezbędne dla utrzymania projektu. AI generuje je szybko i spójnie. W jednym z naszych wewnętrznych projektów użyliśmy GPT-4 do wygenerowania dokumentacji dla REST API na podstawie schematu OpenAPI. Zajęło to 15 minut, podczas gdy ręczne pisanie zajęłoby cały dzień.
Podobnie z boilerplate: konfiguracja Webpacka, plików Docker, CI/CD – to powtarzalne wzorce, które AI tworzy bezbłędnie. Oszczędność czasu jest ogromna, zwłaszcza przy uruchamianiu nowych projektów.
Ale: Uważaj na jakość. Kilka razy zdarzyło się, że wygenerowana dokumentacja zawierała błędy logiczne (np. opis endpointu nie zgadzał się z rzeczywistym działaniem). Dlatego zawsze sprawdzamy – ale to i tak szybsze niż pisanie od zera.
Gdzie generatywna AI w kodzie zawodzi?
Z doświadczenia wiem, że AI nie sprawdza się przy rozwiązywaniu nietypowych problemów, głębokiej optymalizacji wydajności czy projektowaniu architektury. Modele są trenowane na ogromnej liczbie przykładów, więc przy standardowych zadaniach działają świetnie, ale gdy trzeba wymyślić coś nowego – generują rozwiązania przeciętne.
Widziałem firmy, które wdrożyły Copilota i liczyły na 50% wzrost produktywności. Rzeczywistość? Zyski rzędu 10-20% w zależności od zespołu. Dlaczego? Bo programiści zamiast myśleć, szybko przyjmują sugestie AI, często nie sprawdzając ich poprawności. Efektem są trudne do wykrycia błędy i dług techniczny.
Jak więc podejść do generatywnej AI w kodzie?
Z naszych obserwacji wynika, że kluczowe jest określenie zakresu: AI ma być narzędziem do rutynowych zadań – testów, dokumentacji, boilerplate, prostych refaktoryzacji. Do złożonych problemów – ludzi. W małej lub średniej firmie, gdzie każda godzina się liczy, warto wdrożyć AI w tych trzech obszarach, ale nie liczyć na cud.
W JurskiTech korzystamy z generatywnej AI głównie do wspomnianych zadań, a przy krytycznych fragmentach kodu – stawiamy na ręczne pisanie i code review. Równowaga jest kluczowa.
Podsumowanie
Generatywna AI w kodzie nie zastąpi programisty, ale może go odciążyć. W trzech sytuacjach – testach jednostkowych, refaktoryzacji legacy i generowaniu dokumentacji – realnie oszczędza czas i pieniądze. W innych – lepiej dmuchać na zimne. Przed wdrożeniem zastanów się, czy Twoje zadania są powtarzalne i dobrze zdefiniowane. Jeśli tak – AI się sprawdzi. Jeśli wymagają głębokiego zrozumienia biznesu – zostaw je ludziom.
Pamiętaj: narzędzie to nie strategia. AI może być świetnym dodatkiem do warsztatu, ale nie magiczną różdżką. W JurskiTech widzimy to każdego dnia – technologia ma służyć biznesowi, a nie odwrotnie.


