Cikkek ·
Egy ember, egy termék, három hónap: fejlesztés mesterséges intelligenciával
A KlipTrack egy fejlesztő munkája, AI-segítséggel. Mi gyorsult fel, hol hibázott a gép, mit vezetek róla külön fájlban, és mely döntések maradtak emberiek.
A KlipTrack egy natív Android-alkalmazásból, egy szerverből, egy irodai webes felületből és egy bemutatkozó oldalból áll. Mind a négyet egy ember fejleszti. Az első sor kód július végén készült; augusztus közepén már az iroda telefonjai mérték a munkaidőt. Ez a tempó egy ember számára néhány éve még nem lett volna reális. Most az, mert a fejlesztésben mesterséges intelligencia segít.
Ebben a részben arról írok, hogyan néz ki ez a gyakorlatban: mi gyorsult fel, hol hibázott a gép, és mi az, amit soha nem bízok rá.
Mi gyorsult fel
A legtöbb időt az a munka viszi el, ami nem nehéz, csak sok: egy új mező végigvezetése az adatbázistól a szerveren át a felületig, egy Excel-export formázása, egy újabb űrlap, a tesztek megírása. Ezt az AI gyorsan és jól megcsinálja, ha pontosan megmondom, mit kell.
A szerver repójában a nyilvántartás szerint 264 commit van, 45 különböző napon; az Android-alkalmazásé mellette 76. Az automatikus tesztek száma október elején 1 115 volt. Ennyi teszt egyedül, kézzel írva nem fért volna bele ennyi időbe. Mesterséges intelligenciával belefért, és ez a sebesség egyik feltétele: csak akkor lehet bátran változtatni, ha a tesztek azonnal szólnak, ha valami elromlott.
Hol hibázott
Az AI nem dolgozik hibátlanul, és ezt nem is várom tőle. Azt viszont igen, hogy a hibák ne ismétlődjenek. Ezért a projektben van egy külön fájl, amelyben minden komolyabb hibáját leírjuk: mi történt, mi lett a következménye, és mi szúrta volna ki időben. Ma tizenkilenc bejegyzés van benne. Néhány tanulság belőle, közérthetően:
- Beállítást javasolt ott, ahol mechanizmus kellett. Amikor egy telefont az energiakezelője leállított, az első javaslat az volt, hogy a kollégák állítsák át a telefonjukat. A jó megoldás egy olyan ébresztés volt, ami beavatkozás nélkül is működik. (Erről szól a harmadik rész.)
- Egy hibát javítottnak jelentett, pedig csak az egyik útját javította. Ugyanazt a látogatást kétféle kód zárta le attól függően, hogy egy napot vagy egy hetet nézünk. A napi nézet jó lett, a heti, amit az iroda valójában használ, nem. Azóta van egy teszt, ami kifejezetten több napon át kérdez le.
- Egy teszt jó okból zöld, rossz okból. A teszt átment, de csak azért, mert a tesztadat nem érintette azt az esetet, ami számított. A valós adatokon kiderült a hiba. Azóta a fontos teszteket, ahol lehet, a hibás kódon is lefuttatjuk: ha ott is zöld, a teszt nem ér semmit.
- Kijelentette, hogy valamit nem lehet ellenőrizni, ellenőrzés nélkül. Állította, hogy a gépen nincs Android-fordító, ezért két módosítás ellenőrizetlenül ment ki. Később kiderült, hogy van, és a fordítás 26 másodperc.
Az AI hibái nem abban különböznek egy ember hibáitól, hogy mások. Abban különböznek, hogy magabiztosan hangzanak.
A fájl végén van egy rész arról is, mi ment jól. Ebben az áll, hogy két komoly hibát még élesítés előtt elkaptunk, mert egy kérdésre adott válasz közben a gép újra végigolvasta, amit csinált. Ez a szokás többet ér bármelyik eszköznél.
Amit nem bízok rá
A sebesség csak akkor ér valamit, ha a döntések jók. Ezek nálam maradnak:
- Mit csináljon a termék. Hogy a jóváhagyott korrekció beleszámít-e a fizetendő órákba, vagy csak mellette látszik, az üzleti döntés. A gép mindkettőt meg tudja írni; hogy melyik a helyes, azt a megrendelővel beszélem meg.
- Hozzáférés az éles adatokhoz. A szerveren valódi cégek dolgozóinak helyadatai vannak. A projekt szabályai szerint az éles adatbázishoz alapból csak olvasási joggal lehet nyúlni, nyers koordinátát nem kérdezünk le, csak számlálást, időpontot és állapotot, és éles adatot semmi nem módosít külön, esetenkénti kérés nélkül.
- Az élesítés. Új verziót csak én teszek ki, és a szerver újraindításához az én jelszavam kell. Ezt szándékosan nem automatizáltam.
- Amiben nem lehet tévedni. Ha egy riport emberek munkaidejéről szól, annak minden sora rögzített szabályokból jön, nem egy nyelvi modell ítéletéből. (Erről szól a negyedik rész.)
A telefon és a szerver közti szerződés
Egy dolgot kifejezetten a gyors fejlesztés miatt vezettem be. A telefon és a szerver közötti kapcsolat formája rögzítve van, és egy külön tesztcsomag őrzi. A szerver bármikor bővülhet, de semmi nem változhat úgy, hogy egy régebbi app-verzió a kollégák telefonján elromoljon. Ha valaki egy hétig nem frissít, attól még mérnie kell.
Mit jelent ez egy megrendelőnek
Azt, hogy a fejlesztő ugyanaz, aki a kérést meghallgatja, és a kérés és a megoldás között nincs sorban állás. A KlipTracknél ez a gyakorlatban úgy nézett ki, hogy ami hétfő délelőtt kérésként jött, az gyakran délután már működött.
És azt is, hogy a gyorsaság nem a gondosság rovására megy. A mesterséges intelligencia a gépelést veszi le a vállamról, nem a felelősséget. Amit nem tudok elmagyarázni, azt nem teszem ki élesbe, akárki írta is.
Ha te is egy AI-eszközzel készült alkalmazást szeretnél rendbe tenni vagy élesíteni, erről szól az AI-jal készült alkalmazások rendbetétele szolgáltatás.