Category Archives: Työkulttuuri

Peliohjelmoijan osaaminen Part 1 – Kovilla taidoilla kovia tuloksia

peliohjelmoijan osaaminen kuvattu aivolohkoilla, joissa molemmat puolet kuvaavat pehmeitä ja kovia taitoja.

Pelien tekemiseen liittyy usein liittyy harmillisia stereotypioita ja mielikuvia kavereista tekemässä “vähän jotain koodaamista” kaverinsa kellarissa. Todellisuudessa pelien tekeminen on se salainen resepti joka rakentaa osaavimmat ohjelmoijat erilaisiin tarpeisiin. Peliohjelmoijan osaaminen voidaan jakaa sekä koviin teknisiin taitoihin että pehmeisiin, ihmisläheisempiin taitoihin. Tämä ensimmäinen osio keskittyy juurikin ohjelmoijan konkreettisiin, ”koviin” taitoihin.

Kovat taidot/Hard skills

Teknologiat

Tekninen osaaminen pelialan ohjelmoijilla on poikkeuksellisen vahvaa, koska heidän tulee hallita paitsi laitteistot, yleensä myös vähintään kaksi pääasiallista ohjelmointikieltä.

Muutaman pääasiallisen ohjelmointikielen hallitsemisen lisäksi pelejä tehtäessä ohjelmoijien tulee myös tutustua ja hallita useampia teknologioita myös alemmalta tasolta. Alemman tason hallitseminen antaa ohjelmoijille paremman kokonaisymmärryksen koko systeemin toiminnasta kuin mitä perinteinen ohjelmistokehittäjä välttämättä omaa.

Matematiikka ja fysiikka

Peliohjelmoijan osaaminen sisältää teknologisen osaamisen lisäksi myös reilusti laskutaitoa. Ohjelmoijalta vaaditaan erinomaista matematiikan ja fyysikan ymmärtämistä, sillä pelissä toteutetut 3D-grafiikat ja animaatiot ovat haasteellisuudeltaan reilusti perusohjelmoijan vaatimustason yläpuolella. 

Optimointi

Pelien tekemisessä yhdeksi tärkeimmäksi asiaksi nousee myös ohjelmoijan kyky optimoida. Järjestelmien äärirajoille vieminen ja toiminnan ylläpitäminen on jatkuvaa tasapainottelua ja juurikin pelikoodarit ymmärtävät sen, kuinka koodista saadaan puristettu viimeinenkin hyöty irti.

Työmallit ja toimintavat

Pelialalla on usein käytössä ketterät ohjelmistokehityksen työmallit perinteisen vesiputousmallin sijasta. Ketterät menetelmät ovat isossa roolissa kasvattamassa myös ohjelmoijan pehmeitä taitoja, kuten reaktiivisuutta ja ongelmanratkaisukykyä. Toimintatapojen kautta peliohjelmoijien osaamiseen kuuluvat myös toistuvat tottumukset etsiä virheitä (debugging) omista töistään.

Näppäilynopeus

Kyky kirjoittaa rivejä koodeja nopeasti, voidaan nähdä kovana taitona, koska se kehittyy kokemuksen ja harjoittelun myötä. Mitä nopeammin ohjelmoija kykenee tuottamaan tarkkoja koodirivejä, sen tehokkaampi hän on ja näin ollen myös pätevämpi.

Lue tästä myös peliohjelmoijan osaamista käsittelevän blogimme toinen osa koskien ohjelmoijien pehmeitä taitoja: https://zaibatsu.fi/peliohjelmoijan-osaaminen-part-2-pehmeilla-taidoilla-patevaksi/


Business as usual?

Etätöihin siirtyminen

Meneillään oleva pandemia on otettu meillä vakavasti ja siihen on varauduttu ennaltaehkäisevästi, siirtämällä koko yrityksen toiminta toistaiseksi etätyö-muotoiseksi.

Ensimmäinen yhteinen etätyöviikko lähestyy loppuaan ja näyttäisi siltä, että muutos on meillä ollut yllättävän helppo. Tämä ei ole sattumaa, sillä työtapamme ja viestintäkulttuurimme eivät ole pelkästään etätyömyönteisiä, vaan ne tukevat sitä lähes täydellisesti. Vaikka suurin osa henkilöstöstä tulee yleensä joka päivä toimistolle, on kaikki tärkeä tieto ja materiaali totuttu tallettamaan johonkin digitaaliseen kanavaan, josta myös reissussa oleva työkaveri sen löytää. 

