(kép teljes méretben) (új lapon nyílik meg)Ez azonban nagyjából olyan, mintha valaki néhány pszichológiai témájú AI-beszélgetés után pszichológusnak nevezné magát. Attól, hogy egy eszköz segít egy területen dolgozni, még nem válunk automatikusan szakemberré az adott témában. Ugyanez igaz a programozásra is.
Az AI kétségkívül forradalmasítja a fejlesztést, de nem úgy, ahogy azt sokan elképzelik.
Hogyan jutottunk el idáig?
Mi körülbelül négy éve kezdtünk el AI-eszközöket használni a fejlesztési munkánk során. Az első időszakban még inkább kísérletezésről beszélhettünk.
Az akkori rendszerek sokat tévedtek, gyakran hallucináltak, nem létező függvényeket és metódusokat találtak ki, és jellemzően csak a betanításuk során megszerzett tudásból dolgoztak, nem láttak rá az aktuális internetes tartalmakra.
Először a ChatGPT-t kezdtük használni, később megjelentek a Gemini, Claude és más modellek is. Az első felhasználási területek az ötletelés, a hibakeresés és a dokumentációk értelmezése voltak.
Bár az AI sokszor rossz megoldást adott, segített más nézőpontból megközelíteni egy problémát. Olyan ötleteket dobott be, amelyek korábban csak hosszú dokumentációolvasás vagy fórumozás után jutottak volna eszünkbe.
Ebben az időszakban az AI leginkább egy gyors, intelligens keresőmotor volt.
Az AI mint fejlesztőtárs
A következő nagy ugrás akkor történt, amikor az AI már nemcsak keresni tudott, hanem egyre nagyobb kódrészleteket is elő tudott állítani.
Megjelentek a komplett függvények, a refaktorálási javaslatok, az optimalizálási ötletek, a hibajavítások és a részletes magyarázatok. A fejlesztői munkában ez már valódi időmegtakarítást jelentett számunkra.
A hibakeresés felgyorsult, a prototípusok gyorsabban elkészültek, és az ismétlődő feladatok egy részét is át lehetett adni az AI-nak.
Ma már ott tartunk, hogy az AI akár teljes frontendeket, weboldalakat, alkalmazásokat vagy adatbázis-kapcsolatokat is képes generálni.
Akkor már nincs szükség fejlesztőkre?
A kívülállók szemszögéből nézve logikusnak tűnik a gondolatmenet: ha az AI képes kódot írni, akkor minek a fejlesztő?
Azonban a kódírás csak egy része a fejlesztői munkának.
Az AI-nak először is pontos bemeneti információkra van szüksége. Meg kell adni a kontextust, az üzleti logikát, a rendszer működését, az architektúrát és az elvárásokat. Ezután a kapott eredményt is ellenőrizni kell.
Aki dolgozott már nagyobb AI-projektekkel, tudja, hogy önmagában az sem egyszerű feladat, hogy a modell ne veszítse el a kontextust. Gyakran külön agenteket, részfeladatokra bontott folyamatokat és ellenőrzési lépéseket kell kialakítani ahhoz, hogy a végeredmény használható legyen.
Vagyis az emberi kontroll továbbra sem tűnt el, de máshová került a hangsúly.
Mi változik meg a fejlesztők munkájában?
Valószínűleg nem maga a szakma fog eltűnni, hanem bizonyos típusú feladatok.
A junior szintű rutinmunkák egy részét már most is kiválóan végzi az AI. Ilyenek például:
- boilerplate kódok létrehozása;
- egyszerű CRUD-oldalak készítése;
- alapvető frontendelemek kialakítása;
- egyszerű API-kapcsolatok létrehozása;
- dokumentáció alapján készülő standard implementációk;
- ismétlődő fejlesztési feladatok.
Kik kerülhetnek előtérbe?
Az egyik legfontosabb csoport a rendszerszinten gondolkodó fejlesztőké lesz.
Ők nem egyetlen függvényben vagy fájlban gondolkodnak, hanem teljes rendszerekben. Architektúrát terveznek, összefüggéseket látnak, és komplex problémákat oldanak meg.
Emellett egyre fontosabbá válik az AI-val való együttműködés képessége is.
A jövő fejlesztője valószínűleg nemcsak kódot ír, hanem AI-rendszereket irányít. Tud promptot írni, workflow-kat kialakítani, validálni a kapott eredményeket és felismerni a hibákat.
Felértékelődhetnek a domain szakértők is, akik mélyen értik egy adott iparág működését, és pontos specifikációkat tudnak készíteni.
Várhatóan egyre nagyobb szerepet kapnak az AI-integrációval és automatizálással foglalkozó szakemberek is, akik különböző rendszereket kötnek össze és üzleti folyamatokat automatizálnak.
A veszélyes oldal
Az AI fejlődése mellett nem szabad megfeledkezni a kockázatokról sem.
A legnagyobb veszély az, amikor valaki vakon megbízik a generált kódban. Az AI ma már sokszor nagyon jó minőségű kódot ír, de ez nem jelenti azt, hogy hibátlan. Továbbra is előfordulhatnak:
- biztonsági problémák;
- teljesítménygondok;
- rossz architekturális döntések;
- nehezen karbantartható megoldások.
Egy egyszerű, önálló weboldalt ma már akár egy kevés tapasztalattal rendelkező „vibe kódoló” is össze tud rakni. Ha azonban egy rendszernek más rendszerekhez kell kapcsolódnia, vállalati környezetben kell működnie, vagy hosszú távon karbantarthatónak kell lennie, akkor már számítanak azok a fejlesztési konvenciók és architekturális szabályok, amelyek évtizedek alatt alakultak ki.
Tapasztalataink szerint az AI például gyakran szeret túl sok dolgot egyetlen fájlba tenni. Egy gyakorlott fejlesztő viszont tudja, hogy a kisebb, jól elkülönített komponensek hosszú távon átláthatóbbak és karbantarthatóbbak. Ezért mi is inkább kisebb lépésekben dolgozunk vele, részfeladatokra bontjuk a problémát, és folyamatosan ellenőrizzük az eredményt.
A junior fejlesztők dilemmája
Régen a kezdő fejlesztők kisebb feladatokon keresztül tanultak. Egyszerű hibákból, rutinmunkákból és sok gyakorlásból építették fel a tudásukat. Ma ezeknek a feladatoknak egy részét már az AI végzi.
Felmerül tehát a kérdés: hogyan lesz valakiből senior fejlesztő, ha a tanulási folyamat jelentős részét automatizáljuk?
Erre ma még senki sem tud biztos választ adni. Valószínű azonban, hogy a fejlesztőképzésnek és a szakmai fejlődés útjának is alkalmazkodnia kell az új helyzethez.
Nem a programozás vége jön
Sokan a programozás végét látják az AI térnyerésében. Várhatóan az AI egyre jobb fejlesztői segédeszköz lesz.
Szerintünk a jó fejlesztő értékét továbbra sem a billentyűzeten leütött sorok száma fogja meghatározni, hanem az, hogy képes-e jó rendszereket tervezni, jó döntéseket hozni és felelősséget vállalni azok működéséért.