Hétfői IT Dühöngő – Vibe-kódolás

Múlt héten szabadságon voltam, de néha mazoizmusból olvasgattam a LinkedIn -t. Szembejött velem egy írás, amin borzalmasan felszívtam magam. Mielőtt bármit is írok, olvasd el kérlek! A szerzőt direkt nem közlöm, mert nem az a lényeg, hogy ki írta, hanem az, hogy mit írt.

Az illető egyébként a kommentem után letiltott. Legalábbis ez lehet az egyetlen oka, hogy már a profilját sem tudom megnézni az oldalon. De ha valóban ez történt, akkor szerintem sok más embert is letiltott, mert szinte csak az övével ellentétes véleményű kommentet láttam, amíg követtem és amíg nem tiltott le.


Alapfelállás

A főbb indokok, amik nehezítették a szoftverfejlesztést, amire szüksége volt:

  • Az író egy cégvezető, aki megelégelte, azt, ahogy a szoftverfejlesztés zajlik
  • Hogy le kell írnia, hogy mit szeretne megvalósítani
  • Hogy úgy kell leírnia, hogy a fejlesztő is ugyanazt értse alatta amit ő
  • Hogy időre van szükség, mire a fejlesztő elkészíti amit kért
  • Hogy ha nem egyértelműen írta le, akkor nem azt csinálta meg a fejlesztő amit ő kért, és akkor újabb kört kell futni hibajavításként
  • És hogy mire a fejlesztő elkészítette amit kért tőle, addigra már megváltozott az elképzelése és mást szeretne.
  • Hogy utána neki tesztelnie kell, és ha a tesztelés hibát tár fel, akkor azt a fejlesztőnek javítania kell
  • Majd utána azt neki megint tesztelnie..

Szóval ezen nehézségek miatt úgy döntött, hogy nulla IT fejlesztői tudással a háta mögött, inkább az „AI” segítségét kéri, és saját maga kezd el fejleszteni anélkül, hogy alapvető szakmai ismeretekkel rendelkezne.

Mi lett az eredmény?

  • Nem kellett senkinek leírnia semmit, ami eszébe jutott, azt beírta az „AI-ba” és az megcsinálta
  • Addig írta be amíg jó nem lett, nem kellett másra várnia
  • Nem kellett fizetnie senkinek a feladat elvégzéséért.
  • Akármennyi módosítást kért, a költségek fixek maradtak.

A legfőbb tanulság az egészből szerinte az, hogy így töredék idő alatt kapta meg a végeredményt, mintha egy fejlesztővel csináltatta volna meg.

WIN-WIN.

Vagy mégsem?


Mit kommenteltem rá?

Szerencsére kimentettem, mert valahogy éreztem, hogy reakció helyett inkább tiltani fog, pedig eskü kedves volta a kommentem! De döntsd el Te, íme itt van alul. Sajnos mire rájöttem, hogy a kommentem utolsó két sorát nem mentettem ki, már tiltott, de a lényeg így is látszik.


Shadow-IT

Egy kifejezés amit meg szeretnék magyarázni mielőtt belekezdek, hogy miért húzott fel ennyire ez a bejegyzés.

A Shadow-IT (vagy magyarul árnyék-IT) kifejezés azt jelenti, mikor egy cégben van az IT csapat (vagy kissebb cégeknél csak 1-2 ember) mellett egy nem látható, félig legális – félig illegális „IT-csapat” akik tevékenységéről, működéséről, projektjeiről az IT vagy semmit nem tud, vagy csak nagyon keveset. Ők a cégnél bevett IT szabályokat, szabályzatokat megkerülve végeznek IT feladatokat.

Ez több szempontból is nagyon veszélyes:

  • Az ilyen megoldások többnyire olyan szoftverekkel és módszerekkel készülnek amit senki nem hagyott jóvá
  • Sok esetben illegális, vagy magán felhasználásra ugyan ingyenes, de céges környezetben licensz köteles szoftverekkel vannak létrehozva/kezelve, tehát kapásból bűncselekményt követnek el közben.. (szoftver lopás)
  • Az IT biztonsági szabályokat a shadow IT nem igazán szokta követni
  • A biztonsági mentéssel se nagyon foglalkozik a shadow IT
  • A GDPR előírásokkal meg aztán végképp nem foglalkozik
  • Viszont ha baj van, akkor mégis az IT -hoz fut be a segítség kérés! De az IT nem tud róla, tehát ha „baj van”, akkor segíteni sem tud benne, vagy ha igen, akkor tízszer annyi erőforrás befektetési árán, mintha tőle kérték volna már eleve a megoldást. Hiszen nem csak a problémát kell megérteni, feltérképeznie és elhárítania, hanem akkor kell megismernie egy teljesen ismereten rendszert!

