Tuottavuudesta sekä siitä, miten tekoälyä pitäisi käyttää on monia erilaisia mielipiteitä. Ja suurin osa noista mielipiteistä ei varsinaisesti koske sitä, miten tuottavuus määritellään. Kun ICT-alalla puhutaan tuottavuudesta, niin onko tuottavuuden mittarina se, että kuinka monta riviä koodia kukin kirjoittaa? Vai miten mitataan oikeasti se paljon puhuttu tuottavuus, josta niin paljon keskustellaan.
Tietenkin jokainen meistä voi varmaan muutamia rivejä koodia kirjoittaa joka päivä, mutta jos koodit päätyvät roskakoriin, niin silloin ei kyseessä ole varmaan se paljon puhuttu tuottava työ. Kun sitten puhutaan etätyöstä sekä siitä, miten paljon yksinäisyyttä sekä stressiä se nyt sattuu aiheuttamaan, niin jos toimistollakaan ei tehdä mitään muuta kuin istuta tuijottamassa näyttöä, niin toki sekin voi olla tuottavaa työtä.
Siis tietenkään kukaan ei voi enää edes ajatella muuta kuin toimistolle palaamista, koska se tekee ihmisestä tuottavan, ja hän ei voi esimerkiksi tuijottaa musiikkivideoita samaan aikaan kun muut pitävät kokousta tai koodaavat innoissaan uutta tekoälyä, sekä nauttii kilometrikorvauksista. Tai ehkä tämäkin oli sellainen tekohauska mielipide. Ja tästä asiasta sitten voidaan siirtyä suoraan siihen, kuinka tekoälypohjaiset koodaamisen avustajat ovat osoittautuneet pettymykseksi. Eli ne tappava koodaajien luovuuden sekä tekevät asioita muutenkin huonosti. Siis kuinka paljon koodaaja sitten töissä käyttää luovuuttaan onkin sitten toinen asia.
Tässä vaiheessa meidän pitää muistaa se, että tekoäly on oikeastaan vain äärimmäisen kehittynyt ohjelmointieditori. Samoin kaikessa edistyksellisyydessään tekoäly on tietenkin vain tietokoneohjelma, joka oikein käytettynä voi tehostaa koodaamista, mutta väärin käytettynä siitä ei ole muuhun kuin tuottamaan koodia suoraan roskakoriin. Joten kun tekoälyä otetaan käyttöön, niin siinä pitää muistaa muutama erittäin tärkeä asia.
Kuka on vastuussa jos tekoäly tekee huonoa koodia? Vastaus tekoälyn pitää saada selkeitä, kirjakielellä annettuja komentoja, joita se pystyy tulkitsemaan paremmin kuin puhekieltä. Samoin vaatimusmäärittely pitää antaa tehokkaasti, sekä ilman turhia välisanoja.
Joista ensimmäinen on tietenkin se, että kun uusia tietokoneohjelmia mukaan lukien tekoäly otetaan käyttöön, niin se ei tapahdu aivan sekunnissa. Tekoälyä, kuten muitakin ohjelmointityökaluja vaivaa se, että ne ymmärtävät annettuja komentoja siten, että annetut merkit muutetaan ensin ASCII-koodiksi, ja sitten ne syötetään kielimallille, joka etsii tietoa erittäin suuresta määrästä kotisivuja. Tuota kotisivujen määrää voidaan rajoittaa esimerkiksi ohjaamalla tekoälyä etsimään ratkaisua jostain koodausta käsitteleviltä kotisivuilta.
Minkään työkalun käyttö ei suju ilman kurssitusta tai tutustumista uuteen välineeseen. Eli jos välinettä ei koskaan ennen olla avattu, niin silloin sillä ei varmaan aivan heti saada parasta mahdollista jälkeä aikaan. Eli jokainen uusi työkalu vaatii ainakin hiukan opiskelua, ennen kuin se kykenee tuottamaan tehokasta sekä hyväksyttävissä olevaa koodia.
Tekoäly on siis avustaja, jonka toimintaa pitää tarkkailla, ja jonka tekemää tuotosta pitää jatkuvasti seurata. Jos tekoäly alkaa tuottaa väärää koodia, niin silloin syytä voidaan etsiä tekoälyn puutteista, kuten siitä että se ei ymmärrä sanojen sisältöä. Tai sitten tekoälylle annettu käsky, eli vaatimusmäärittely, jonka kautta tekoälyn kielimalli etsii tietoa on huonosti annettu. Siis kun tekoälylle annetaan tehtäväksi koodien rakentaminen, niin sille pitää antaa tehokas sekä selvästi ymmärrettävä vaatimusmäärittely eli käsky. Jos käskyjä annettaessa aletaan jaaritella, niin se vaikuttaa tekoälyn toimintaan.
Algoritmi ei erota merkityksellisiä sanoja merkityksellisistä. Joten jos vaatimusmäärittely annetaan muodossa "tota noin,. siis sillä tavalla pitäisi toimia", niin tekoäly ei ehkä osaa tehdä kaikkia asioita oikein. Se ei erota täytesanoja merkityksellisistä. Joten tekoälyn käskytyksen pitää tapahtua siten, että käsky pitää sisällään vain sen tiedon, joka on merkityksellistä. Ja tietenkin tekoälyn pitäisi samalla saada käskyyn mahdollisimman paljon tietoa, jotta sen toiminta olisi tehokasta. Eli esimerkiksi suorakulmaisen kolmion pinta-alan laskeva ohjelma muodostetaan tuolloin käskyttämällä: "tee ohjelma, joka laskee kolmion pinta-alan". (Kanta * Korkeus/kahdella).
Mutta sitten meidän pitää huomioida se, että jokaisen kirjaimen ASCII-koodi on erilainen, mikä tarkoittaa sitä, että pieni "a"-kirjain (ASCII 097) ei ole sama asia kuin iso "A" kirjain (ASCII 065) siis ASCII koodit on ilmoitettu heksadesimaalisessa muodossa. Tuo pieni ero tekee noista kahdesta kirjaimesta kaksi täysin eri asiaa. Ja tuohon ilmiöön missä iso kirjain tuo ruudulle eri asioita kuin pieni kirjain on jokainen törmännyt Linux-käyttöjärjestelmän kanssa toimittaessa.
Eli kuten kaikki koodaamisen kanssa työskentelevät ja työskennelleet ovat huomanneet, niin koodaaminen vaatii tiettyä tarkkuutta. Joten meidän pitää muistaa, että vaikka me käsittäisimme asiat jotenkin, niin sama asia merkitsee tietokoneelle eri asiaa. Ja sen takia meidän pitää todeta, että "mä" ja "minä" ovat tietokoneelle kaksi eri asiaa.
Tekoäly ei myöskään ensimmäisellä kerralla ehkä tee parasta mahdollista koodia. Vaan kun koodi on tulostettu ja testattu, niin sitten tekoälyn pitää saada palaute, jossa palautteen antaja kertoo tekoälylle, mitä sen pitäisi tehdä toisin. Eli tuolloin käydään käydään tuotekehityssykliä läpi ensin tekoälyn kanssa, ja sitten kun koodi alkaa muotoutua, niin silloin koodi annetaan ihmisten tarkastettavaksi.
Kun teemme työtä tekoälyn kanssa, niin meidän pitää tietenkin käyttää kirjakieltä, kun annamme komentoja tuolle työkalulle. Tekoälyt eivät ymmärrä murretta. Ihminen käsittää että "mä" ja "minä" ovat sama asia, koska käytämme ajattelussamme sumeaa logiikkaa. Tietokonekin voi käyttää sumeaa logiikkaa, mutta silloin sumea logiikka tarkoittaa suurta joukkoa täsmällisiä ratkaisuita, eli tuolloin sana "mä" olisi linkitetty yhteen sanan "minä" kanssa.
Kun tekoälyä käytetään, niin ammattilainen joka osaa tulkita koodia sekä korjata virheitä saa tekoälystä varmasti enemmän kuin henkilö, joka ei tuota työtä osaa. Siis tekoälyä käyttävä ammattilainen joka osaa muotoilla vaatimusmäärittelyn oikein sekä hallitsee koodaamisen voi tekoälyn avulla tehostaa työtään.
Mutta jos henkilöllä ei ole tarvittavia taitoja sekä koulutusta etsiä koodista virheitä on käytössään tekoäly, niin hän varmasti tuottaa silloin suuren määrän virheellistä koodia. Joten tekoäly voi korostaa esimerkiksi koodaajien tasoeroa. Tai sitten se vie työpaikat uusilta koodaajilta, joiden taidot eivät vielä ole kehittyneet tarpeeksi kovalle tasolle.
Se tarkoittaa sitä, että uudet koodaajat eivät pääse kehittymään. Ja sitten kun vanhat lähtevät, niin uudet työntekijät joudutaan hakemaan Intiasta, kun kotimaisten koodaajien taidot eivät enää riitä. Ja lopulta koko koodaus joudutaan kuitenkin ulkoistamaan johonkin Kaukoitään, jossa työvoima on halpaa. Samoin työkin alkaa lopulta muistuttaa halpaa tuotantoa, ja ehkä sitten saamme lopulta koko ICT-alan pois nurkista pyörimästä. Niin voidaan taas kerran päättää yksi osa suomalaisesta osaamisesta.
https://www.tivi.fi/uutiset/koodareiden-hehkutetut-tyokalut-tyrmattiin-eivat-paranna-tuottavuutta-virheet-lisaantyvat-41-/30565064-74b7-4628-90d5-7ed0d649d8f1
https://fi.wikipedia.org/wiki/Heksadesimaalij%C3%A4rjestelm%C3%A4
Ei kommentteja:
Lähetä kommentti
Huomaa: vain tämän blogin jäsen voi lisätä kommentin.