Hyvän tietotyön käytänteinä dokumentointi, pilvipalvelut, versionhallinta ja avoin tiedon jakaminen tekevät myös etätyöstä helpompaa.

Useimmissa asiakasprojekteissa konsulttimme tekevät ohjelmistokehitystä ja koodausta “off-site”, eli asiakkaasta katsoen etänä omalla toimistollamme. Asiakkaan näkökulmasta kotitoimistolta tekeminen ei siis poikkea mitenkään normaalista. Myyntitapaamisista suurin osa on tehty tähänkin asti etänä. Projektit pyörivät sähköisillä kanban-tauluilla ja päivittäiset statuspäivitykset ja kysymykset hoidetaan enimmäkseen pikaviestimillä.

Etätyö ja uudet kokeilut

Joitain uusia kokeilujakin on tehty: kun kaverilta ei voi enää kysäistä vain päätä kääntämällä, ovat jotkut ottaneet käyttöön äänikanavan sisältävän keskustelualustan, jossa voi hengailla vaikka koko ajan. Tällä tavoin työkaverit ovat hyvin saatavilla – eikä kotona työskentelykään tunnu niin etäiseltä.

Eilen pidettiin yhden tuotteen nimisuunnittelupalaveria videochatin ja digitaalisen valkotaulun avulla. Sähköiset post-it-laput läpsyivät taululle ihan samaan tapaan kuin toimistonkin aivoriihissä. Nämä laput vain eivät putoilleet itsekseen seinältä. Ja aivan samalla lailla joku koiranleuka kävi piirtelemässä taululle populaarikulttuuriviittauksiakin.

Toistaiseksi siis työkulttuurimme on osoittautunut hyvin sosiaalista etäännyttämistä sietäväksi ja duunit etenevät normaalisti. Tsemppiä vain kaikille toisille, jotka ahkeroivat kotisorvien äärellä. We can do this!

Aluksi etäarkea pyöritettiin ilman joka-aamuisia tiimipalavereja, mutta sitten ne päätettiin alkaa pitämään videochatissa. Yksi yhteinen tapaaminen päivässä tuntui tärkeältä ja se vahvistaa yhteenkuuluvuuden tunnetta. Kun palaveri pidetään videoyhteydellä, on viestinnässä mukana myös sanaton ulottuvuus: kaverin kasvoilta voi lukea, meneekö viesti perille tai vaivaako mahdollisesti jokin.

P.S. Olemme saaneet palautetta, että (ilmainen) Möllit-pelimme on hyvä tapa saada eristyksessä olevat lapset rauhoittumaan kehittävän tekemisen pariin.

Ketterä ohjelmistokehitys – miten ja miksi?

”Miten ohjelmistokehitys voi olla ketterää ja miten se eroaa perinteisistä kehitysmalleista?”

Erilaiset kehitysprojektit on perinteisesti toteutettu ns. vesiputousmallin mukaan: ensin tuote määritellään, sen jälkeen suunnitellaan, mitä seuraa toteutus ja viimeisenä testaus. Tällainen jäykästi määritelty ja jaoteltu projektin kulku ei jätä juurikaan tilaa muutoksille, joita yleensä jokaisessa projektissa tulee vastaan. Se tekee prosessista helposti hitaan, kalliin ja tehottoman.

Ketterä ohjelmistokehitys taas tarkoittaa käytännössä kehitysmenetelmiä, joissa lopullista tuotetta tai järjestelmää ei määritellä heti projektin alussa, vaan tuote muotoutuu jatkuvasti projektin edetessä, uusien toiveiden ja parannusten noustessa esille.

Niinpä tuotekehitys on ketterillä menetelmillä paljon joustavampaa ja sopeutuvampaa kuin perinteiset, jäykästi vaiheistetut kehitysmenetelmät.

Nykyään katsotaan ketterien metodien hallitsemisen olevan kriittinen osa ohjelmistosuunnittelijan osaamista ja jopa edellytys projektin laadukkaalle ja tehokkaalle toteuttamiselle.

Esimerkiksi ketterän kehittämisen työskentelymallista käy vaikkapa Scrum.

Scrumin tärkeimpiä piirteitä ovat sen sprintit ja backlog. Sprintit tarkoittavat Scrumissa nopeita työjaksoja, joiden aikana pyritään saamaan aikaan jokin valmis tuotos.