És így lesz a „gyors, olcsó és egyszerű” shadow-IT megoldásból nagyon drága és nagyon veszélyes..


Vibe-kódolás

Még ezt is gyorsan megmagyarázom, hogy mit jelent, mert erre is szükség van a probléma megértéséhez. Nem tankönyvi definíciót írok le hanem a saját szavaimmal a lényeget.

Röviden: A vibe-kódolás az, mikor valaki IT fejlesztői tudás nélkül kezd bele bármilyen jellegű szoftver fejlesztésbe.

Részletesebben: Megkérdez egy „AI” modellt, hogy mi kell hozzá, hogy az igényeinek megfelelő szoftvert el tudja készíteni. Az „AI” pedig lépésről lépésre végigvezeti ezen:

  • Webes fejlesztés esetén a domain és a tárhely megvásárlása, beállítása
  • Fejlesztő környezet felépítése (telepítése)
  • A szoftver elkészítése
  • Hibajavítás
  • Éles szoftver indítás

Mikor valaki autodidakta módon tanulja ki a fejlesztői szakmát, akkor is hasonló lépéseken megy keresztül. A különbség viszont az, hogy olyankor nem csak azzal a céllal tanul, hogy egy adott feladatot elkészítsen, hanem akkor az a célja, hogy megtanuljon JÓL szoftvert fejleszteni. És e kettő között hatalmas nagy különbség van!

Nagyon könnyen és gyorsan lehet úgy írni egy „kódot”, hogy valaki diktálja, DE ettől még nem fogom megérteni, hogy mi miért történik úgy ahogy. Igazából mivel nem értek hozzá, ezért nem én irányítok, hanem csak egy „szolga” vagyok, aki gondolkodás nélkül leírja és végrehajtja amit az „AI” mond. Ennek pedig beláthatatlan következményei lehetnek!

Persze látszólag jól haladok, mert látványosan „fejlesztek” úgy, hogy nem értek hozzá, és nincs szükség másra, csak saját magamra, és az „AI” -ra. És egy „AI” havi előfizetési díjja sokkal alacsonyabb, mint egy profi fejlesztőé..


A vibe-kódolás árnyoldala

