Skip to content

Henkilökohtainen oppimisraportti

Aluksi

Tavoitteeni / kiinnostukseni

Pidän lähtökohtaisesti tätä kurssia tärkeänä, koska se antaa minulle valmiuksia työelämään. Saan kokemusta ja taitoja prosessin hallinnasta, prosessin eri vaiheista. Saan kurssin aikana käsityksen myös siitä, mitä ongelmia voi aiheutua jos prosessin eri vaiheita laiminlyö tai jättää tekemättä. Tavoitteeni on saada kurssista kiitettävä arvosana. Tavoitteenani on myös oppia koodaamaan paremmin ja monipuolisemmin. Kurssilta odotan myös saavani paremman käsityksen ohjelmistotestaamisen eri välineistä.

Taustani / aikaisempi osaamiseni (vertaa osaamistasi opintojakson osaamis-tavoitteisiin)

Kurssikuvaus

Kurssin aikana opiskelija osallistuu ryhmätyöskentelyn muodossa ohjelmistoprojektiin. Toimeksianto tulee ulkopuoliselta asiakkaalta. Opiskelija toimii projektin aikana tarvittaessa eri tehtävissä/rooleissa, kuten esimerkkeinä projektipäällikön, ohjelmoijan, testaajan tai dokumentoijan roolit. Projektin aikana ryhmä käy läpi pienen ohjelmistoprojektin elinkaaren, alkaen asiakastarpeen tunnistamisesta, jatkuen toteutuksesta testaukseen ja päättyen lopulta tuotteen luovuttamiseen asiakkaalle. Projektiryhmä tuottaa työskentelyn aikana tarvittavat projektidokumentit, joista esimerkkeinä projektisuunnitelma, vaatimusmäärittely ja testaussuunnitelma.

omaa pohdintaa

Minulla on paljon kokemusta työryhmätyöskentelystä ja asiakasyhteistyöstä jo ennestään aiemman ammattini kautta. Tältä alalta kokemusta ei vielä ole. Pystyn sopeutumaan erilaisiin rooleihin ryhmätyöskentelyssä ja tunnen erilaisia prosessin vaiheita. Ohjelmistoprojekti on kuitenkin uusi kokemus
dokumentaatiosta ohjelmiston testaamiseen, joten paljon on oppittavaa.

Haasteeni / projektityöni

Projekti sisältää ison määrän pieniä osa-alueita, jotka pitää pystyä hoitamaan. Olen henkilönä järjestelmällinen ja "sekamelska" prosessissa tuntuu ahdistavalta. Haluankin oppia jäsentämään ohjelmistoprojektin aikana vaadittavia osa-alueita oikealla tavalla ja saada kokonaisuuden haltuun. Tämä on tärkeä asia itselleni tulevan työnikin kannalta. Ongelma tullee ratkaistua kurssin aikana, kun pääsin ryhmänjohtajan rooliin, jossa joudun väkisinkin opettelemaan asioiden priorisointia, aikataulutusta ja jäsentelyä ylipäätään.

Oppimispäiväkirja

Alkuvaihe

Jakaudutaan projektiryhmiin ja tutkaillaan, minkälainen tekijä minä olen ryhmässä. Testin mukaan olen tiimipeluri, mikä ei sinänsä yllätä minua. Ryhmäjako vaikutti heti hyvältä ja roolit olivat helppo jakaa. Olen tyytyväinen päästessäni ryhmänjohtajan rooliin.

Itse projektin alku tuntuu olevan valtavan kokoinen. Hirveä määrä dokumentteja ja projektin vaiheita ja issueita. Alkuvaiheessa pyrkii tekemään kaikki ohjeiden mukaisesti, mutta mielessä käy, kuinka iso osa asioista on tärkeitä projektin kannalta.

Sprint 1 ja 2

Heti aluksi opittiin käyttämään Gitlabin issue boardia. Opin heti sen, että joka asiasta täytyy tehdä issue, jos sen haluaa muistaa vielä seuraavalla viikolla. Muistettavia asioita on niin valtava määrä, että ne eivät pysy päässä mitenkään. Gitlab oli ennestään jo hyväksi havaittu työväline, mutta on mielenkiintoista käyttää sitä projektin hallinnan työvälineenä, johon se näemmä myös sopii erittäin hyvin.

Mukavaa ollut huomata, että ryhmä toimii hyvin jo heti alkuvaiheessa, työnjako on ollut helppoa ja kaikki ovat tehneet osansa.

Sprint 3

