GoSuda

Metodologia rozwoju AI-native: dwukierunkowa cyrkulacja kontekstu wykraczająca poza wykorzystanie narzędzi

By gosunuts views ...

AI a programiści

Stosunek programistów do AI jest złożony. Z jednej strony AI umożliwiło bezprecedensowy wzrost produktywności oraz łatwiejsze zdobywanie informacji, z drugiej jednak zmienia się fundamentalnie rola programistów. Jedni przewidują, że AI rozwinie się w AGI i zastąpi większość programistów, inni natomiast deprecjonują AI jako przecenione narzędzie i twierdzą, że istotna wartość programistów się nie zmieni. Choć to stanowisko na pierwszy rzut oka wydaje się diametralnie przeciwne, to pod względem tego, że AI ocenia się według dotychczasowych sposobów myślenia, jest zaskakująco podobne.

Kluczowe jest jednak to, że chodzi nie o ocenianie czy wartościowanie AI. Prawdziwym sednem jest to, jak powinno zmienić się myślenie o wytwarzaniu oprogramowania przy założeniu obecności AI oraz jak w odpowiedzi na tę zmianę należy przebudować role programistów i organizacji. W tym celu przedstawiono metodologię wytwarzania oprogramowania z AI w ramach poniższej analizy trzyetapowej.

Rozwój zależny od AI

Rozwój zależny od AI to etap, w którym AI traktuje się jako podmiot podejmujący decyzje, a jego wyniki przyjmuje się bez krytycznej oceny. Na tym etapie programista postrzega AI jako kogoś, kto porządkuje jego pomysły i je implementuje, a nawet przyjmuje ją jako substytut zdolne do przejęcia zarówno osądu, jak i odpowiedzialności.

Ten sposób pozornie zwiększa produktywność w sposób gwałtowny. W rzeczywistości jednak szybko narasta kod, którego nie da się wyjaśnić i za który nie można ponieść odpowiedzialności. Tak powstały kod, w chwili wystąpienia problemu, uniemożliwia komukolwiek pewne rozstrzygnięcie, dlaczego przyjęto taką strukturę i które wybory były właściwe.

Na tym etapie AI wytwarza wyłącznie wyniki niegodne zaufania, a programista pozostaje w roli konsumenta tych wyników. W efekcie zarówno AI, jak i programista zostają wyeksploatowani, a rzeczywiste kompetencje nie kumulują się nigdzie.

Rozwój z wykorzystaniem AI

Rozwój z wykorzystaniem AI to etap, który można zaobserwować u bardziej doświadczonych programistów. Na tym etapie programista postrzega AI nie jako substytut osądu, lecz jako potężne narzędzie zwiększające produktywność. Programista ten pozostaje podmiotem odpowiedzialnym za projektowanie i ostateczne decyzje, a powtarzalne i kosztowne zadania, takie jak generowanie kodu, refaktoryzacja, debugowanie czy streszczanie dokumentacji, deleguje do AI. Taki sposób znacząco ogranicza udział powtarzalnej pracy programisty i pozwala drastycznie zwiększyć produktywność przy zachowaniu zaufania.

Metoda ta ma jednak strukturalne ograniczenie: kontekst projektowy i proces decyzyjny nie krążą w obiegu. Kierunek rozwoju oraz proces decyzyjny pozostają w sferze indywidualnych przemyśleń programisty i nie są udostępniane AI, dlatego AI nie gromadzi zmian i rozwoju programisty. W rezultacie kontekst projektowy oraz zdolność podejmowania decyzji pozostają odizolowane u programisty.

W konsekwencji między programistą a AI nie powstaje cykl uczenia się, a umiejętność wykorzystania AI nie wykracza poza dotychczasowe kompetencje programisty. Rozwój staje się sprawą jednostki, a z upływem czasu różnice kompetencji między programistami się pogłębiają. Ponadto kompetencje te wykazują ograniczenie polegające na tym, że trudno je gromadzić lub odtwarzać na poziomie organizacji.

Rozwój natywny dla AI

Rozwój natywny dla AI wykracza poza etapy, w których AI jest zaufanym lub używanym narzędziem, i oznacza włączenie AI w strukturę wytwarzania oraz proces decyzyjny, w którym AI i ludzie wchodzą ze sobą w interakcje i wzajemnie się rozwijają. Na tym etapie AI funkcjonuje jako członek zespołu, który dzieli się z programistą kontekstem i osądem w trakcie wzajemnych interakcji.

Istotą tej struktury jest dwukierunkowy, a nie jednokierunkowy obieg między AI a programistą. Programista nieustannie udostępnia AI zamiary projektowe i uzasadnienia decyzji, a AI dzięki temu gromadzi myślenie programisty oraz kontekst organizacji. W rezultacie AI nie ogranicza się do przetwarzania poleceń, lecz rozwija się w kierunku proponowania rozwiązań dopasowanych do organizacji oraz wspierania i korygowania osądu programisty.

Rozwój natywny dla AI nie opiera się na biegłości lub wprawie konkretnej osoby. Nawet gdy zmieniają się członkowie zespołu, jeśli kontekst AI zostaje zachowany, można zadawać pytania o podobnej perspektywie w odniesieniu do tego samego problemu oraz kontynuować podejmowanie lepszych decyzji w oparciu o wcześniejsze wybory i ich uzasadnienia. Kompetencje wytwórcze nie są przypisane do jednostki, lecz kumulują się w całej organizacji i stają się powtarzalne.

Ostatecznie rozwój natywny dla AI dąży nie do konkretnej architektury ani metodologii wytwarzania, lecz do samego procesu, w którym osąd i uczenie się człowieka oraz AI wzajemnie się wzmacniają. W ramach tej struktury programista i AI nie zastępują się nawzajem. Zamiast tego współdzielą tę samą przestrzeń problemową i ewoluują w relację, w której wspólnie tworzą lepsze decyzje i bardziej solidne struktury.