Weboldal keresés

Az AI által generált kód 4 legnagyobb kihívása, amelyet a Gartner kihagyott legutóbbi jelentéséből


A Gartner szerint a mesterséges intelligencia a fejlesztők 80%-ának fejlesztését igényli, de ez nem a teljes történet. A hibás mesterséges intelligencia-kódtól a végtelen változatokig, íme, amit a jelentés nem említett.

A Gartner a technológiai iparág egyik legelismertebb elemzői csoportja. Üzleti tevékenysége egyedi tanácsadási szolgáltatások, konferenciák, valamint többügyfeles iparági elemzési jelentések készítése.

A Gartner ügyfelének lenni nem olcsó, a becslések évi 30 000 dollártól indulnak ülésenként. A Gartner (és, hogy őszinte legyek, a legtöbb elemzői csoport) úgy kelt érdeklődést, hogy sajtóközleményeket ad ki, amelyek összefoglalják a kutatási jelentéseiből származó következtetéseket, abban a reményben, hogy azokat a ZDNET-hez hasonló csatornák is megkeresik.

Mivel ezek a sajtóközlemények gyakran tartalmaznak olyan rögöket, amelyek megmagyarázzák az iparági trendeket, gyakran elmélyülünk ezekre, hogy megértsük az iparág helyzetét.

A Gartner visszatért egy új sajtóközlettel. Ennek a következő címe van: "A Gartner szerint a generatív mesterségesintelligencia 2027-ig a mérnöki munkaerő 80%-át fogja igényelni."

A sajtóközlemény tovább tárgyalja a Gartner előrejelzéseit a mesterséges intelligencia szoftverfejlesztésre gyakorolt rövid, közép- és hosszú távú hatásairól.

Ebben a cikkben megvizsgálom a Gartner következtetéseit, valamint a Gartner által a kiadásában bemutatott következtetések többszörös kirívó kihagyásának elemzését. Megkerestem a Gartnert, hogy lehetőséget kérjek a teljes jelentés megvizsgálására, amelyet a cég volt szíves átadni nekem.

A teljes jelentés nagyon röviden megemlít néhányat, amit én hiányosságnak tartok. De mivel sokkal többen döntenek majd a sajtóközlemény alapján, mint az ötszámjegyű tűzfal mögötti teljes jelentés, érdemes megvitatni a Gartner néhány érvényes észrevételét és a kimaradt nagyon fontos dolgokat is.

Beszéljünk erről a címről

A Gartner fő híre az, hogy a mesterséges intelligencia a következő két éven belül a mérnöki munkaerő 80%-ának készségeit továbbfejleszti. Később, a kiadásban a Gartner tisztázza, hogy ez inkább a szoftverfejlesztést jelentette, mint minden mérnöki tudományágat.

Ebből az következik, hogy a mesterséges intelligencia olyan nagymértékben megzavarja a szoftverfejlesztést, hogy ha nem fejleszti tovább a készségeket, akkor gyakorlatilag becsapódik. Ez igaz. De ez nem hír.

A továbbképzés, az új dolgok elsajátítása és a technológiával való lépéstartás minden szoftvermérnök munkájának kulcsfontosságú eleme. Ebben a cikkben olyan kifejezéseket fogok használni, mint a programozó, kódoló, szoftvermérnök és fejlesztő. Vannak apró különbségek, de a megvitatásunk szempontjából mindegyik alkalmazható.

A lényeg az, hogy ha kódoló vagy, akkor folyamatosan tanulnod kell.

Nincs abban semmi meglepő, ha szoftvermérnökként kell továbbfejleszteni a készségeket. A programozóknak mindig tovább kell fejlődniük. Minden új operációs rendszer kiadás, minden új nyelv, minden új API, minden kiadott új hardver továbbképzést igényel.

A mesterséges intelligencia a mérnököktől is megköveteli majd tudásuk bővítését, de ez nem jelent nagy változást a szoftvermérnöki vagy fejlesztői karrier fenntartásában.

Szóval igen, bár a cím hiteles, csak nem annyira a kódolói karrier következménye, mint amilyennek látszik.

Az AI rövid, közép- és hosszú távú hatásai