A posztra való reakcióm (és sok más szakember reakciója is) arra próbálta felhívni a figyelmet, hogy persze ez nagyon jól hangzik, de hatalmas nagy veszélyeket is rejt magában! Nagyon szuper, hogy nem kell fejlesztő, nem kell kommunikáció, nem kell tesztelés, nem kell fizetni, csak egy „AI” kell és mindent meg tud magának valósítani a cégvezető. Látszólag tényleg rengeteg lépést, időt és pénzt lehet így megspórolni. A baj ott kezdődik, hogy ezzel hatalmas nagy jogi és IT biztonsági problémákat is generál egyszerre, pedig az lenne a cél, hogy egy cégvezető ne aláássa, hanem előre vigye a saját cégét.

  • A fejlesztői környezet amit feltelepít, arról semmit sem tud. Milyen oldalról tölti le, ahonnan letölti az biztonságos vagy tele van vírussal vagy bármi más kártékony kóddal? Legális-e a fejlesztői környezet erre a típusú felhasználásra, vagy meg kellene vásárolni? Kell-e a futtatásához rendszergazdai jog (ha igen, és egy cégvezető gépén admin joggal fut egy fejlesztőkörnyezet, akkor hatalmas nagy baj van!”
  • Maga a szoftver fejlesztése kellően dokumentálva van? Ha majd később módosítani kell vagy hibát keresni, akkor lesz hova nyúlni? Ez a dokumentáció rendelkezésre áll offline is, ha épp az adott „AI”megoldás nem elérhető, vagy esetleg már szimplán nem létezik?
  • Az elkészült szoftver fejlesztése során az IT biztonsági szempontok figyelembe ettek véve? Jelszavak hash-elt tárolása, adatvédelem, adatbiztonség, adattitkosítás, jogosultság kezelés, stb.?
  • A fejlesztés során a GDPR megfelelés figyelembe lett véve? Ha egy ügyfél a GDPR-ra hivatkozva kéri az adatai törlését a szoftverből, akkor az megoldható hiba nélkül?
  • A fejlesztés elkészültekor megfelelően körültekintő tesztelés lett végezve, hogy a működés során ne keletkezzen olyan hiba, ami komoly erkölcsi és/vagy gazdasági kárt tud okozni a cégnek vagy az ügyfélnek/megrendelőnek?
  • Ha az éles működés során kiderül egy hiba, akkor lesz olyan aki megfelelő tudással tud hibakeresés végezni és elhárítani a hibát a lehető legrövidebb időn belül, akkor is az az eredeti készítő mondjuk két hétig szabadságon van, vagy már nincs is a cégnél? (ez a kérdés szorosan kapcsolódik a dokumentáltsághoz..)
  • Az előállított kód igazából kinek a tulajdona, kinek a szellemi terméket? Más a jogi megítélés, ha egy ingyenes, ha egy személyes vagy ha egy üzleti „AI” licensszel lett készítve?

Ráadásul ezt még fokozni lehet azzal, ha „ingyenes”, vagy személyes használatra szánt „AI” -al zajlik ez a folyamat, mert akkor:

  • nincs rá garancia, hogy a legnagyobb tudású AI modellel dolgozok
  • nincs rá garancia, hogy az AI modell készítője az általam leírt információkat nem használja fel más célra
  • nincs rá garancia, hogy mindig minden használatnál ugyan olyan tudású „AI” modell dolgozik nekem, mert ha elfogyott a keretem, akkor csak egy „butább” modell dolgozik nekem, és a modellek munkája között akár komoly összeférhetetlenség is lehet.

Nem, egy szoftverfejlesztés során NEM az az „időveszteség” a legnagyobb probléma, ami elmegy arra, hogy a megrendelő és a fejlesztő kommunikáljon egymással! És az az idő sem, amit a tesztelésre kell fordítani! És az sem amit az architektúre kiválasztására! Ezek az idők nem veszteségek! Ezekre szükség van ahhoz, hogy a végeredmény megbízható, megfelelően dokumentált, és biztonságos legyen!

Az igazi vesztség az, amit a rosszul, hibásan vagy nem kell körültekintéssel fejlesztett és bevezetett szoftver működése tud okozni a cégnek!

De talán a legeslegnagyobb baj az, ha egy cégvezető azt reklámozza nyíltan és nagy mellénnyel, hogy ki kell dobni a fejlesztőket, hiszen sokkal gyorsabban születik megoldás nélkülük, csak a vibe-kódolás segítségével!


Hogyan lehetne ezt jól csinálni?

Persze, jó lenne, de egy fejlesztés során nem lehet megspórolni a fejlesztéshez értő szakember tudását. Nem lehet megspórolni a fejlesztés megkezdéséhez szükséges dokumentálást, ahol átgondoljuk és leírjuk, hogy mit szeretnénk a fejlesztéssel megvalósítani! Nem lehet megspórolni a fejlesztés során a dokumentálásra szánt időt sem, mint ahogy a tesztelési és a hibajavítási időt sem!

Az „AI” nagyon sokat tud segíteni abban, hogy a fejlesztés a „hagyományos” megoldásnál sokkal-sokkal gyorsabban történjen meg. De csak akkor, ha fejlesztő használja az „AI” -t, és nem spórolja el a feladat megfelelő előkészítését, tesztelését és dokumentálását sem.

És mivel a fejlesztő gyorsabban fog végezni a feladattal, ezért a költségeink is alacsonyabbak lesznek úgy, hogy közben az nem megy a minőség és a biztonság rovására!

Tudom, hogy sok esetben a nagyon elterjedt (agilis) szoftverfejlesztési módszertan a user story, backlog, sprint tervezés, sprint, daily stand-up, retro, stb. lépéseivel túl sok embert (szereplő) igényel, és egy túlbonyolított fejlesztést eredményez. Ez sok esetben nagyon megnöveli a fejlesztés idejét és költségét is. Agilisnek nevezzük, de igazából mégsem az. A szememben egy rossz, túlbonyolított fejlesztési módszer.

Mikor ERP szoftver fejlesztettünk (szuper eredménnyel!), akkor mi egy olyan saját módszert követtünk, ami ezt a sorozatot jelentősen leegyszerűsítette. Ezáltal sokkal kevesebb volt az ember igénye, gyorsabb volt, és így hatékonyabb és alacsonyabb költségvetésű is.

Mi volt a módszer?

Semmi extra, csak nem voltak a szerepek ennyire szétválasztva, hogy univerzálisabb tudású emberekkel dolgoztunk. Nem volt külön Business Analyst, Scrum Master, Fejlesztő, Tesztelő, hanem egy adott feladatot egy ember vitt végig. Egyedül az üzleti tesztelés volt teljesen külön kézben, hiszen ha ugyanaz tesztel, mint aki hibát keres, az egy halva született ötlet!

Nem azzal van a baj, ha valaki „AI” -t használ szoftverfejlesztés során, hanem azzal, ha azt hangoztatja, hogy nincs szükség fejlesztői tudásra, hanem sokkal jobb, ha a cégvezető (vagy bárki más a égben) saját maga végzi a fejlesztést, nulla fejlesztői tudással, „AI” segítségével!

Az „AI” nem az ellenségünk! De nem is egy mindenható és mindent-tudó csoda, amit szaktudás nélkül bárki hasznlhat bármire!

Címke , .Könyvjelzőkhöz Közvetlen link.

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük