Így használjuk az AI-t a fejlesztésben
A fejlesztői agent-ek meghatározott feladatokon dolgoznak. A kiadás előtt automatizált ellenőrzések, egy másik modell és egy fejlesztő vizsgálja meg a módosításokat.
A megvalósításhoz, elemzéshez, dokumentáláshoz és tesztíráshoz fejlesztői agent-eket használunk. Az architektúráról és a termék kompromisszumairól a fejlesztők döntenek, és ők hagyják jóvá a kiadásokat.
Az agent-ek a projekt feladatlistája és a kódtárban rögzített utasítások alapján dolgoznak. Minden módosítást automatizált ellenőrzéseknek, külön modellellenőrzésnek és fejlesztői ellenőrzésnek vetünk alá. Jóváhagyás előtt tesztkörnyezetben is teszteljük az elvégzett módosításokat.
Így kerül egy feladat élesbe
- A feladatlistában minden feladat tartalmazza az elvárt működést, a szükséges háttérinformációkat, a korlátokat és az elfogadási feltételeket. Az ütemezetten futó agent-ek átnézik a listát, és kiválasztják az elvégezhető feladatokat.
- Az agent elolvassa a feladathoz kapcsolódó utasításokat és a kapcsolódó kódot, majd saját branch-en elkészíti a módosításokat. Mielőtt felülvizsgálatra küldi, lefuttatja a projektben előírt ellenőrzéseket.
- Az új működést példák és automatizált tesztek írják le. Igazolt hibánál az agent reprodukálja a problémát, és ahol megoldható, a javítás előtt egy hibát jelző regressziós tesztet ír.
- Egy második modell hibás feltételezéseket, szélső eseteket, biztonsági kockázatokat és hiányzó teszteket keres a módosításban. Megállapításait a fejlesztő is megkapja az ellenőrzéshez.
- Az automatizált kiadási folyamat elkészíti az ág futtatható verzióját, és elkülönített teszt-, vagy előnézeti környezetbe telepíti. A módosítás így még az összevonás előtt kipróbálható.
- Egy fejlesztő átnézi a kódváltozásokat, a teszteket és a modell megállapításait, majd ellenőrzi a futó szoftvert. Módosítást kérhet, elutasíthatja a megoldást, vagy jóváhagyhatja azt. Az agent-ek nem hagyhatják jóvá a saját munkájukat.
- A fejlesztő jóváhagyása után az automatizált folyamat elkészíti a kiadást, és a projektben egyeztetett eljárás szerint élesíti.
Az utasításokat a kóddal együtt tároljuk
A kódtárban verziókezeljük az agent-ek utasításait. Ezek leírják az architektúrát, az elnevezési és importálási szabályokat, a komponensmintákat, az akadálymentességi és adatkezelési elvárásokat, valamint az ellenőrző parancsokat. Minden feladathoz elfogadási feltételek tartoznak.
Az agent-eknek újra kell használniuk a megfelelő meglévő kódot, meg kell indokolniuk a magyarázatot igénylő döntéseket, és kerülniük kell a felesleges függőségeket. Ha egy feladat ellentmond az architektúrának, vagy termék-, biztonsági, vagy adatvédelmi döntést igényel, az agent ezt jelzi egy fejlesztőnek.
Az ellenőrzés során ezekhez az utasításokhoz és a feladathoz egyeztetett működéshez mérjük a módosítást.
Mit vizsgálnak az egyes ellenőrzések
Az automatizált ellenőrzések a típusokat, a teszteket, a buildet és a kódtár szabályainak betartását vizsgálják. Egy második modell hibákat és hiányzó eseteket keres a kódban. Ezekkel már azelőtt találhatunk problémákat, hogy a fejlesztő átnézné a módosítást.
A fejlesztő dönti el, hogy a megvalósítás illik-e az architektúrába, és a tesztek lefedik-e az elvárt működést. Ő mérlegeli a termék kompromisszumait és a biztonsági döntéseket, majd jóváhagyja a kiadást.
Hol dolgozhatnak az agent-ek
Fejlesztés
Az agent-ek átvizsgálhatják a kódtárat, saját ágon módosíthatják a meghatározott részeket, és futtathatják a projekt ellenőrzéseit. Ezek a változtatások nem érintik a felhasználókat.
Teszt és előnézet
A hibajelentés naplókkal, a környezet adataival és a reprodukálás lépéseivel kerülhet a feladatlistába. Az agent megvizsgálhatja és reprodukálhatja a problémát, regressziós tesztet írhat, és elkészítheti a javítást. Ezután lefuttatja az ellenőrzéseket, és külön előnézeti környezetbe telepíti a módosítást.
Éles rendszer
Az agent-ek nem módosíthatják közvetlenül az éles rendszert, és nem adhatják ki a saját munkájukat. A kiadási folyamat csak ellenőrzött összevonás és kifejezett fejlesztői jóváhagyás után telepítheti a tesztelt szoftvert.
A tesztek az elvárt működést írják le
A megvalósítás előtt forgatókönyvekben írjuk le, mit kell tudnia elvégezni a felhasználónak, vagy a rendszernek. Ezekből elfogadási feltételeket és ahol hasznos, automatizált teszteket készítünk.
Az egységtesztek az üzleti szabályokat ellenőrzik. Az integrációs tesztek a rendszerek kapcsolatait vizsgálják. A végpontok közötti tesztek a kritikus felhasználói folyamatokat ellenőrzik. Ahol megoldható, minden igazolt hibához regressziós tesztet írunk, hogy az ellenőrzés jelezze, ha a probléma visszatér.
A fejlesztők ezekkel a tesztekkel értékelik a módosítást. A későbbi közreműködők is ellenőrizhetik velük, hogy a változtatásaik után megmaradt-e a korábbi működés.
A módosítások kiadása
A módosításokat ellenőrizhető méretűre bontjuk, és mindegyiknél ugyanazt a build-, teszt- és előnézeti folyamatot futtatjuk. Az összevonásért és a kiadásért a fejlesztők felelnek. Az automatizálás az ismétlődő ellenőrzéseket és a jóváhagyás utáni telepítéseket végzi.