I huvudet på en utvecklare #2

Våra utvecklare på Appli har alltid många goda idéer och kloka tankar, och då och då ber vi de göra ett avstamp kring den utveckling vi befinner oss i. Vår IT-chef har sammanfattat sina tankar i en krönika nedan om sina egna reflektioner om AI, Chat-GPT och på vilket sätt skiftet vi står inför revolutionerar branschen och hur man som utvecklare behöver agera och använda den nya tekniken i sin vardag.

De senaste månaderna har ingen kunnat gå miste om att det nu finns AI-understödda “bot”-tjänster med förbluffande egenskaper. Mest känd är ChatGPT (https://chat.openai.com/). Många diskussioner har satts i gång, en del på det etiska planet. Jag tänker inte beröra den frågan speciellt, men det är ingen hemlighet att jag är teknikoptimist, och hellre utforskar möjligheterna med tekniken än problemen den kan tänkas skapa. I denna artikel tänker jag beröra hur jag ser AI-tjänster förändra min yrkesroll, som mjukvaruutvecklare. Vi står kanske inför det största genombrottet sedan webben introducerades. Det är som om vi “grovarbetare” inom IT, nu äntligen får en industrialisering, som tar bort de oergonomiska och tråkiga sysslorna i vårt gebit, och istället kan fokusera på det kreativa! Eller? Nja, det tillkommer en del nya, tråkiga, uppgifter med tekniken också.
Vad gör en utvecklare? Kort sagt, hen tar ett problem, försöker skapa en komplett modell av det, med väldefinierade indata, processer och utdata. Eventuellt dokumenteras denna modell. Sedan omsätts denna modell till en implementation, samt förhoppningsvis valideringsmetoder av implementationen. Efter det sjösätts implementationen, möjligtvis i flera exemplar, och börjar användas. Eventuella brister och fel upptäcks och återrapporteras till utvecklaren, som analyserar varje fall, försöker åtgärda och eventuellt författar nya tester som ska undvika att samma problem uppstår igen framöver. Samtidigt kanske nya aspekter av problemet adresseras och produkten byggs iterativt på och nya versioner lanseras, ad infinitum.
I flera, de flesta faktiskt, av dessa moment kan utvecklare hitta hjälp hos AI-bottar. Samtidigt kan hen vidare förkovra sig inom sitt specialområde, mjukvaruutveckling. En AI-bot kan agera som bollplank, “kodslav”, mentor, expert, sekreterare, recensent etc. Med dagens kvalitet kommer denna flexibilitet till en kostnad, man måste vara kritisk. Man måste lägga vikt vid att kontrollera och aktivt korrigera när det kommer tveksamma, eller rent felaktiga, svar. Vilket det ofta gör, faktiskt nästan i varje icke-trivialt svar. AI tar inte bort behovet av operatörens omdöme. Det är en bit kvar innan just omdöme, eller sunt förnuft, kan ersättas.
Idag, nästan exakt ett år efter ChatGPT’s introduktion, och nog mer än ett halvår sedan dess världsomspännande genomslag har jag mängder av daglig erfarenhet av Plus-versionen av tjänsten. Det är enkelt att säga att det förenklar min vardag, det är inte ens en frågeställning. Jag kan spara 5–10 minuter av webb-surfning, eller bläddrande i böcker, flera gånger dagligen, när det kommer till enkla frågor, precis som web-sökmotorerna gjorde när de kom (ja, Google var inte först, den blev bara bäst och mest känd), bara att det blir ännu snabbare att hitta rätt svar nu. Men man kan också spara halvtimmar till timmar av mekaniskt skrivande av s.k. “boilerplate”-kod (trivial repetitiv kod som inte kräver speciell kompetens, men just krävs för att skriva ett program, jämför med att skala potatis för en stjärnkock). Bara dessa tillämpningar motiverar väl användandet av “AI”-tjänster för mjukvaruutveckling. Men lägg till grädden på moset, att kunna skriva prototypkod givet bara kravspecifikationer, eller att till och med ta fram kravspecifikationerna, och tester, givet informella problembeskrivningar. Det kan spara dagar… om man vet hur man ska sortera bort skräpet som obönhörligen kommer med. Om några år är denna krönika ointressant, och “stating the bloody obvious”, men idag får jag fortfarande många frågor om det där med AI, är det något, egentligen?

Det här var ett 100%-igt korrekt svar som gjorde att jag på under en minut klarade av en enkel uppgift jag behövde få gjord. Jag hade kunnat “Googla” mig till samma info, alternativt använda mig av min tidigare kunskap (jag kände till en annan programvara som gjorde samma sak, men visste inte om den fortfarande levde, var man hittade den och hur man installerade på Mac), och jag hade lyckats, men jag hade inte löst problemet på samma korta tid, eftersom svaren jag hade hittat hade varit i form av mer pratiga artiklar som inte direkt hade svarat på ett koncist sätt. Inget fel i det, men denna gång ville jag bara minimera tiden från att få behovet, tills behovet var löst.

Lärdom: Om AI-systemet har kunskapen om hur en uppgift kan lösas, så kan den svara koncist, och precis på den aspekt av frågeställningen du har. “Som man frågar får man svar” är kanske en av de viktigaste meta-kunskaperna i den nya AI-världen :-)
Den här typen av frågor kan jag ställa flera gånger i veckan, ibland flera om dagen. Ibland gör jag fel och startar med att Googla, eller till och med att läsa manualer, och inser för sent, eller t.o.m. i efterhand, att det är långsammare. Nu för tiden ser jag till att jag har aktiva ChatGPT-sessioner (det skulle kunna vara andra AI-botar, men just nu gäller denna) igång så det är sekunder till att ställa frågan. Jag har till och med testat med att ha den lyssnande på talade frågor, men där duger den ännu inte för mitt engelska uttal (eller för svenska).