A Gartner így írja le az AI hatásának szakaszait.

  • Rövid távon: "Az AI-eszközök szerény termelékenységnövekedést eredményeznek a meglévő fejlesztői munkaminták és feladatok bővítésével. Az AI termelékenységi előnyei a legjelentősebbek a fejlett mérnöki gyakorlattal rendelkező szervezetek vezető fejlesztői számára."
  • Középtávon: "Az AI-ügynökök átalakítják a fejlesztői munkamintákat azáltal, hogy lehetővé teszik a fejlesztők számára, hogy több feladatot teljesen automatizáljanak és tehermentesítsenek. Ez jelzi majd az AI-natív szoftverfejlesztés kialakulását, amikor a legtöbb kódot mesterséges intelligencia generálja majd nem pedig emberi alkotás."
  • Hosszú távon: "Bár a mesterséges intelligencia hatékonyabbá teszi a tervezést, a szervezeteknek még több képzett szoftvermérnökre lesz szükségük ahhoz, hogy kielégítsék a mesterséges intelligencia által támogatott szoftverek iránti gyorsan növekvő keresletet."

Nem értek egyet ezzel az értékeléssel, bár ezt a három eredményt nem igazán lehet időszakokba sorolni. Az AI-eszközök most, hogy rendelkezésünkre állnak, képesek lesznek rövid és hosszú távon is bővíteni a kódolást.

A szimbolikus hibakeresők például már vagy 40 éve léteznek, és még mindig naponta használjuk őket. Jobbak lettek, több dolgot csinálnak, és tükrözik a munkakörnyezetük árnyalatait, de továbbra is használatban vannak. Ez lesz a helyzet az AI által támogatott programozással.

Philip Walsh, a Gartner elemzője szerint „A mesterséges intelligencia által támogatott szoftverek kiépítéséhez egy újfajta szoftveres szakemberre, a mesterséges intelligencia mérnökére lesz szükség. "A mesterséges intelligencia mérnöke a szoftvermérnöki, az adattudományi és a mesterséges intelligencia/gépi tanulás (ML) készségeinek egyedülálló kombinációjával rendelkezik, amelyek keresettek."

Ne feledje, hogy van különbség az AI kódolásra gyakorolt hatását illetően. Néha a kódolók mesterséges intelligenciát használnak a programozáshoz (hogy több kód működjön). Néha a fejlesztők mesterséges intelligencia in programozást alkalmaznak (hogy okosabbá tegyék a kódot és a megoldást, amelyen dolgoznak).

A Gartner tavaly év végén végzett egy felmérést, amelyben 300 szoftvermérnöki vezetőt kérdeztek meg a munkakörökről. A válaszadók 56%-a szerint a mesterséges intelligencia és a gépi tanulás mérnökei a legkeresettebb szerepek, és az AI és a gépi tanulás alkalmazásokban való alkalmazása olyan terület volt, ahol csapataiknak készségeik fejlesztésére volt szükség.

Ennek teljesen értelme van. A mesterséges intelligencia és a gépi tanulási funkciók óriási értéket adhatnak az alkalmazásokhoz szinte bármilyen területen.

A 4 kirívó kihagyás

A Gartner Walsh szerint: "A mesterséges intelligencia natív korszakában a szoftvermérnökök az "MI-first" gondolkodásmódot alkalmazzák, ahol elsősorban arra összpontosítanak, hogy az AI-ügynököket a legrelevánsabb kontextus és korlátok felé tereljék egy adott feladathoz.

Az „AI-first” programozás alapfeltétele, hogy a fejlesztők hozzárendeléseket adnak át egy MI-nek, és az AI visszaadja a projekt kódját. Ez közvetlenül hasonló ahhoz, hogy a programozási menedzser feladatokat ad át a csapat fejlesztőinek, és ezek a fejlesztők visszaadják a projekt kódját.

A teljes jelentés megemlítette, hogy a vezető fejlesztők feladata lehet minőség-ellenőrző kód az olyan szervezetekben, amelyek nem rendelkeznek automatizált kódellenőrző eszközökkel. De sokkal több van a problémában, mint amennyiről szó volt, még a teljes jelentésben is. Íme a Gartner sajtóközleményének négy kihagyása.

  1. Mindig szükség van módosításokra, hogy a kód megfeleljen a specifikációknak
  2. Az összes szoftverhez szükséges alapos tesztelés és minőségellenőrzés
  3. Frissítések, karbantartás, hibajavítások és teljesítményhangolás szükségessége az életciklus során
  4. Sokkal nehezebb fenntartani a kódot, amelyet nem írtál

