Metodológia vývoja natívne orientovaného na AI: obojsmerné cyklovanie kontextu presahujúce rámec používania nástrojov

AI a vývojári
Pohľad vývojárov na AI je komplexný. AI umožnila bezprecedentný nárast produktivity a prístup k informáciám, zároveň sa však zásadne mení úloha vývojára. Niektorí predpokladajú, že AI sa vyvinie na AGI a nahradí väčšinu vývojárov, iní zľahčujú AI ako preceňovaný nástroj a tvrdia, že podstatná hodnota vývojára sa nemení. Tento postoj sa navonok javí ako opačný, no v tom, že AI posudzuje meradlom existujúceho myslenia, je prekvapivo podobný.
Dôležité však nie je hodnotiť alebo posudzovať AI. Skutočným jadrom je, ako sa musí zmeniť myslenie o vývoji za predpokladu použitia AI a ako sa v súvislosti s touto zmenou musí preskupiť úloha vývojárov a organizácií. Na tento účel sme metodológiu vývoja s AI zhrnuli do troch fáz nižšie.
Vývoj závislý od AI
Vývoj závislý od AI je fáza, v ktorej sa AI stáva subjektom úsudku a jej výsledky sa prijímajú bez kritického hodnotenia. Vývojár v tejto fáze vníma AI ako niekoho, kto mu zoradí myšlienky a implementuje ich, a ďalej ju prijíma ako náhradu, ktorej môže delegovať aj úsudok a zodpovednosť.
Tento spôsob sa na prvý pohľad javí ako výrazný nárast produktivity. V skutočnosti však rýchlo narastá kód, ktorý nie je možné vysvetliť ani za ktorý nie je možné niesť zodpovednosť. Takto vytvorený kód neumožňuje nikomu pri vzniku problémov s istotou posúdiť, prečo má štruktúru, akú má, a ktoré rozhodnutia sú správne.
V tejto fáze AI produkuje iba nespoľahlivé výsledky a vývojár sa obmedzuje na úlohu spotrebiteľa týchto výsledkov. Výsledkom je, že AI aj vývojár sa využívajú spotrebiteľským spôsobom a skutočná kapacita sa nikde nehromadí.
Používanie AI vo vývoji
Používanie AI vo vývoji je fáza, ktorú možno pozorovať u skúsenejších vývojárov. V tejto fáze vývojár vníma AI nie ako náhradu úsudku, ale ako silný nástroj na zvýšenie produktivity. Vývojár v tejto fáze zostáva subjektom návrhu a konečného rozhodnutia a deleguje AI opakujúce sa a nákladné úlohy, ako sú generovanie kódu, refaktorizácia, ladenie a sumarizácia dokumentácie. Tento spôsob výrazne znižuje podiel opakujúcej sa práce vývojára a umožňuje dramaticky zvýšiť produktivitu pri zachovaní dôvery.
Tento prístup však má štrukturálne obmedzenie: kontext návrhu a úsudok necirkulujú. Smer vývoja a proces rozhodovania zostávajú v osobnom uvažovaní vývojára a nezdieľajú sa s AI, preto AI nedokáže zhromažďovať zmeny a rast vývojára. Výsledkom je, že kontext návrhu a schopnosť úsudku ostávajú izolované u vývojára.
Medzi vývojárom a AI sa preto nevytvára učebný cyklus a schopnosť využívať AI sa nerozširuje nad rámec existujúcich schopností vývojára. Rast zostáva viazaný na jednotlivca a s plynutím času sa rozdiely v schopnostiach medzi vývojármi zväčšujú. Navyše sa ukazuje, že takéto schopnosti sa na úrovni organizácie len ťažko hromadia alebo opakovane využívajú.
AI-natívny vývoj
AI-natívny vývoj presahuje fázu, v ktorej sa AI iba dôveruje alebo používa ako nástroj, a znamená štruktúru, v ktorej sa AI začleňuje do vývojovej štruktúry a procesu rozhodovania a v ktorej AI a ľudia vzájomne interagujú a navzájom sa rozvíjajú. V tejto fáze AI funguje ako člen, ktorý zdieľa úsudok a kontext vývojára a interaguje s ním.
Jadrom tejto štruktúry je, že kruh medzi AI a vývojárom nie je jednosmerný, ale obojsmerný. Vývojár priebežne zdieľa zámer návrhu a odôvodnenie rozhodnutí s AI a AI prostredníctvom toho zhromažďuje myslenie vývojára a kontext organizácie. Výsledkom je, že AI sa nevyvíja len ako nástroj, ktorý spracúva požiadavky, ale smeruje k tomu, aby ponúkala možnosti prispôsobené organizácii a napomáhala vývojárovi pri úsudku a opravovala ho.
AI-natívny vývoj nie je závislý od osobitnej zručnosti alebo triku konkrétneho jednotlivca. Ak sa AI kontext zachová aj pri zmene členov tímu, možno klásť podobne orientované otázky k rovnakým problémom a na základe minulých rozhodnutí a ich dôvodov môžu rozhodnutia pokračovať lepším smerom. Vývojárska kapacita nie je viazaná na jednotlivca, ale kumuluje sa na úrovni celej organizácie a je opakovane využiteľná.
Napokon, AI-natívny vývoj nesmeruje k určitej architektúre ani metodológii, ale k samotnému procesu vývoja, v ktorom sa úsudok a učenie AI a človeka priebežne posilňujú. V rámci tejto štruktúry sa vývojár a AI navzájom nenahrádzajú. Namiesto toho zdieľajú rovnaký problémový priestor a vyvíjajú sa vo vzťahu, v ktorom spoločne vytvárajú lepšie úsudky a pevnejšie štruktúry.