Nästa exempel: Jag ber ofta om initial kod för att lösa problem, nedan har jag tagit en screenshot på en initial konversation om ett verktyg jag behövde härom veckan. Det blir för mycket att klistra in hela konversationen, men jag hoppas att bilden i sig ger en känsla för hur lätt det är att starta ett projekt. Dessutom kan man tänka sig att starta projekt i språk man är novis i (jag råkar behärska Rust, så det var inte fallet här). I frågan här är det kul att jag behöver inte närmare förklara väldigt specifik kontext, som vad QCOW2 är för format, AI -systemet känner till detta, eftersom det har tränats på stora delar av mänsklig text-produktion. Den har minst ytlig kännedom om nästan allt. Svaret var förstås bagatellartat, men man fick kod som skulle ta 5–10 minuter att skriva från scratch, som grund för fortsatt kodning. Dessutom har man skapat en diskussion där man kan dyka djupare in i detaljer. Denna interaktivitet finns inte i alternativ som Google, eller textböcker som täcker specialämnet man vill utforska.

Lärdom: Be gärna om ramverk för kod givet vissa lösa specifikationer för att komma i gång. Ofta funkar svaren väl för att komma i gång med projekt och man kan interaktivt utveckla vidare. Detta är med dagens AI-system att rekommendera, då för mycket specifikationer “up-front” ger för mycket att “tänka på" för systemet, vilket sänker kvaliteten på svaren, i min erfarenhet.

Som senior lagledare för vårt utvecklarteam får jag ibland frågor om fundamentala begrepp som man själv har en intuitiv känsla för men kanske inte direkt kan förklara (det är väl egentligen ett tecken på att man inte riktigt förstått själv :-)). Häromsistens fick jag en fråga när jag beskrev kod jag skrivit, som var av den typen. Det var genant att behöva svara, “jag vet egentligen men kan inte förklara just nu, tills vidare får ni bara acceptera att det är så man gör!” :-)
Sekunder efter seminariet, frågade jag ChatGPT frågan jag inte direkt kunde svara på själv, och kunde ytterligare några få sekunder senare svara min kollega, på vår interna kommunikationskanal…

Jag har tjogtals med andra exempel, men där slutar jag för idag. Hoppas någon inspirerats att använda AI som hjälp nu. Själv använder jag även ChatGPT som hjälp privat för saker som golf- och schackträning! Tro det eller ej :-)

Lärdom: Ställ gärna frågor om grundläggande kunskap, AI-systemen är oerhört bra på att förklara på ett pedagogiskt sätt, förvånande nog. Ofta är det bättre förklaringar än vad referensmanualer kan ge.

Vill ni läsa "I huvudet på en utvecklare #1", klicka nedan!

MOBILE ONLY

Våra senaste nyheter

Nyheter
23 NOVEMBER 2023

Borgunda Bygghandel väljer Appli som partner!

Appli är glada över att välkomna Borgunda Bygghandel som en av våra nya kunder för hösten och ser framemot att stötta de i deras strävan att förbättra och effektivisera sina...

Guider
9 NOVEMBER 2023

Vad är en E-faktura och varför kan det vara bra?

En E-faktura är en faktura som helt hanteras elektroniskt, från sändning till mottagande och behandling. Denna typ av faktura innehåller samma uppgifter som en traditionell pappersfaktura men är...

Nyheter
2 NOVEMBER 2023

Förenkla fakturahanteringen med Scancloud

Fler och fler kunder vill ta emot sina fakturor elektroniskt, men fortfarande spretar det i val av hur och i vilket format, och dessutom finns det kunder som fortfarande föredrar post. Med hjälp av...