Backlog taas on lista, johon listataan kaikki projektin aloitustapaamisessa keksityt toteuttamiseen liittyvät työtehtävät. Projektin eteneminen ja toteutus tapahtuvat sen jälkeen käytännössä niin, että tehtävät poimitaan backlogista tehtäväksi ja projektia viedään eteenpäin sprintin sovitun keston ajan, jonka jälkeen se esitellään ja siitä kerätään palautetta ja toiveita asiakkaalta. Tämän jälkeen backlogia päivitetään ja luodaan uusia tehtäviä ja ne priorisoidaan uudelleen, minkä jälkeen aloitetaan uusi sprintti.

Oiva työkalu Scrum-työskentelyyn on Trello, joka mahdollistaa digitaalisten tehtäväkorttien luomisen projektitaululle, mistä niitä on helppo ja nopea päivittää ja jakaa kullekin tekijälle.

Miten juniori, keskitason ja seniori- ohjelmoijat eroavat?

Ohjelmistokehittäjistä puhuttaessa puhutaan usein junnuista ja senioreista, ulkomailla väliin mahtuu satunnaisesti “intermediate”-tittelikin, ja kaikki ymmärtävät suurinpiirtein, mistä puhutaan. Tässä artikkelissa tutkaillaan miten ohjelmoijat eroavat toisistaan ja edellä mainittuja termejä hieman perusteellisemmin .

Ohjelmistokehittäjien tasoa määritetään ainakin kahdelta suunnalta. Tarjouspyynnöissä se määrittyy useimmiten kokemusvuosina. Kollegoiden ja esimiesten kannalta oleellisempaa on kehittäjien kyky ratkoa ongelmia ja ottaa vastuuta, sekä se, mitkä teknologiat koodari hallitsee. Näin ollen siis, pelkät kokemusvuodet eivät pelkästään määritä kunkin ohjelmoijan tasoa ja titteli voi heijastaa muutakin kuin virkaikää.

Junioritaso/ Junior Developer

Junioritasolla tarkoitetaan yleensä niitä ohjelmoijia, jotka ovat juuri valmistuneet koulusta ja aloittelevat työelämässä. Yksi yleinen määritelmä on, että junioreita ovat ne devaajat, joilla on alle kaksi vuotta kokemusta ohjelmointityöstä.

Kokemusvuosia osuvampi määrittely junioritasolle on se, että “juniorius” linkittyy kokemuksen lisäksi henkilön tapaan ajatella projekteja sekä tehtävien töiden laajuuteen ja niiden suorittamiskykyyn. Juniorille toimiva koodi ja hyvä koodi tarkoittavan yleensä samaa ja työtehtävinä hän kykenee suorittamaan yksinkertaisia projekteja, nojaten tarvittaessa jonkun apuun ja ohjaukseen.

Keskitaso / Intermediate Developer

Keskitason ohjelmoija on yleensä noin 2–5 vuoden kokemuksen omaava tekijä, joka kykenee ottamaan haltuunsa monimutkaisempia tehtäviä ja laaja-alaisempia projektivastuita. Keskitason ohjelmoija kykenee myös ottamaan kokonaisen projektin vastuulleen, mikäli projekti on suhteellisen pieni.

Keskitason ohjelmoijat voivat olla teknisesti hyvinkin taitavia ja kykenevät ratkaisemaan monimutkaisempiakin ongelmia. Suurin ero keskitason ja junioritason tekijän välillä tulee teknisen osaamisen ja ongelmanratkaisutaidon kehittymisen myötä, kun taas keskitason ja seniorin eroksi osoittautuukin useimmiten ajattelumaailman kehittyminen.

Senioritaso/Senior Developer

Senioritason ohjelmoija omaa lähemmäs 10 vuoden ohjelmointikokemuksen. Senioritason ohjelmoija on oppinut hallitsemaan kehityssyklin ja on myös ekspertti omissa teknologioissaan.

Senioritason ohjelmoija kykenee autonomiseen työskentelyyn sekä ottamaan suunnittelu-  ja delegointivastuuta projektista. Seniori kykenee myös toimimaan mentorina keskitason ja junioritason ohjelmoijille. Seniori on ajattelultaan kehittynyt ja ymmärtää, kuinka kasvulle on aina tilaa ja kuinka hyvä sovellus on sekä toimiva että valmis uudelleen käytettäväksi ja kehitettäväksi.

Senioritason ohjelmoija on myös osaava ja tehokas ongelmanratkaisija. Hän ymmärtää, etteivät kaikki ongelmat ratkea heittämällä koodia sitä päin: sen sijaan seniori osaa ratkoa ongelman työskentelemällä yhdessä tiimin kanssa ja katsoo ongelmaa koodin käytön ja uudelleenkäytön näkökulmasta.

Ohjelmoijan osaamisen neljä keskeistä ulottuvuutta

Stevan Popovic listaa ohjelmoijan senioriteetin keskeiset tekijät ansiokkaassa artikkelissaan ”Arcs of Seniority” seuraavasti:

Siinä kun juniorin täytyy tukeutua useammin toisiin ja kysyä neuvoa, seniori pystyy itsenäisempään työskentelyyn.
Juniorin huomio keskittyy pääasiassa omiin tehtäviin, kun taas seniorin työn vaikutuspiiri on laajempi ja hänen täytyy miettiä myös oman työn vaikutusta toisten työhön.
Juniori koodaa pääasiassa yksittäisiä toimintoja. Seniori osaa ajatella koodiansa enemmän arkkitehtuurina ja rakenteina.
Juniorin harteille annetaan vastuuta maltillisesti, mutta kun osaaminen kasvaa, kasvavat myös auktoriteetti ja annetun vastuun määrä.

Arvomme / Kuusi pääarvoamme -Zaibatsu Code of Honor

Brändiuudistuksemme yhteydessä halusimme kiinnittää enemmän huomiota siihen keitä me täällä Zaibatsulla olemme ja siihen, mitkä ovat meidän keskeiset arvomme. 

Keskustelun ja pohdinnan tuloksena arvomme kirjattiin brändikäsikirjaan. Seuraavat kuusi pääarvoamme mielestämme tiivistävät sen, mikä meille on tärkeää ja mikä ohjaa kaikkea tekemistämme. 

Honour / Arvostus

Kaiken työmme ja tapojen, joilla toimimme, tulee heijastaa kunnioitusta toisia kohtaan – samoin kuin heidän oikeuksiaan ja tavoitteitaan kohtaan. Tämän perustana toimii se arvo, jonka asetamme omalle ammattitaidollemme ja maineellemme.  

Integrity / Rehellisyys

Olemme aitoja, läpinäkyviä ja jakavia laajennetun työyhteisömme jäseniä. Tällä tarkoitamme, että toiminnassamme pyrimme aina olemaan rehellisiä, jopa silloin, jos törmäämme ongelmiin. Olemme läpinäkyviä toiminnassamme:  mitä enemmän kumppanimme toiminnastamme näkevät, sen parempi. Jaamme ja vaihdamme myös tietoa ja osaamista yhteistyökumppaniemme kanssa, koska se tiedämme sen olevan tie kohti kasvua, hyviä kumppanuuksia ja osaamisen kasvua. 

Progress / Kehittyminen

Pidämme jatkuvasti silmämme auki, etsien mahdollisuuksia kasvaa ja kehittyä paremmaksi siinä mitä teemme, samalla pyrkien auttamaan muita heidän omilla kasvupoluillaan. 

Tyytyväisyys on kasvun pahin vihollinen, minkä vuoksi emme koskaan jää paikoillemme taputtamaan itseämme selkään vaan etsimme jatkuvasti uusia mahdollisuuksia parantaa osaamistamme. Kuitenkin tiedostamme, että emme voi kasvaa ilman vastavuoroisuutta. Siispä pyrimme myös tukemaan kumppaneitamme heidän omassa kasvussaan. 

Practicality / käytännöllisyys/  #tostanoin

Olemme ratkaisukeskeinen ja hyvin organisoitunut ryhmä osaavia yksilöitä. Näemme sekä esteet että eeppisiksikin koetut haasteet sarjana täysin toteutettavissa olevia tehtäviä. Haasteet ovat hyväksi! Kehitystä ei voi tapahtua, ellemme ole valmis kohtaamaan ja ylittämään uusia esteitä, siksipä pyrimmekin kohtaamaan ongelmat suoraan ja voittamaan ne käytännöllisin ratkaisuin. 

Communication / Kommunikaatio

Yhteisö voi yltää yksilöitään korkeammalle vain ja ainoastaan, jos se jakaa tietoa ja osaamista. Kysymällä tyhmiä kysymyksiä vältämme tekemästä tyhmiä virheitä. Toisin sanoen: kun osaajamme kehittyvät, he eivät haudo uutta tietoa itsellään vaan jakavat sen muillekin, tehden näin yhden henkilön kehittymisestä koko tiimin kehittymistä. 

Fun / Hauskuus

 Lähtökohtana alalle tulemisessa ja siellä pysymisessä on yksinkertaisesti se, että pidämme hauskojen asioiden tekemisestä. Joten meille hauskuus on vakavaa bisnestä.