Projekti etenee hyvällä vauhdilla. Vaatimusmäärittelyä aloitettu ja dokumentteja päivitetty. Nettisivukin lähestyy valmista. Työnjako on ollut helppoa dokumentteja tehdessä. Nettisivun työstövaiheessa mieleeni tuli ajatus siitä, miten tärkeää on miettiä tarkasti työnjakoa. Aloitin itse nettisivun pohjaa, josta ryhmän toiset jäsenet jaktoivat. Ei voi puhua sinänsä ogelmasta, mutta nettisivun suunnitelma muuttui tekovaiheen aikana, joten oma nettisivupohjani ei tullut käyttöön lopulliseen tuotokseen. Jos olisimme suunnitelleet huolellisesti ja sopineet, kuka tekee minkäkin osan nettisivusta, kaikki olisivat saaneet oman kädenjälkensä tuotokseen. Lopputulos oli kuitenkin hyvä ja kyse oli vain nettisivusta. Tästä voi heti kuitenkin ottaa opiksi, kun jaetaan osuuksia koodaamisvaiheessa.

Sprint 4

Vaatimusmäärittelytyö on hyvässä vaiheessa ja projekti etenee vauhdilla. Ryhmä tekee tunnollisesti töitä ja tulos näyttää hyvältä. Hienoa huomata, että työnjakoon voi luottaa, ryhmä tekee omat osuutensa hyvin ja tehokkaasti. Työn määrä tuntuu valtavalta hetkittäin, tällä viikolla työpäivämme oli jo tiistaina, mikä aiheutti pieniä ongelmia. Issue board ei ollut päivitetty vielä kun aloimme jo tehtä työtä eteenpäin. Hieman epäselvää oli hetkittäin, mitä meiltä odotetaan tässä vaiheessa. Olemme kuitenkin aikataulussa mikä riittää itselleni tässä vaiheessa.

Sprint 6

Asiat tuntuvat olevan kohdallaan. Vaatimusmäärittely valmistuu vähitellen. Dokumentteja on paljon ja niiden olisi tarkoitus palvella tekijäänsä. Välillä turhauttaa ja sitä miettii, että miksi sitä pitää tehdä niin perusteellisesti kaikki suunnitelmat. Tuntuu, että samaa asiaa pyöritetään usealla eri tavalla ja epäilyttää, onko puolillakaan merkitystä kun alkaa koodaamaan. Totta kai on hyödyllistä selvittää, mitä tilaaja haluaa, suunnitella huolella, jotta ei tee turhaa työtä. Ehkäpä suunnittelu kytee sitten alitajunnassa ja auttaa siinä kohtaa, kun ohjelmaa aletaan tehdä.

Sprint 7

Koodaamisen aloitus. Viimein vaatimusmäärittely on valmis ja päästään koodin pariin. Koodin aloitus vaikuttaa helpolta, mutta heti huomaa, että henkilötietojen tallentamisen puute tulee aiheuttamaan ongelmia. Kekseihin tallentaminen on vähän köykäinen ratkaisu, mutta toivottavasti se toimii riittävän hyvin.

Projekti etenee kohti loppua

Koodaaminen alkoi edetä vauhdilla ja ominaisuuksia saadaan lisättyä. Opin paljon koodiprojektin kokonaishallinnasta. Otimme käyttöön GitKrakenin, joka osoittautui hyväksi työkaluksi, kun työskentelemme eri osa-alueiden kanssa kaikki yhtä aikaa. Koodaaminen ollut vaivatonta ja kukin kantaa kortensa kekoon. Töitä on tietysti tehtävä paljon, jotta homma tulee valmiiksi.

Ongelmia on aiheuttanut ainoastaan se, että ryhmän kaikkia jäseniä on ollut vaikea saada paikalle yhtä aikaa. Tämä on tarkoittanut sitä, että esimerkiksi Robot Framework on jäänyt tutustumatta ja jokaisen täytyy hoitaa tämä nyt itsenäisesti kun vastaava henkilö on poissa pelistä.

Ryhmämme on tehnyt kovasti hommia ja koodi alkaa näyttää viimein hyvältä. Joutunemme silti tekemään kompromisseja eri ominaisuuksien kanssa ajan puutteen vuoksi. Matkan suunnittelu -osuus jäänee tekemättä tässä vaiheessa. Muuten ohjelma näyttää hyvältä ja toimii. Työ jatkuu edelleen. Kevään edetessä kaikkien kurssien deadlinet lyövät päälle ja stressitaso kasvaa, muttei kuitenkaan sietämättömäksi.

Testaaminen

Testaamiseen on ollut hetkittäin vaikeaa paneutua kaiken muun työn ohella. Koodin kirjoitusta on paljon, joten tuntuu miltei turhauttavalta alkaa miettiä testauspuolen asioita. Testlink työkaluna on ehkä turhan monimutkainen käyttöön, jokainen ominaisuus on usean klikkauksen takana ennen kuin oikea löytyy. Toisaalta Testlinkin idea on selkeä: kirjoitetaan testien jokainen vaihe ylös, testejä voidaan luokitella, ajetut testit voidaan kirjata. Jos unohtaa monimutkaisen käyttöliittymän, Testlink on kätevä työkalu. Se antaa myös suoraan raportit ulos tehdyistä testeistä.

