# Badanie Echoes of AI: utrzymywalność kodu od asystentów AI na poziomie tradycyjnego
Badanie „Echoes of AI” pokazuje, że kod generowany za pomocą asystentów AI, takich jak Copilot czy Cursor, nie pogarsza utrzymywalności. W randomizowanym kontrolowanym eksperymencie z udziałem 151 deweloperów kod z grupy AI był rozwiązywany o 13% szybciej, wykazywał porównywalny CodeHealth oraz pokrycie testami. U doświadczonych użytkowników AI jakość kodu była nawet wyższa.
Projekt eksperymentu
Eksperyment podzielono na dwie fazy. W pierwszej fazie 151 uczestników (95% to praktykujący deweloperzy) ulepszało aplikację Java/Spring Boot o nazwie RecipeFinder (~2000 linii z code smells i błędami). Zadanie: dodać filtrowanie przepisów według czasu przygotowania.
Uczestników podzielono na grupy:
- AI-devs: korzystali z asystentów AI (Copilot, ChatGPT, Cursor).
- !AI-devs: bez AI.
Podział stratyfikowany według doświadczenia. Geografia: globalna, demografia zrównoważona.
W drugiej fazie 75 nowych deweloperów (bez AI) rozszerzało kod z pierwszej fazy — dodając filtrowanie według kosztu porcji. Uczestnicy nie znali pochodzenia kodu. Sukces weryfikowano za pomocą acceptance-tests w GitHub Actions.
Metryki utrzymywalności:
| Metryka | Narzędzie | Opis |
|------------------|--------------------|----------------------------------------------------------------------|
| Completion Time | Self-reported + CI | Czas na zadanie w fazie 2 |
| CodeHealth (CH) | CodeScene | Agregat z ponad 25 czynników (zagnieżdżenie, God Classes, duplikaty, bumpy road; skala 1–10) |
| Test Coverage (TC) | JaCoCo | Pokrycie linii testami |
| Perceived Productivity (PP) | Ankieta SPACE | Subiektywna ocena (skala Likerta) |
Analiza: częstotliwościowa (Wilcoxon, t-test, bootstrap) + bajesowska (liniowa/logistyczna regresja).
Wyniki fazy 1: przyspieszenie rozwoju
AI przyspieszyło zadanie:
- Wszyscy AI-devs: mediana +30,7%.
- Habitual AI users: średnia +55,9%.
Zadania uznano za realistyczne (mediana 4/5 pod względem podobieństwa do production).
Wyniki fazy 2: utrzymanie kodu
Kod od AI nie ustępował tradycyjnemu:
| Metryka | Różnica AI vs !AI | Znaczenie |
|------------------------|----------------------------|------------------------------------------------|
| Completion Time | +13% przyspieszenie | Niewystarczające (umiarkowane dowody bajesowskie) |
| CodeHealth | +0,3 punktu | Niewystarczające ogółem, istotne dla habitual (+ umiarkowane bajesowskie) |
| Test Coverage | Brak różnicy | Niewystarczające |
| Perceived Productivity | Brak różnicy | Umiarkowanie pozytywne bajesowskie |
Kod od habitual AI users miał najlepszy CodeHealth. AI generuje idiomatyczny, przewidywalny kod — to zaleta dla maintainability.
Ryzyka: code bloat i cognitive debt
Metryki nie wychwytują:
- Code bloat: AI ułatwia generowanie, ryzyko nadmiernego objętości → złożoność.
- Cognitive debt: zmniejszenie głębokiego zrozumienia kodu, atrofia umiejętności, efekt amnezji Gell-Manna (mniej krytyki słabych języków).
Powiązanie z DORA i praktykami
DORA 2025: AI wzmacnia praktyki. Wygrywają zespoły z:
- Małymi batchami.
- Szybkimi iteracjami (testy, rewizje, refaktoring).
- Modułowymi architekturami.
- Orientacją end-to-end.
- Autonomią.
90% używa AI codziennie, 80% widzi wzrost produktywności, ale stabilność spada bez praktyk.
Co ważne
- Kod od AI jest utrzymywany nie gorzej niż tradycyjny, czasem lepiej (habitual users).
- Przyspieszenie fazy 1: 30–55%, fazy 2: ~13%.
- CodeHealth koreluje z metrykami biznesowymi (2× iteracje, 15× mniej defektów).
- Ryzyka: bloat i cognitive debt wymagają dyscypliny.
- AI wzmacnia silne zespoły (DORA).
— Editorial Team
Brak komentarzy.