Rosnąca popularność narzędzi sztucznej inteligencji (AI) rewolucjonizuje wiele branż, a programowanie nie jest wyjątkiem. Coraz częściej programiści korzystają z asystentów AI, by usprawnić swoją pracę. Jednak nowe badania przeprowadzone na Uniwersytecie Saarländzkim w Niemczech ujawniają niepokojący trend: programiści stosują mniej krytyczne podejście do kodu generowanego przez AI niż do pracy z ludzkimi współpracownikami, co może prowadzić do poważnych problemów w przyszłości.
Zjawisko programowania w parach, czyli pracy dwóch programistów nad jednym projektem, jest od dawna uznawane za skuteczną metodę redukcji błędów i efektywnego dzielenia się wiedzą. Dzięki wzajemnym inspiracjom i wsparciu, programiści mogą unikać problematycznych rozwiązań i lepiej zrozumieć kod. Obecnie coraz częściej w procesie programowania pojawiają się asystenci AI, co rodzi pytania o wpływ tej zmiany na jakość i bezpieczeństwo oprogramowania.
Jak wyjaśnia profesor informatyki Sven Apel z Uniwersytetu Saarländzkiego, "Programiści często inspirują się nawzajem i pomagają unikać błędów. Mogą także dzielić się swoją wiedzą, co zapewnia, że więcej osób w organizacji jest zaznajomionych z kodem". Wspólnie ze swoim zespołem profesor Apel postanowił sprawdzić, czy ten model współpracy sprawdza się równie dobrze, gdy jednym z partnerów jest asystent AI.
Badanie obejmowało 19 studentów z doświadczeniem w programowaniu. Zostali oni podzieleni na pary, z których sześć współpracowało z ludzkim partnerem, a siedem z asystentem AI. Metodologia pomiaru transferu wiedzy została opracowana przez Niklasa Schneidera w ramach jego pracy licencjackiej. W badaniu wykorzystano GitHub Copilot, asystenta programowania opartego na AI, wprowadzony przez Microsoft w 2021 roku. Narzędzia tego typu, a także podobne rozwiązania oferowane przez inne firmy, na stałe zmieniły sposób pisania oprogramowania.
Choć asystenci AI umożliwiają szybszy rozwój i generowanie dużej ilości kodu w krótkim czasie, profesor Apel ostrzega, że łatwiej o pominięcie błędów, które mogą ujawnić się dopiero później. "Chcieliśmy zrozumieć, które aspekty ludzkiej współpracy w programowaniu są kluczowe i czy można je odtworzyć w parach człowiek-AI", dodaje.
Transfer wiedzy – klucz do efektywnej współpracy
Transfer wiedzy jest integralną częścią programowania w parach. "Programiści nieustannie dyskutują nad bieżącymi problemami i wspólnie szukają rozwiązań. Nie ogranicza się to jedynie zadawaniem i odpowiadaniem na pytania, ale również dzieleniem się skutecznymi strategiami programowania i oferowaniem własnych spostrzeżeń", tłumaczy profesor Apel. Badanie wykazało, że takie wymiany również miały miejsce w parach z asystentem AI, ale interakcje były mniej intensywne i obejmowały węższy zakres tematów.
"W wielu przypadkach skupiono się wyłącznie na kodzie", zauważa profesor Apel. W kontraście, ludzcy programiści byli bardziej skłonni do odpływania od tematu i angażowania się w szersze dyskusje, mniej skoncentrowani na natychmiastowym zadaniu.
Najbardziej zaskakującym odkryciem było to, że programiści pracujący z asystentem AI byli bardziej skłonni zaakceptować propozycje AI bez krytycznej oceny, zakładając, że kod zadziała zgodnie z oczekiwaniami. Ludzkie pary, w przeciwieństwie do tego, były znacznie bardziej skłonne do zadawania krytycznych pytań i uważnego sprawdzania wkładów drugiej osoby.
Profesor Apel uważa, że ta tendencja do większego zaufania AI niż ludzkim współpracownikom może rozciągać się na inne dziedziny. "Uważam, że ma to związek z pewnym stopniem samozadowolenia – skłonności do założenia, że wynik AI jest prawdopodobnie wystarczająco dobry, nawet jeśli wiemy, że asystenci AI mogą również popełniać błędy", dodaje.
Potencjalne zagrożenia – "zadłużenie techniczne"
Profesor Apel ostrzega, że niekrytyczne poleganie na AI może prowadzić do akumulacji tzw. "zadłużenia technicznego", ukrytych kosztów przyszłej pracy wymaganej do poprawy tych błędów i utrudnienia dalszego rozwoju oprogramowania. "Zadłużenie techniczne" jest pojęciem dobrze znanym w branży IT i odnosi się do kompromisów podejmowanych w celu szybszego ukończenia projektu, które w przyszłości będą wymagały dodatkowego czasu i zasobów na naprawę.
Badanie podkreśla fakt, że asystenci AI nie są jeszcze w stanie w pełni odtworzyć bogactwa ludzkiej współpracy w programowaniu. "Z pewnością są użyteczne do prostych, powtarzalnych zadań", mówi profesor Apel. "Ale w przypadku bardziej złożonych problemów wymiana wiedzy jest niezbędna – i obecnie najlepiej sprawdza się ona między ludźmi, ewentualnie z asystentami AI jako wsparciem."
Profesor Apel podkreśla potrzebę dalszych badań nad tym, jak ludzie i AI mogą współpracować efektywnie, jednocześnie zachowując krytyczne podejście, które charakteryzuje ludzką współpracę. W przyszłości kluczowe będzie znalezienie równowagi między wykorzystaniem potencjału AI a zapewnieniem jakości i bezpieczeństwa oprogramowania. Unikanie nieuzasadnionego zaufania do AI i ciągłe weryfikowanie generowanego przez nią kodu pozostają fundamentem niezawodnego i bezpiecznego oprogramowania.