Kommer AI förändra utveckling?

apr 3, 2023

Det verkar som att nya AI-verktyg dyker upp varje dag och de blir så bra att de redan kan ersätta många av de tråkiga uppgifterna inom många olika områden. Betyder det här att vissa jobb kommer att försvinna och lämna människor arbetslösa? Troligtvis inte, men det kommer att kräva vissa förändringar för många olika människor.

Vad kan vi göra med AI idag?

Programvaruutveckling har alltid varit i framkant av att ha avancerade verktyg för att göra deras liv enklare. Det är bara naturligt att de som bygger mjukvara för att automatisera processer för alla andra också försöker förenkla sitt eget arbetsliv.

Takten som nya produkter för mjukvaruutveckling släpps är så hög att det är omöjligt för någon att hålla jämna steg. De flesta verktyg är avsedda att göra det lättare att leverera ny funktionalitet till en slutprodukt snabbare och mer tillförlitligt. Jag använder termen verktyg här i dess bredaste möjliga betydelse eftersom jag anser nya versioner av programmeringsspråk och ramverk som nya verktyg.

Idag är vi på en punkt där det vanligtvis är ganska lätt att börja använda ett nytt verktyg och du behöver egentligen inte förstå hur det fungerar för att använda det. Detta är både bra och dåligt:

  • Det goda är naturligtvis att det är väldigt lätt att börja använda nya verktyg.
  • Det dåliga är att det är väldigt lätt att använda verktyg som du egentligen inte vet hur de fungerar.

Bland dessa nya verktyg är de som får mest uppmärksamhet nuförtiden verktyg som har någon form av AI inbyggd i dem och de kan verkligen göra fantastiska saker:

  • Komplett en hel funktion åt dig strax efter att du har skrivit dess signatur.
  • Skriv kod baserat på beskrivningar i text.
  • Generera automatiskt enhetstester för din kod.
  • Ta design-dokument och göra dem till fungerande kod.

En del av detta har funnits ett tag och en del är ganska nytt. Den främsta skillnaden med att använda AI för att göra detta jämfört med traditionella tekniker är att det faktiskt börjar vara användbart på riktigt.

Vad kan AI inte göra (ännu)?

Det är faktiskt ganska knepigt att säga vad AI inte kan göra, med tanke på att så många nya AI-verktyg släpps hela tiden. Men när det gäller kodning finns det några saker som AI fortfarande inte riktigt kan uppnå:

  • AI kan ännu inte lita på att skriva kompletta funktioner/metoder. AI kan redan skriva hyfsad kod, men du måste känna till och förstå den koden för att upptäcka de misstag som den gör.
  • AI kan fortfarande inte skriva hela lösningar eller applikationer utan mycket manuellt arbete.
  • AI är begränsad i sin förmåga att komma på nya begrepp eller designmönster som inte redan finns.

Det här är verkligen inte en lång lista och det verkar verkligen inte som mycket stora problem, av den enkla anledningen att de inte är stora problem.

Det är också inte så problematiskt, eftersom bara det faktum att AI ännu inte kan göra detta, inte betyder att det inte kommer att kunna snart och jag menar mycket snart.

Det har redan gjorts några tillkännagivanden om AI-drivna kodningsverktyg som ännu inte är tillgängliga för allmänheten som i princip lovar att kunna göra detta. Så vi är inte några år bort, det handlar mer om några månader. Min gissning är att du vid slutet av detta år bör kunna använda AI för det mesta inom mjukvaruutveckling.

Den största utmaningen att övervinna för att uppnå detta är att vi behöver tillräckligt med människor som ska prova det och använda det för att validera att det faktiskt gör vad det ska göra på ett snabbt, skalbart, pålitligt och säkert sätt.

Hur kommer detta att påverka min roll som utvecklare?

Detta kommer att gynna alla mjukvaruutvecklare beroende på hur de lär sig att använda dessa nya verktyg. För att bättre illustrera detta kommer jag att belysa några olika typer av utvecklare (jag vet att det finns fler typer, men det är inte poängen) och sedan förklara hur jag tror att detta kommer att påverka dem.