Egyszerűen nem lehet megvitatni a szoftverfejlesztés jövőjét anélkül, hogy a mesterség e négy aspektusára jelentős figyelmet fordítanánk.

1. A kód módosítása, hogy megfeleljen a specifikációnak

A forgatókönyv egyszerű. Bead egy felszólítást egy mesterséges intelligencia számára, vagy egy útmutatást egy programozói csapatnak. Telik az idő (kevesebb az AI, több a csapat), és visszakapsz egy darab állítólag működő kódot.

Akkor próbáld ki. Nem egészen helyes. Soha nem lesz teljesen rendben az első nekifutásra. Még akkor is, ha saját kódolást végez, a kód megírása utáni első futtatásban hibák lesznek. Ez az univerzum egyik természeti törvénye.

Már most elmondhatja a ChatGPT-nek, hogy amit adott, az nem működik, vagy megadhatja a hibaüzenetet, és egy teljesen új kódblokkot generál. Az AI-knak azonban sokkal nehezebb dolguk fokozatosan felülvizsgálni munkájukat, hogy ráhangolódjanak a szükséges dolgokra.

Ez vonatkozik arra is, hogy az AI szöveg-szöveg vagy akár szöveg-kép. Próbáld meg rávenni a Midjourney-t, hogy csak a kívánt változtatásokat hajtsa végre a képen. Megadhat kis területeket, amelyeken dolgozni kell, de akkor a Midjourney azt fogja tenni, amit a Midjourney akar.

Ahhoz, hogy olyan projektet tudjon megvalósítani, amelyben a fejlesztők "kiadják a hozzárendeléseket egy mesterséges intelligencia számára, és az AI visszaadja a projekt kódját", az AI-nak képesnek kell lennie a kritikák fogadására és apró, célzott változtatásokra.

Jelenleg minden visszaadott változat egy teljes kockadobás.

2. Tesztelés és minőségellenőrzés

Lehetőség van arra, hogy egy AI tesztelje egy másik AI kimenetét. Ezt meglehetősen jó eredménnyel tettem, különösen a reguláris kifejezések felépítésének és teljesítményének ellenőrzésekor.

De tekintettel arra, hogy a mesterséges intelligencia mennyire hallucinál, és milyen gyakran ír le olyan kódot, amely egyszerűen nem működik, tesztelési protokollokat és csomagokat kell kifejleszteni az AI programozási folyamat részeként.

Mindehhez valószínűleg az embereknek kell elvégezniük a munka nagy részét. Addig nem hagyatkozhatunk a mesterséges intelligencia kódolására, amíg nem biztosak vagyunk abban, hogy a kód jó. Minél nagyobb a projekt, minél összetettebb a kód, annál inkább szükségünk lesz emberi programozókra és projektmenedzserekre, akik ezt végigvezetik a folyamaton.

3. Frissítések, karbantartás, hibajavítások, teljesítményhangolás

A szoftver távolról sem statikus. A megjelenés után a hibákat ki kell javítani, frissítéseket kell végrehajtani, a teljesítményt kell hangolni stb. Ezek egyike sem olyan dolog, amit egy mesterséges intelligencia meg tud tenni egy teljes terméken.

Ez nem azt jelenti, hogy egy mesterséges intelligencia nem tud segíteni. Biztosan átadható neki például egy függvény, és a jobb teljesítmény érdekében át kell írnia (megjegyzendő, hogy nem azt mondtam, hogy „frissítés”).

Természetesen most egy teljesen új funkcióval rendelkezik, amelyet funkcionális tesztelésnek kell alávetni. Ha valami elromlott az átírásban, nem lehetett csak arra a néhány sorra nézni, amelyet módosítottak. A hibát a teljes kódblokkban kell megtalálnia.

4. A nem Ön által írt kód karbantartása

Az általad írt kód karbantartása munka. A nem általad írt kód karbantartása rengeteg munka. Amikor megírja a kódot (akár egyénileg, akár csapatban), bizonyos ismeretekkel rendelkezik arról, hogy a kód miért épült fel úgy, ahogy volt, hogyan működik együtt az összes elem, és miért születtek bizonyos döntések.

Ha olyan kódot tart fenn, amelyet valaki más írt (ember vagy mesterséges intelligencia), a kód valami teljesen új. Először meg kell dekonstruálnia a kód teljes architektúráját. Ha jól csinálod, gondosan dokumentálsz mindent, amit felfedezel. Ez a dekonstrukciós folyamat nagyon időigényes - még mielőtt módosítana vagy hozzáadna akár egy sor új kódot.

