Laivanupotusta ja yhdessä oppimista
04 | 2024 Sanna Valkeejärvi & Aki Väliaho, Senior Fullstack Developer
Millä Kipinän kokeneet asiantuntijat pitävät huolta uuden oppimisesta? Yhdessä tekemisellä sekä pitämällä hauskaa yhdessä ohjelmoinnin ja pelin parissa. ”Tärkeintä päivässä oli se, että oltiin porukalla tekemässä ja nähtiin, millä tasolla meidän kaikkien ohjelmointikyky on. Siinä päästiin aidosti validoimaan kovaa Kipinän osaamista.”
Kipinäläisillä on tapana silloin tällöin lähteä päiväksi pois normaalista työkontekstista ja projekteista, tarkoituksena oppia toisiltaan ja saada uudenlaista perspektiiviä tiimityöhön sekä ongelmien ratkomiseen. Maaliskuussa jengi kokoontui yhteen koko päiväksi pelaamaan laivanupotusta. Tämä Battleship -päivä oli kuitenkin jokseenkin erilainen kuin voisi kuvitella peli-illasta.
Koko päivän turnauksessa annettiin ensin jokaiselle työparille neljä tuntia aikaa keksiä toimiva algoritmi / tekoäly hoitamaan pelaaminen ja toisten voittaminen. Seuraavat neljä tuntia jokainen algoritmi pelasi muita vastaan. Päivän päätteeksi voittajat olivat selvillä.
Pelialusta päivää varten syntyi tiimityönä Kipinässä neljän osaajan voimin. Yksi näistä koodaajista on Aki Väliaho.
”Pelin arkkitehtuuri koostui palvelimella toimivasta pelimoottorista ja pelaajien omilla laitteilla toimivista client-sovelluksista. Molemmat sovellukset oli toteutettu Spring Boot 3 -pohjaisina Java-ohjelmina ja ne on integroitu AWS-pilvipalveluympäristöön ECS-pohjaisena kontitettuna ratkaisuna.
Pelin tapahtumat kulkivat Spring Websocket-toteutuksen kautta reaaliaikaisesti client-sovellusten, serverin sekä admin-käyttöliittymän välillä. Operatiiviset aspektit, kuten pelaajien luonti, tapahtuivat autentikointia vaativan REST-rajapinnan ylitse, jonka kautta yhteys pelitapahtumia tarjoavaan sokettiin ohjattiin. Turnauksen hallinta ja pelien seurantaan tarkoitettu admin-käyttöliittymä oli toteutettu Svelte-kehyksellä.”
Pelialustan koodanneet eivät osallistuneet peliin, vaan toimivat tarkkailijoina. Pelaajat saivat turnauksen aluksi ohjeet ympäristöjensä asentamiseen sekä ohjeistusta, minne peliäly ohjelmoidaan. Kerrattiin myös laivanupotuspelin perussäännöt muistin virkistämiseksi.
Neljän tunnin tiukan algoritmin kehittämisen jälkeen päästiin varsinaiseen turnaukseen. Tässä kohtaa ei ollut enää mitään tehtävissä, kehittäjät eivät päässeet vaikuttamaan siihen enää peliä seuratessa, miten oma algoritmi toimii pelin aikana.
Jokaisen parin algoritmit pelasivat toisiaan vastaan kehittäjien koko porukan seuratessa peliä isolta screeniltä virheitä ja onnistumisia seuraten. Täydellistä murskavoittavaa algoritmiä ei löytynyt keneltäkään, mutta voittaja saatiin selville.
Yhdessä oppimisen ja olemisen iloa
Sen lisäksi, että kipinäläisillä oli hauskaa yhdessä koko päivän koodaamisineen, pelaamisineen ja saunoineen, asiantuntijat oppivat toisiltaan. Tiiminä toimiminen luo parasta arvoa myös asiakkaille ja siksi sitä harjoitellaan ihan aidoissa tilanteissa.
Aki kuvailee päivää seuraavasti: ”Meillä kaikilla oli hiton hauskaa koko päivän. Uskon, että kaikki oppivat tosi paljon päivän aikana. Tärkeintä oli se, että oltiin porukalla tekemässä ja nähtiin, millä tasolla meidän kaikkien ohjelmointikyky on. Siinä päästiin aidosti validoimaan kovaa Kipinän osaamista.”
Pelin seuraamisen aikana keskustelu kävi kuumana ja pelin jälkeen tehtiin katselmointi kaikille luoduille algoritmeille sekä koodille niiden taustalla. Lempeästi toisten kustannuksella nauraen ja myös kunnioitusta antaen.
Oppeja ja oivalluksia päivästä syntyi paljon.
Yhdessä tekemisen treenaaminen konkreettisella tavalla
Kommunikaatiota koodaamisen keskellä
Tiiminä koodaaminen ei ole asiantuntijatyössä usein valtavirran toimintatapa, vaikka Kipinässä tehdään paljon yhdessä. Sosiaalisuuden oppiminen oli vahvaa jälleen tässä yhteisessä tapahtumassa.
Kaikkien aikaansaannosten läpikäynti, jokainen vuorollaan joutui kertomaan, miksi oli päätynyt omiin ratkaisuihinsa parinsa kanssa
Dynaamisia harjoituskierroksia ennen pelin alkua
Vaikuttavaa oli se, että kaikki tiimit saivat aikaan lyhyessä ajassa tekoälyn / algoritmin, joka ei jumittunut neljän tunnin pelin aikana. Se on osoitus siitä, millaisia ammattilaisia Kipinässä on.
Jonkinlaista jatkoa tällaisille kehittymispäiville on luvassa. Niin paljon hyviä oppeja ja hyviä fiiliksiä päivä sai aikaan. Jokainen osallistunut oli päivästä hyvin innostunut, tässä päivässä kipinäläisiä oli 12 henkeä paikalla, seuraavassa toivottavasti enemmän mittelöimässä toisiaan vastaan.