Kaikilla meistä on ytimessään tausta pelien kanssa. Juuri niiden tuoma hauskuus on meille tärkeää ja on meidät vetänyt alalle. Siispä suhtaudummekin vakavasti siihen, että se, mitä teemme on hauskaa ja että kanssamme työskentely on osa hupia.

Harjoittelun kautta osaajaksi – harjoittelijan journaali

Niko Ollikka opiskelee Jyväskylän Yliopistolla englannin kielen asiantuntijalinjalla. Hänellä on sivuaineinaan markkinointi,  viestintä, johtajuus ja pelitutkimus. Niko suoritti harjoittelun loppuvuonna 2019 ja hän työskenteli Zaibatsu Interactivella markkinoinnin ja viestinnän harjoittelijana.

Harjoittelun sijoittuminen Zaibatsulle 

Päädyin Zaibatsulle harjoitteluun, kun menneenä kesänä tiedostin opintoihini kuuluvan harjoittelun olevan ajankohtaista.  Lyhyen etsinnän jälkeen löysin listan jyväskyläläisistä pelifirmoista ja Zaibatsu nousi sitä kautta vahvasti esille. Muistin myös yliopiston mentorini maininneen Zaibatsun. Päätin laittaa avoimen hakemuksen sähköpostin kautta. Toimitusjohtaja Jussin kanssa kävimme lyhyen sähköpostiviestittelyn, jossa sovimme haastattelusta. Haastattelun jälkeen sainkin jo tiedon voivani aloittaa harjoittelussa Zaibatsulla.   

Harjoittelun aloitus 

Harjoittelun aloitus tietysti jännitti, mutta aikaisempi haastattelu oli antanut hyvän kuvan toimistosta ja yrityksestä. Vastaanotto oli lämmin kaikilta ja ihmiset ovat olleet alusta asti erityisen mukavia ja ovat toivottaneet harjoittelijat tervetulleeksi avoimesti. Kaikki toimistolla ovat myös päivittäin läsnä ja vaihtavat kuulumisia keskenään, mikä luo avoimen ja luontevan tuntuisen ilmapiirin, jossa on ollut ilo työskennellä. 

Ensimmäinen päivä koostui enimmäkseen perehdytyksestä eri tapoihin, viestintäkanaviin ja ihmisiin tutustumista. Pääsin myös pelitestaamaan ja antamaan palautetta. Heti samalla viikolla pääsinkin jo syventymään jo aloitettuihin markkinoinnin toimiin ja edistämään näitä omalla näkemykselläni. 

Oma rooli ja tilaisuudet 

Zaibatsu tarjosi itselleni tilaisuuden päästä tekemään markkinoinnin ja viestinnän tehtäviä. Olen myös valvonut sosiaalisen median kanavia ja suunnitellut niihin päivityksiä. Tehtävät ovat osoittautuneet haastavaksi ja vaihteleviksi ja olenkin pitänyt niistä juuri siksi. Lähes joka päivä on tarjonnut uuden haasteen.  

Markkinoinnin ja viestinnän vastuiden lisäksi sain mahdollisuuden hahmotella hakemuksia sekä suunnitella toimistolle projektityöohjetta. Ilmaisin myös kiinnostusta henkilöstöasioihin ja sainkin osallistua muun muassa työhyvinvointi- ja työtyytyväisyyskyselyiden suunnittelemiseen.

Henkilökohtaisina tavoitteinani harjoittelulle oli päästä soveltamaan saatuja oppeja käytäntöön ja samalla oppia, mitä kaikkea konkreettista kuuluu markkinoinnin ja viestinnän työtehtäviin. Halusin myös heti saada kokemusta IT- ja pelialan yrityksessä työskentelystä ja erilaisista toimintatavoista alaan liittyen. Koen saavuttaneeni tavoitteet ja oppineeni paljon, varsinkin uusista toimenpiteistä. Koen tämän olleen oiva alku omalle työpolulleni ja ainakin näyttäneen itselleni sen, että ala ja työ on itselleni miellyttävää. 

Mitä nyt?

Onnistuneen harjoittelun jälkeen otin joulukuussa pientä taukoa, kunnes sovimme jälleen tapaamisen toimistolla. Nyt helmikuusta lähtien olen työskennellyt osa-aikaisesti Zaibatsun myynti-markkinointi-tiimin jäsenenä. Voin siis todeta harjoittelun olleen parempi kuin olisin ikinä uskaltanut odottaa. Nyt katse on vahvasti nykyhetken työnkuvissa sekä tulevaisuuden mukana tuomissa työn uusissa haasteissa.