Millaisia hyötyjä ja haasteita GitHub Copilotin kaltaiset tekoälyavusteiset työkalut voivat tuoda tiimillesi ja organisaatiollesi?
Useimmat tapaamamme organisaatiot harkitsevat tekoälyavusteisten ohjelmointityökalujen käyttöönottoa. Kehittäjien kahvipöytäkeskustelut ovat jo pitkään pyörineet tämän aiheen ympärillä (ja osa saattaa jo käyttää työssään henkilökohtaista lisenssiä).
Kuitenkin huoli aineettoman omaisuuden vuotamisesta on merkittävä, erityisesti jos organisaatio ei käytä liiketoiminta- tai yrityslisenssiä tekoälyavusteisille työkaluille.
GitHub Copilot on tekoälyavusteinen “pari-ohjelmoija”, joka on koulutettu miljardien koodirivien avulla, käyttäen pääasiassa avoimen lähdekoodin projekteja. Copilot muuntaa luonnollisen kielen ohjeet koodiehdotuksiksi kymmenissä eri ohjelmointikielissä, ehdottaa koodin täydennyksiä ja tarjoaa muita ominaisuuksia, kuten chatbotin (samanlainen kuin ChatGPT).
Kuten minkä tahansa teknologian kanssa, tiiminvetäjät ja Scrum Masterit suhtautuvat varauksella mahdollisiin niiden tuottamiin mahdollisiin häiriötekijöihin kesken sprintin tai julkaisun. Uusien työkalujen lisäämiseen kehitysprosessiin on harvoin täydellistä hetkeä, ja siksi on syytä tarkastella seuraavia aiheita syvemmin:
- Millaisia muutoksia GitHub Copilot tuo ohjelmistoammattilaisten arkeen?
- Mitkä ovat GitHub Copilotin käytön riskit, ja miten niitä voidaan hallita?
- Mitä lyhyen ja pitkän aikavälin hyötyjä tekoälyavusteiset työkalut tuovat?
Millaisia muutoksia GitHub Copilot tuo ohjelmistoammattilaisten arkeen?
Copilot ei ole vain sovelluskehittäjille. Kuka tahansa, joka työskentelee “koodin” parissa, kuten data-insinöörit tai infrastruktuurihallinnan ammattilaiset, voi hyödyntää sitä. Käyttökohteita on lukuisia, ja ohjelmistoammattilaisten yhteisöt alkavat vasta nyt perehtyä Copilotin tarjoamiin mahdollisuuksiin. Se voi myös auttaa ymmärtämään vanhaa koodia tai tuntemattomia ohjelmointikieliä. Koodikielten välillä kääntäminen on yksi Copilotin erityisen vahvoista alueista.
Asiakkaiden kanssa keräämämme kokemuksemme perusteella suosittelemme tekoälyavusteisten työkalujen käyttämistä parantamaan olemassa olevia työskentelytapoja. Copilot ei ole erityisen hyvä tarjoamaan täydellisiä ratkaisuja tai purkamaan liiketoimintalogiikkaa olemassa olevasta koodista. Chatbot, joka on integroitu Copilotin käyttöliittymään, kuitenkin laajentaa mahdollisuuksia ratkaisujen suunnittelussa ja loppukäyttäjän vaikutusten ymmärtämisessä.
Ohjelmistokehittäjistä ei tule arkkitehteja uusien työkalujen myötä, vaikka ensimmäiset kokemukset tekoälyavusteisten työkalujen käytöstä voivat olla voimakkaita. Kaikkia perinteisiä ohjelmistokehityksen rooleja tarvitaan nyt ja tulevaisuudessa. Copilot on erityisen hyvä luomaan boilerplate-koodia ja muistuttamaan monimutkaisista syntakseista. Pelkästään tämä voi säästää useita tunteja viikossa, jotka voidaan suunnata luovempaan työhön. Toinen aikaa säästävä ominaisuus on kehikon luominen testeillesi. Tämä auttaa keskeisesti koodisi testaamista; kun aloitat muotoilemalla testiskenaariosi luonnollisella kielellä ja annat tekoälyn täyttää koodin, voit viimein hyödyntää paljon puhuttua ja tehokasta testivetoista kehitystä (TDD).
Laajemmassa mittakaavassa laadun parantaminen on vielä kiinnostavampaa kuin nopeuden lisääminen, joka on usein ensimmäinen ajatus tekoälyavusteisia työkaluja harkittaessa. Sellaisten testien luominen, joita kehittäjä ei itse olisi suoraan ajatellut, parantaa tuotteen laatua. Tämä antaa kehittäjille myös uusia näkökulmia kehitettävään tuotteeseen sekä heidän omiin käsityksiinsä laadusta ja sen varmistamisesta.
Mitkä ovat GitHub Copilotin käytön riskit, ja miten niitä voidaan hallita?
Koska voit yhtäkkiä suorittaa kooditoimintoja ennätysajassa (ja jopa kirjoittaa testit niille samanaikaisesti), kaikkivoipaisuuden tunne voi sokaista. Tämä pätee erityisesti, kun omassa turvallisessa osassasi repositoriota kaikki näyttää toimivan täydellisesti ja testit menevät läpi jatkuvasti.
Todellinen riski on, ettet ymmärrä lopputulosta jonka juuri loit. Saatat hyväksyä koodiehdotuksia ja testejä, jotka toteuttavat jotain muuta kuin mitä ratkaisusi tarvitsee. Ei ole hyötyä luoda jotain nopeasti riittävällä testikattavuudella, jos koodi tekee jotain muuta kuin odotetaan. Joskus Copilot tarjoaa ratkaisuja, jotka ovat yksinkertaisesti vääriä. On helppoa jumittua yrittämään saada ehdotus toimimaan, kun oikea ongelma on väärä lähestymistapa.
Tekoälyavusteiset ratkaisut tulisi ottaa käyttöön hallitusti. Yritykselle tai organisaatiolle relevantit ohjeistukset ja esimerkit ovat erittäin hyödyllisiä. Äskettäisessä GitHubin tutkimuksessa 81 % kehittäjistä uskoi, että tekoälytyökalut auttavat heitä tekemään parempaa yhteistyötä.
Kun kokemattomammat kehittäjät tekevät koodimuutoksia, mentorin on hyvä varmistaa, että olemme toteuttaneet oikean ratkaisun, testaus toiminnallisuudelle on riittävää ja että kehittäjä on valmis selittämään luomaansa koodia muille tarvittaessa. Jokainen on vastuussa tekemästään koodista, vaikka se olisi pääosin tekoälyn tuottamaa.
Vinkkejä riskien välttämiseen:
- Kopioi luotu funktio takaisin Copilotin keskustelumoduuliin ja pyydä sitä selittämään koodi yksinkertaisilla termeillä
- Pyydä chatbotia selittämään koodi kuin se olisi resepti ruoanlaittoon. Se tiivistää usein toiminnot erittäin tehokkaasti.
- Pyydä chatbotia ehdottamaan testejä koodille, mukaan lukien reunatapaukset, negatiiviset testaukset tai miten testit kannattaisi eristää (mocking).
- Pyydä ehdotuksia koodin tyylin parantamiseksi. Työkalu todennäköisesti tarjoaa suoraan parannettua koodia, jota voit vertailla omaasi ja oppia eroista.
- Käytä hetki aikaa miettiäksesi todella hyviä nimiä funktiosi parametreille, jotta Copilot ymmärtää tarkoituksesi paremmin.
- Ota yhteyttä toiseen henkilöön käydäksesi läpi keskeisiä osia työstäsi ja miten olet käyttänyt tekoälyavusteisia työkaluja ennen työn siirtämistä eteenpäin.
Yleisesti kokemuksemme osoittaa, että kokeneet tekniset toimijat voivat ottaa Copilotin käyttöön ilman esittelyä tai ulkopuolista tukea. Käyttöönottoon käytetty aika saadaan yleensä takaisin jo saman viikon aikana.
Teknisen uransa alussa oleville mentorin kanssa työskentely varmistaa, että Copilotin käyttö ei muutu kilpailuksi itseä vastaan, vaan tarjoaa tavan oppia nopeasti ja saada varmuutta myös virheiden tekemiseen.
Lyhyesti sanottuna kuka tahansa voi ottaa GitHub Copilotin käyttöön, kunhan on tietoinen vastuista, jotka liittyvät tuotetun toiminnallisuuden siirtämiseen eteenpäin. Ole valmis esittelemään ratkaisu tarvittaessa ja selittämään jokainen vaihe ja syyt sen toteuttamiseen.
Mitä lyhyen ja pitkän aikavälin hyötyjä tekoälyavusteiset työkalut tuovat?
Useimmat tapaamamme ihmiset tavoittelevat suurempaa tuottavuutta ja tehokkuutta – toisin sanoen arvon tuottamista nopeammin tekoälyavusteisia työkaluja hyödyntämällä. Tutkimus kertoo, että vain murto-osa ohjelmiston toimittamiseen käytetystä ajasta kuluu koodaukseen. Jos oletamme, että 20 % julkaisun ajasta kuluu koodaukseen, tämän ajan puolittaminen ei ole kovin merkittävä kokonaiskuvassa.
Tuottavuutta kiinnostavampi alue on kehittäjäkokemus (DX). Työn mielekkyyden lisääntyminen ja mahdollisuus oppia poistumatta kehittämisen kontekstista parantaa varmasti työntekijöiden pysyvyyttä.
Kehittäjät organisaatiossasi todennäköisesti pysyvät pidempään, jos tarjoat heille työkaluja, jotka mahdollistavat keskittymisen luovaan työhön ja vähentävät rutiininomaista työskentelyä. Useimmat kehittäjät nauttivat uusien ongelmien ratkaisemisesta, ja Copilot auttaa luomaan tilaa juuri tälle.
Saadaksemme GitHub Copilotin lyhyen ja pitkän aikavälin hyödyt käyttöön pelkkien kehittäjien päivittäisten parannusten lisäksi meidän on tarkasteltava ohjelmiston elinkaarta kokonaisvaltaisesti. Erityisesti tulisi edistää toiveita DevOps-parannuksista:
- Miten voimme nopeuttaa testausympäristöjen käyttöönottamista?
- Voimmeko estää ongelmat, jotka johtuvat ympäristöjen eroista?
- Mitkä ovat julkaisunopeuden ja laadun pullonkaulat?
- Miten varmistamme, että tuottamamme lopputulos on asiakkaillemme arvokas?
- Tuotetiimien osalta, voimmeko varmistaa, että olemme ymmärtäneet vaatimuksen oikein ja muuntaneet sen vastaavaksi tekniseksi määrittelyksi?
Tekoälyavusteisten chatbot-työkalujen yhdistäminen koodaustyökaluihin antaa mahdollisuuden tarkastella ratkaistavia haasteita uusista näkökulmista. Teknisien määrittelyjen kirjoittaminen tai vaatimusten uudelleenmuotoilu tekoälytyökaluilla on erittäin hyödyllistä. Vaatimusten tarkasteleminen eri näkökulmista voi auttaa tekemään parempaa yhteistyötä ja keskustelemaan niiden merkityksestä loppukäyttäjien kanssa.
Lyhyellä aikavälillä GitHub Copilot voi auttaa oppimaan ja pysymään keskittyneinä kun se on sisällytetty integroituun kehitystyökaluihin (esim. IDE). Kyky pysyä flow-tilassa välttäen turhauttavia tehtäviä parantaa kehitystiimien arkea. Pitkällä aikavälillä tekoälyavusteisten työkalujen yhdistelmä voi auttaa lähes jokaisessa suunnittelu-, määrittely-, kehitys- ja toimitusprosessin vaiheessa.
Tässä blogikirjoituksessa emme puhu ohjelmistojen operoinnista tuotantoympäristöissä. Tämä alue tulee lopulta kokemaan suurimmat muutokset. Tuotantoklustereista kerättävät telemetriatiedot, joita ihmisten on vaikea lukea ja analysoida, voidaan muuntaa oivaltaviksi kokoonpanomuutoksiksi ajonaikaisessa ympäristössä, kun ihmiset käyttävät näitä työkaluja uusilla ja tehokkailla tavoilla.
Julkaistu: 4. joulukuuta 2024