Természetesen! Íme egy egyedi megfogalmazás a "MI-segéd a fejlesztésben - ITBUSINESS" témában: --- **Mesterséges Intelligencia: A Fejlesztési Folyamatok Új Szövetségese - ITBUSINESS** A mesterséges intelligencia (MI) megjelenése forradalmasította a kül
A mesterséges intelligencia okos alkalmazásával jelentősen felgyorsítható a szoftverfejlesztési folyamat. Érdemes kiemelni a "megfelelő" kifejezést, hiszen bár sok fejlesztő már felfedezte a GenAI nyújtotta lehetőségeket, csak kevesen tudják azt valóban hatékonyan kihasználni. Az ITware saját tapasztalatai révén sajátította el, hogyan érdemes ezt a technológiát alkalmazni, és most már szívesen osztják meg tudásukat képzések formájában is. Erről beszélgettem Biró Attilával, a vállalat technológiai igazgatójával.
- Honnan jött az ötlet, hogy egy fejlesztővállalat mesterséges intelligencia használatára tanítsa más vállalatok fejlesztőit?
- Azt láttuk, hogy mások által írt, kész szoftverekkel, divatos szóval élve a legacy kódokkal senki nem akar foglalkozni. Lehet szó akár 20 éves, Unixra írt kódról vagy akár egy 2-3 éves konténerizált rendszerről, a fejlesztők legszívesebben bottal sem piszkálnák azokat. Ha egy programozó megnéz egy másvalaki által végzett munkát, a legritkább esetben mondja azt, hogy ez rendben van, ezt szívesen fejlesztem tovább. Ez érthető is, mert sokszor tényleg nem értjük, hogyan adhatott ki ilyen kódot a kezéből valaki vagy miért pont azt az algoritmust használta. Ilyenkor jön az általában, hogy dobjuk ki az egészet, és inkább írjunk egy új szoftvert.
Ez viszont azért sok esetben irracionális döntés lenne. Igyekeztünk olyan módszert találni, amellyel el tudjuk különíteni a kód használható, továbbfejleszthető részeit, hogy csak a maradékot kelljen újrafejleszteni. Ehhez kezdtünk el a mesterséges intelligenciával támogatott megoldásokkal kísérletezni házon belül úgy 1-1,5 évvel ezelőtt. Azt tapasztaltuk, hogy a fejlesztők sokkal szívesebben nyúltak a kódokhoz, gyorsabban megértették, mit akart azzal a kódrészlettel az eredeti programozó és hogy miként tudnák továbbfejleszteni. Arra gondoltunk, hogy ha ezek a módszerek nálunk működnek, akkor működhetnek máshol is, és ebből jött az AI4DEV képzések ötlete.
- Jól értem akkor, hogy gyakorlatilag a saját konkurenciájukat teremtették meg azzal, hogy ezt a tudást másokkal is megosztják?
- Valóban nem csak mi küszködtünk azzal, hogy félve nyúltunk egy kész kódhoz, hogy vajon milyen csontvázak esnek majd ki belőle, és ha mi az általunk kitalált módszereket a piacra visszük, akkor tényleg erősítjük a konkurenseket is. De azt mondtuk, hogy ez nem baj, mert mindenkinek jó lesz, ha ettől jobb minőségű szoftverek születnek, mert azok jobban működnek és a későbbiekben bátrabban, szívesebben nyúl hozzájuk a többi fejlesztő. Arról nem is beszélve, hogy a tudás megosztása során mi magunk is tanulunk. A képzések során nagyon sok olyan információ jutott el hozzánk a résztvevőktől, amiket a további képzésekbe be tudunk építeni.
Milyen eszközöket alkalmaznak a fejlesztők képzésében?
Ezen a témán nem kellett sokáig töprengenünk, hiszen a GitHub Copilot gyakorlatilag a fejlesztők körében már de facto szabványnak számít. Az alfa verziója óta széles körben elérhető, és a legtöbb programozó már szerzett valamilyen tapasztalatot a használatával. Érdekes módon, amikor felvetettük, hogy miért szeretnénk a Copilot használatát oktatni, sokan értetlenkedtek, hiszen úgy vélték, hogy már mindennapi szinten alkalmazzák. Azonban tapasztalataink alapján még a hazai távközlési szektor vezető szolgáltatóinak is sikerült új perspektívákat nyújtanunk az eddigi képzéseink során.
A cégekre specializált, tematikusan felépített oktatási napokon ugyanis, nem annyira az eszközök használatát tanítjuk, hanem inkább szemléletet adunk át. A prompting esetében megmutatjuk, hogy érdemes több lépésben, mélységi szinten gondolkozni (one shot, iteratív, korlátokat definiáló, illetve példa alapú prompt). Felhívjuk a figyelmet a kontextus szerepére, mert az explicit módon kijelölt kontextussal jobb eredmények érhetőek el. Azt is érzékeltetjük, hogy nem csodafegyver a GitHub Copilot, de nagyon hasznos lehet, mert a javaslataival csökkenti a megírandó kód mennyiségét, és elmagyaráz koncepciókat, kódrészleteket, beállításokat.
A képzés felépítése általában jól strukturált, és több szakaszból áll, amelyek célja, hogy a résztvevők átfogó tudást és gyakorlati készségeket szerezhessenek. Az alábbiakban bemutatom, mit is tanítanak a képzés során. Első lépésként a résztvevők alapvető elméleti ismereteket kapnak, amelyek a téma fundamentumait képezik. Ez magában foglalhatja a legfontosabb fogalmak, elméletek és modellek áttekintését, amelyek segítik a mélyebb megértést. A második szakaszban hangsúly kerül a gyakorlati alkalmazásokra. Itt a résztvevők lehetőséget kapnak arra, hogy a tanultakat valós helyzetekben gyakorolják, például szimulációk, csoportos feladatok vagy esettanulmányok segítségével. Ez a szakasz kulcsfontosságú a készségek fejlesztésében. A képzés során külön figyelmet fordítanak a visszajelzésre is. A résztvevők rendszeres értékeléseken vesznek részt, amelyek segítik őket abban, hogy felismerjék erősségeiket és fejlesztési lehetőségeiket. Végül, a képzés zárásaként gyakran szerveznek projektmunkát vagy prezentációt, ahol a résztvevők bemutathatják tudásukat és kreativitásukat. Ez nemcsak a tanultak összegzésére szolgál, hanem a csapatmunkát és a kommunikációs készségeket is fejleszti. Összességében a képzés célja, hogy a résztvevők ne csak elméleti tudásra tegyenek szert, hanem képesek legyenek azt a gyakorlatban is sikeresen alkalmazni.
A programunk célja, hogy egyedi tudást nyújtsunk a 4-6 fős fejlesztői csapatok számára, akik a mesterséges intelligencia és a nagy nyelvi modellek világában szeretnének elmélyülni. A képzés első napján egy átfogó bevezetőt tartunk, amely során felfedezzük a Copilot működését és lehetőségeit. A második napra a hangsúlyt a valós példákra helyezzük, ahol a résztvevők aktívan gyakorolják a mesterséges intelligencia alkalmazását a mindennapi munkájukban. Ezt követően, a harmadik napon a saját szervezetükben előforduló konkrét helyzeteket elemzünk, amelyek révén még inkább személyre szabott tudást kapnak. Itt kerül előtérbe a RAG, azaz a Retrieval Augmented Generation, amely lehetővé teszi, hogy a megoldások kidolgozásához a szervezeti információkat is bevonjuk. A résztvevők elsajátítják a megerősítéses tanulás módszereit, és megtanulják, hogyan finomhangolják a kódgenerálást, valamint miként adagolják az információt a Copilotnak. A képzés során kiemelt figyelmet fordítunk a tesztelés fontosságára, és arra, hogy miként integrálhatják a folyamatos tesztelést a fejlesztési folyamatokba. Végül, a képzés zárásaként visszaméréseket végzünk, amelyek segítségével nemcsak a résztvevők, hanem mi magunk is értékes tapasztalatokkal gazdagodunk.
Mennyire egyedi és testreszabott a képzés, figyelembe véve mind az egyéni résztvevők, mind a megrendelő vállalatok igényeit?
- Teljesen egyértelmű, hogy más jellegű tudásra van szüksége egy juniornak, mint egy szenior fejlesztőnek. Egy juniornak az MI irányokat mutathat, de a feladatot nem oldja meg helyette; őt rá kell ébresztenünk, hogy a végső döntés az ő kezében van, és ha rossz döntést hoz, az MI rossz irányba fogja vinni őt. Nekik voltaképpen fejlesztési módszertanokat is átadunk, segítünk nekik megtanulni önállóan, de felelősséggel dolgozni. Egy szeniornak felvillanthat egy olyan lehetőséget, amire akkor éppen esetleg nem gondolt, vagy felkínálja egy olyan funkció vázát, amelyre nagy valószínűséggel szüksége lesz - nekik azt mutatjuk meg, hogy ilyen dolgokra miként használható a Copilot. Mindenki a maga szintjén kap segítőt maga mellé - a junior a feladat elvégzéséhez, a szenior meg akár ahhoz is, hogy miként tudja hatékonyabban szétosztani a feladatokat a csapat tagjai között.
Ami a cégek szintjét illeti, mindig megnézzük, hogy alkalmaznak-e már valamilyen MI-eszközt, esetleg használják-e magát a GitHub Copilotot is. A tananyagot és a példákat is ehhez szabjuk, hogy a fejlesztőknek mind az eszközök, mind a fejlesztési környezet, mind a megoldandó problémák ismerősek legyenek.
Megemlítette, hogy számos fejlesztő már alkalmazza a Copilotot. Mennyire nehéz számukra a képzés során szembenézni a régi beidegződésekkel és a megszokott, de nem optimális módszerekkel?
A téma kapcsán nem csupán a mesterséges intelligenciára szeretnék fókuszálni. Gyakran tapasztalható, hogy az egyetemről érkező diákok, akik gyakornoki pozícióban helyezkednek el, bizonyos információkat vagy módszereket nem a legjobban sajátítottak el. Az AI4DEV képzés keretein belül különös figyelmet fordítunk erre a jelenségre. Nem úgy közelítjük meg a helyzetet, hogy a diákot kritizáljuk amiatt, hogy eddig nem helyesen végezte a feladatait, hanem inkább adottságként fogadjuk el a tudását. A folyamat visszafejtésével próbáljuk kideríteni, hol csúszott félre a dolog, majd onnan egy új irányba terelni a fejlődést. Fontos számunkra, hogy elismerjük, már van valamilyen tudása, és most egy alternatív módszert mutatunk be, amely véleményünk szerint hatékonyabb lehet. A fejlesztők általában nyitottak és kíváncsiak, így ha sikerül meggyőzni őket az új megközelítés előnyeiről, és az valóban jobb eredményekhez vezet, akkor máris elértük a célunkat.
Ahhoz, hogy a képzés igazán hatékony legyen, elengedhetetlen, hogy oktatóink hiteles és tapasztalt szakemberek legyenek. Azok a kollégák, akik a programokat vezetik, nemcsak a fejlesztés terén, hanem az oktatásban is jelentős gyakorlattal rendelkeznek. Ennek köszönhetően képesek a saját tapasztalataikból merítve válaszolni a felmerülő kérdésekre, vagy ha valami nem világos számukra, nyíltan elismerik azt, és vállalják, hogy utánanéznek. Ez a fajta nyitottság és átláthatóság segít abban, hogy megszabaduljunk a berögzült, nem működő szokásoktól.
- Milyen eredményeket tudnak felmutatni a képzés után az abban részt vevők?
A juniorok esetében a legkiemelkedőbb eredmény, hogy már sokkal önállóbban tudnak dolgozni, és a fejlődésük üteme is jelentősen megnőtt. Ezzel szemben a szenioroknál a munka gyorsaságának növekedése nem annyira szembetűnő; itt csupán 10-20 százalékos javulás tapasztalható a maximum. Ez is figyelemre méltó eredmény, de náluk talán még fontosabb, hogy hatékonyabban tudják szervezni a csapaton belüli feladatokat. Ennek köszönhetően elkerülhetők az elmaradt részfeladatok és a kapkodva összeállított programok, ami által a szakemberek is motiváltabban látják el a feladataikat. Ezen kívül kulcsfontosságú, hogy a tanultakat a vállalat egyéb részlegeinél is alkalmazzák, hiszen így a tudás terjedése hozzájárul a szervezeti hatékonyság növeléséhez. A vállalat egy új módszertant kap, amely segíti a fejlesztési folyamatok hatékonyságának javítását.
Milyen irányban kívánják bővíteni a képzési programot a jövőben?
Jelenleg a kódoláshoz szorosan kapcsolódó területeken használjuk és tanítjuk a GenAI alkalmazását, de már azon töprengünk, miként lehetne ezt kiterjeszteni az üzleti elemzők munkájára. Ez egy összetettebb kihívás, és jelenleg azon munkálkodunk, hogy a RAG (Retrieval-Augmented Generation) hogyan integrálható ebbe a folyamatba. Ezen kívül az automatikus tesztelések során is szeretnénk maximálisan kihasználni a mesterséges intelligenciát, például az önjavító rendszerek implementálásával. Végül, de nem utolsósorban, kiemelten fontosnak tartjuk, hogy a menedzserek és üzleti döntéshozók számára képzéseket indítsunk a mesterséges intelligencia nyújtotta lehetőségekről és azok gyakorlati alkalmazásáról.