Den passionerade mästaren

Denna typ av person är en person som verkligen är passionerad om kodning och har kodning både som ett jobb och som en hobby. Enligt min erfarenhet faller alla de bästa utvecklarna in i denna kategori.

Dessa personer kommer att dra nytta av att använda AI eftersom de kommer att kunna få all grundläggande kodning gjord av AI och kan fokusera på att uppfinna nya algoritmer och arkitektur och finslipa saker. Där de tidigare var tvungna att handleda mindre erfarna medlemmar i deras team kan de nu agera som ett team på egen hand, med samma output om inte mer än ett helt team kunde innan AI.

Det kommer att ta dessa personer lite längre tid att acceptera den kod som AI producerar eftersom de vanligtvis inte gillar att inte ha kontroll över koden.

Proffset

Denna typ av programmerare har blivit mycket framgångsrik i sin roll och verkligen vet vad de gör, men de är inte passionerade om det som en mästare och betraktar det bara som ett jobb.

I många fall kommer de nu att kunna höja sig till samma produktivitetsnivå som en passionerad mästare så länge de har rätt mindset. Den främsta anledningen till detta är att det i de flesta fall finns mycket lite behov av innovation eller hardcore-arkitektur. De flesta mjukvaruutvecklingsprojekt är faktiskt ganska repetitiva och en bra utvecklare med AI kan göra mycket mer.

Sajtbyggaren

Dessa utvecklare har fokuserat på att bygga webbplatser med hjälp av en eller två olika plattformar. De är vanligtvis inte så bra utvecklare, men de behöver inte vara det. De kan skriva en anpassad plugin till WordPress och de kan designa en webbplats ganska bra.

Dessa personer kommer att dra stor nytta av att använda AI eftersom de nu kan känna sig trygga med att skapa mer avancerade plugins och vara säkra på att det de producerar inte bryter något annat eller orsakar säkerhets- eller prestandaproblem.

Tyvärr är det mycket troligt att dessa utvecklare kommer att förlora sin förmåga att koda efter några år av att använda AI, eftersom de helt enkelt inte kommer att hålla uppe färdigheterna eftersom AI kommer att skriva koden. De kommer att bli bra på att instruera AI om vad den ska göra, men de kommer inte längre att skriva någon av sin egen kod.

Kopiatorn

Denna typ av utvecklare känner egentligen bara till grunderna i programmering och förstår inte riktigt koden så bra. De har inga problem med att använda Google för att söka efter en lösning på sitt problem och kopiera in det i sin kod utan att egentligen förstå det och se hur det går.

Världen kommer att bli så mycket bättre när AI tar över all kodning för dessa utvecklare, eftersom de generellt sett orsakar många problem i koden eftersom de helt enkelt inte förstår den. De kommer också snart att inse att de plötsligt kan göra mycket mer än de tidigare kunde och det kommer att göra dem mycket mer produktiva.

Nya roller

Jag tror att det kommer att finnas en helt ny typ av programskapare som liknar AI-piloter mer än något annat. Du behöver fortfarande människor som förstår grundproblemet och på något sätt kan instruera AI, men det innebär inte nödvändigtvis att du måste kunna koda alls. Du behöver bara ha en bra förståelse för affärslogik och logik i allmänhet. Vi kommer att behöva människor som identifierar problemområden och kan komma på idéer om hur man löser dem, men de behöver inte vara programmerare.

Sammanfattning

AI kommer att förändra landskapet för hur programvara görs i varje del av processen. Förändringen kommer snabbare än vi kanske tror och vi kommer alla att behöva anpassa oss till hur vi använder detta. Vissa människor kommer att bli överflödiga, men eftersom det idag finns en enorm brist på utvecklare… förhoppningsvis kommer AI att hjälpa oss att leverera mer värde till våra företag.