Kuten aiemmin mainittua, Robot Framework vastaava hävisi projektista jossain vaiheessa. Aluksi hermostutti se, että työt lisääntyivät kaikille muille tämän takia. Toisaalta näin jälkikäteen arvioiden, oli hyvä joutua itse pähkäilemään robotin parissa, sillä nyt minulla on siitä selkeä kuva, miten se toimii. Itse pidin tästä työkalusta paljon. Suuren osan perustesteistä voi ajaa sillä, mikä vähentää työkuormaa henkilöiltä. Se mahdollistaa myös esimerkiksi kurmitustestaamisen, mikä on haastavaa pienellä ryhmällä testaajia.

Lopuksi

Pohdintaa oppimisestani

Kurssi oli monipuolinen ja työntäyteinen. Tavoitteeni olivat realistiset suhteessa kurssin antiin. Sain käsityksen ohjelmistotuotannon prosessiluonteesta ja prosessin eri vaiheista. Vaatimusmäärittely saatiin tehtyä mukavasti, vaikka toisinaan tuntui todella sekavalta, että mitä pitää tehdä ja milloin. Ehkä juuri kymmenet issuet sotkivat kokonaiskuvaa työstä. Olisimme voineet ryhmänä suunnitella omaa työtämme itsenäisemmin, eikä seurata issueita orjallisesti, koska meillä oli hyvä ryhmä, joka olisi pystynyt tähän. Vaatimusmäärittely tuli kuitenkin tehtyä ja siitä oli hyötyä myöhemmissä vaiheissa. Kokonaisuuden hahmottaminen auttoi kuitenkin "sekamelskan" hallinnassa, eikä työ tuntunut erityisen painostavalta missään vaiheessa.

Itse ohjelman tekeminen oli "helppo" vaihe tätä prosessia. Työnjako sujui helposti ja kaikki pääsivät osallistumaan. Jokaisella oli oma vastuualue ja ryhmään pystyi luottamaan. Pysyimme hyvin aikataulussa ja olen tyytyväinen lopputulokseen. Ryhmän kaikki jäsenet eivät osallistuneet tekemiseen enää kurssin loppupuoliskolla, tämä lienee ainut asia, johon en ollut niin tyytyväinen. Ryhmänjohtajana pyrin pitämään kaikki mukana loppuun asti ja asiasta keskusteltiin. Tämä ei tuottanut toivottua tulosta, joten tyydyimme ilmoittamaan kurssin opettajalle asiasta ja teimme projektin loppuun kokoonpanolla, joka saapui paikalle. Ryhmän johtajan ominaisuudessa koen, etten asialle olisi pystynyt muuta tekemään, joten olen kuitenkin tyytyväinen asian hoitamiseen.

Saavutin mielestäni hyvin kurssin oppimistavoitteet. Sain kokemusta ryhmänjohtajuudesta ja prosessinhallinnasta. Haastavistakin tilanteista selvittiin mielestäni hyvin keskustelevalla asenteella. Tästä kurssista on minulle paljon hyötyä tulevaa työuraani ajatellen. Voin nähdä itseni vastaavanlaisessa työtehtävässä tulevaisuudessa. Huomasin, että minun tyylini tehdä töitä on jo lähtökohtaisesti sellainen, että pidän siitä, kun olen kokonaisuutta ajatellen tilanteen tasalla. Tämä piirre oli eduksi ryhmänjohtajan tehtävissä.

Sain kokemusta myös koodaamisesta. Pääsin toteuttamaan ryhmän ohella lopputuotetta ja opin paljon uutta tehdessäni. Osaamiseni Reactista lisääntyi ja opin kokonaan uuden työvälineen (GitKraken) käytön, joka osoittautui hyödylliseksi. Uutena välineenä opin myös Robot Frameworkista paljon. Omasta mielestäni se on työvälineenä erinomainen, kun aletaan testaamaan koodattua ohjelmaa.

Verrattuna kurssin oppimistavoitteisiin ja omiin tavoitteisiini, kummatkin täyttyivät kurssin aikana. Töitä kurssin eteen tehtiin paljon ja haluttiin hioa paras mahdollinen tulos. Arvosanaehdotukseni kurssista on 5.

Kehitysideana kurssille ajattelin mainita seuraavaa. Vaatimusmäärittelyvaiheessa pyöritellään kymmeniä ja kymmeniä issueita. Työvälineenä issue board on erittäin hyvä, mutta ehkä sen käytössä voisi korostaa opiskelijoiden omaa aktiivisuutta. Isoihin linjoihin ohjaten (sprintit) voisi olla issueita valmiina: tiedetään suurin piirtein mitä pitää milloinkin olla tehtynä. Muuten työn suunnittelu voisi olla opiskelijaryhmien hallussa: Ryhmät suunnittelisivat itse omaan työhönsä sopivia issueita, aikatauluja, työrytmiä. Kurssi olisi täten mielestäni selkeämpi ja lopputulos yhtä hyvä. Tämä vaatii tietenkin ryhmältä sellaista työotetta, jossa ollaan aktiivisia ja innostuneita työstä.