Wyobraź sobie przyszłość, w której sztuczna inteligencja po cichu zajmuje się żmudnymi aspektami tworzenia oprogramowania — porządkowaniem nieuporządkowanego kodu, aktualizowaniem starszych systemów czy wykrywaniem trudnych do uchwycenia warunków wyścigu — podczas gdy inżynierowie mogą skupić się na tym, co robią najlepiej: projektowaniu architektury, rozwiązywaniu skomplikowanych problemów i przesuwaniu granic innowacji.
Zanim jednak całkowicie pogrążymy się w tej wizji, warto zatrzymać się na chwilę i spojrzeć na rzeczywistość. Nowe narzędzia oparte na sztucznej inteligencji poczyniły znaczne postępy, jednak najnowsze badania przeprowadzone przez MIT nieco studzą entuzjazm związany z przekonaniem, że sztuczna inteligencja wkrótce rozwiąże wszystkie nasze problemy związane z oprogramowaniem. Zamiast tego wskazują one przeszkody, które będziemy musieli pokonać, jeśli chcemy, aby sztuczna inteligencja i programiści naprawdę współpracowali ze sobą, a nie działali w sprzecznych celach.
Jedno wynika jasno z badania: pisanie kodu to tylko niewielka część tego, czym zajmują się inżynierowie oprogramowania w praktyce. Oprócz przyjemności płynącej z wymyślania sprytnych algorytmów istnieje góra “rutynowej pracy” — refaktoryzacja starego kodu, przenoszenie ogromnych systemów na nowe platformy, testowanie, debugowanie, utrzymywanie przy życiu starszych projektów, a nawet mniej efektowne zadania, takie jak dokumentowanie i weryfikacja kodu. Sztuczna inteligencja zaczęła stopniowo przejmować niektóre z tych zadań, ale droga przed nami jest daleka od gładkiej.
Mimo że sztuczna inteligencja potrafi zautomatyzować wiele zadań, nie oznacza to jeszcze, że programistom grozi zwolnienie. Armando Solar-Lezama, profesor MIT i jeden z autorów badania, zwraca uwagę, że choć obecne narzędzia sztucznej inteligencji mają imponujące możliwości, wciąż jesteśmy daleko od momentu, w którym będziemy mogli przekazać maszynom pełną odpowiedzialność za większość zadań programistycznych.
Szczególnie trudny problem pojawia się przy ocenie, na ile sztuczna inteligencja faktycznie radzi sobie z programowaniem w rzeczywistych warunkach. Większość testów porównawczych skupia się na uporządkowanych, zamkniętych problemach — dalekich od chaotycznej rzeczywistości pełnowymiarowych projektów oprogramowania. W rezultacie trudno jest stwierdzić, czy sztuczna inteligencja jest gotowa do pomocy przy gruntownych zmianach wydajnościowych, nie mówiąc już o złożonych sytuacjach, takich jak współpraca z ludźmi czy naprawianie splątanych, wieloletnich baz kodu.
Kolejną poważną przeszkodą jest przekazywanie zadań między człowiekiem a maszyną. Komunikacja często się załamuje — sztuczna inteligencja ma zwyczaj generowania ogromnych, nieprzejrzystych fragmentów kodu, co utrudnia wykrycie potencjalnych problemów po uruchomieniu aplikacji. Przepis na katastrofę? Być może nie, ale z pewnością jest to powód do ostrożności. Gdyby systemy AI potrafiły “wiedzieć, czego nie wiedzą” i prosić programistów o wyjaśnienia, znacznie łatwiej byłoby zbudować zaufanie do współpracy między człowiekiem a sztuczną inteligencją.
Do tego dochodzi jeszcze kwestia kontekstu. Wiele systemów sztucznej inteligencji jest szkolonych na kodzie pochodzącym z publicznych repozytoriów, który nie zawsze odzwierciedla specyficzne konwencje i standardy poszczególnych organizacji. Jaki jest tego skutek? Sugestie dotyczące kodu, które nie odpowiadają potrzebom — a nawet nie kompilują się poprawnie — w rzeczywistych środowiskach korporacyjnych.
Badanie to nie ogranicza się jedynie do wskazania przeszkód. Sugeruje ono podejście obejmujące całą społeczność: lepsze, bardziej realistyczne wytyczne dotyczące współpracy między sztuczną inteligencją a programistami oraz zwiększenie przejrzystości systemów opartych na sztucznej inteligencji, tak aby ludzie mogli interweniować w razie potrzeby. Przesłaniem jest to, że sztuczna inteligencja nie powinna mieć na celu zastąpienia programistów, ale wzmocnienie ich możliwości – uwalniając ludzi, by mogli poświęcić więcej czasu na projektowanie, wprowadzanie innowacji i podejmowanie decyzji, które wciąż przewyższają możliwości maszyn.
Biorąc pod uwagę, jak duża część naszego świata opiera się na oprogramowaniu — od szpitali po autostrady — właściwe ukształtowanie tej współpracy ma większe znaczenie niż kiedykolwiek. Ponieważ rola sztucznej inteligencji w programowaniu stale rośnie, zachowanie trzeźwego spojrzenia na to, co potrafi ona zrobić, a czego nie, ma kluczowe znaczenie przy wytyczaniu kolejnych kroków w dziedzinie inżynierii oprogramowania.
Oryginalny artykuł w serwisie MIT News można przeczytać tutaj: https://news.mit.edu/2025/can-ai-really-code-study-maps-roadblocks-to-autonomous-software-engineering-0716
Ta strona używa plików cookie.