Van némi tapasztalatom ezzel kapcsolatban. 2015-ben 10 nyílt forráskódú WordPress bővítményt fogadtam el. Ez azt jelentette, hogy én voltam a felelős a kód karbantartásáért, a hibák és a biztonsági hibák kijavításáért, és ezek közül néhány esetben kereskedelmileg funkcionálisabb termékekké alakítottam őket.

Nemcsak azt kellett dekonstruálnom, hogy az eredeti programozók hogyan írták meg a kódjukat, hanem arra is rájöttem, hogy - néhány esetben - utálom a programozási stílusukat. A programozók különös figyelmet fordíthatnak a programozási stílusokra, a kód megírására és felépítésére.

A legtöbb esetben a kód különböző stílusokban írva fut le, de minden programozó agya másként működik, és a kódírás bizonyos módjaihoz vonzódik. Én különösen ragaszkodó vagyok a kódstílushoz. Ha úgy van megírva, ahogy én szeretem, akkor hihetetlenül produktív vagyok. De ha a kódolási stílus idegesít, csökken a termelékenységem, és ideges leszek.

Megpróbáltam rávenni a ChatGPT-t, hogy az egyik bosszantóbb kódolási stílusból konvertáljon egy számomra tetszővé, különösen a PHP és a HTML keveréke esetén. A ChatGPT nem sikerült. Idővel lehetséges, hogy egy mesterséges intelligencia gondosan betanítható egy preferált kódolási stílusra, és frissítse az elfogadott kódot a fejlesztő vagy a fejlesztőcsapat által kedvelt stílusra, de még nem tartunk ott.

A mesterséges intelligencia által előállított kód karbantartása nem csak nehezebb lesz, mint az eredeti kód megírása, de ütközhet a helyes stílusgyakorlatokkal is, és még bosszantóbb lesz a rajta való munka.

Az AI felváltja a fejlesztőket?

A Gartner által közzétett kutatási jelentés a következő címet viseli: "A mesterséges intelligencia nem helyettesíti a szoftvermérnököket (és valójában többre van szükség). Ez az a feltevés, amellyel teljes szívemből egyetértek - legalábbis a következő évtizedben.

Amint azt már bemutattam, a programozás segítésére vagy a programok képességesebbé tételére szolgáló mesterséges intelligencia használatán túlmenően még sok a tennivaló a programozási projektek alapvető logisztikájával kapcsolatban.

Kétségtelen, hogy az AI segíthet a programozásban. Becslésem szerint a mesterséges intelligencia legalább egy hónapot megspórolt a programozási időből az elmúlt évben, lehetővé téve olyan projektek befejezését, amelyekbe valószínűleg nem vállalkoztam volna korlátozott szabadidőmben.

De a kód, amelyet az AI segített megírni, megtörik. Nagyon sokat. És azon veszem észre magam, hogy annyi időt töltök azzal, hogy kijavítsam azokat a szélső eseteket, amelyekre a mesterséges intelligencia nem számított, megfordítom a mesterséges intelligencia kódolási architektúráját, majd visszahelyezem a kódot a gyártásba. Ez minden bizonnyal nagyon távol áll a kódolási munka átruházásától.

A teljes Gartner-jelentés tanulságos és átgondolt. De a jelentésnek több megbeszélést is használhatna az általam említett területekről. Arra biztatom az elemzőket, hogy kiegészítsék jelentésüket azzal, hogy nagyobb hangsúlyt helyezzenek a felülvizsgálatra, a tesztelésre és a folyamatos karbantartásra. Ne feledje, hogy nem csak a kód generál, hanem a szoftverprojekt teljes életciklusa, miután az első pontosvesszőkészletet* hozzáadta a kódsorok végéhez.

mit gondolsz? A mesterséges intelligencia leváltja a programozókat, vagy nagyobb igényt teremt a programozási készségekre. Folyamatosan fejlődsz már? Gondolod, hogy a mesterséges intelligencia megköveteli, hogy másfajta tehetségeket fejlessz? Gondolod, hogy a mesterséges intelligencia egy nap képes lesz elvégezni a programozási projektekben mindig szükséges hibajavítást és karbantartást?

*Megjegyzés: A Python nem igényel pontosvesszőt, de a Java, a JavaScript, a PHP és az összes C-alapú nyelv igen.

Kapcsolódó cikkek