Skip to content

Workload estimation - työkuorman arviointi

Kuvauksen kirjoitti: Joonas Niinimäki, M3268.

Lyhyt kuvaus käsitteestä tai aiheesta

Johdanto

Workload eli työkuorma tarkoittaa arvioitua työn määrästä ja käytettävien resurssien kulusta aiheutuvaa hintaa. Toisin sanoen työkuormalla pyritään arvioimaan kuinka kauan aikaa jonkin ominaisuuden, elementin tai muun tuottamiseen kuluu, tai ohjelmallisesti kuinka paljon tietokoneen resursseja jokin ominaisuus tai toteutustapa kuluttaa, esimerkiksi kuinka paljon multithreading vapauttaa tietokoneen resursseja tai syö suorituskykyä toteutuksessa.

Työkuorma projektimanageroinnissa

Projektiryhmän työskentelyssä työkuormalla viitataan erityisesti projekin ajankäyttöön, managerointiin, työnkulkuun, työnrakenteita ja tuotettuja tuloksia annetussa ajassa. Ajankäytön arviointi voi olla usein todella haasteellinen tehtävä ja se voi pahimmillaan aiheuttaa töiden kasautumista, sovitun aikataulun hajoamista, kaaosta ja epäjärjestystä.

Ongelmia voi tuottaa esimerkiksi se, että projektin ominaisuuksien tuottamiselle ei ole annettu liikkumatilaa, eikä komplikaatioita projektin tuotannossa olla osattu ottaa huomioon laisinkaan. Mikäli aikataulu on joustamaton ja projektin koko elämänkaari on huonosti suunniteltu, voi seuraukset olla katastrofaalisia. Toinen ongelma on usein kysyjällä ja kysymysasettelulla. Mitä tarkoittaa arvioitu työkuorma tai se kun jokin ominaisuus on tuotantoon viemiseksi valmis?

Tästä syystä on tärkeää huomioida myös epäonnistumiset, esteet, poikkeukset tai muut muuttujat. Tämä voidaan toteuttaa esimerkiksi huomioimalla vähimmäistä työkuorman määrää, sekä absoluuttista deadline aikaa. Tämä täytyy kuitenkin myös toteuttaa relatiivisesti riippuen siitä, mitkä asiat ovat projektin kannalta ehdottoman kriittisiä, ja missä asioissa voidaan tarvittaessa joustaa ja alas-skaalata tarpeen mukaan.

Ohjelmoinnin työkuorma

Ohjelmistonkehityksessä työkuormalla on hieman erilainen merkitys kuin hallintopuolella. Ohjelmistonkehityksessä terminologia tarkoittaa sitä suorituskyvyn hintaa tietokoneelle, jonka jokin ominaisuus, elementti, teknologia tai toteutustapa aiheuttaa. Esimerkiksi miten paljon työkuormaa aiheuttaa kovakoodattu muistinvaraus verrattuna dynaamiseen muistinvaraukseen ja millaisessa tilanteessa yksi ratkaisutapa voi olla työkuorman kannalta parempi vaihtoehto kuin toinen?

Ohjelmiston tasolla työkuormaa on helpompi ja nopeampi arvioida kuin hallinnollisella puolella, sillä projektissa on usein käytössä hyvin tietyt resurssit jo valmiiksi (esimerkiksi talon sisäiset ohjelmistökehykset ja palvelimet), niille usein löytyy jonkinlaisia raudan – ja ohjelmistoversioiden minimi-vaatimus dokumentteja, sekä käyttöön tuodessa resurssien kulutusta voidaan suoraan tutkia tietokoneen diagnostiikkatyökalujen avulla.

Ihan vaivatonta työkuorman arviointi ei kuitenkaan aina ole ohjelmoinnissakaan. Jokin teknologia tai ratkaisutapa saattaa vaikuttaa käyttöönottovaiheessa hyvältä ratkaisulta, mutta odottamattomasti myöhemmässä ohjelmistotuotannon vaiheessa se saattaakin osoittautua työkuormaa kuormittavaksi ja raskaaksi komponentiksi. Tällöin on uudelleen arvioitava miten paljon kyseinen komponentti aiheuttaa työkuormaa koko projektin näkökulmasta, sekä mitkä ovat käytettävissä olevien resurssien määrä (aika, raha, muut). Esimerkki voisi vaikka pelikehityksessä olla sovellukseen sopeutumaton pelimoottori. Tilanteesta riippuen ongelmia tuottavan komponentin kanssa joutuu opetella sietämään sen lisäävää työkuormaa tai ideaalisesti se voidaan korvata vaihtoehtoisella teknologialla vaivattomasti. Tästä syystä myös ohjelmoinnissa ohjelmiston joustavuutta, mukautuvuutta ja pitkäjänteisyyttä on jo hyvä ajatella kehitysvaiheen aikana.

Muuta aiheeseen liittyvää

  • Millainen on hyvin suunniteltu aikataulu?
  • Mitä työkuorma tarkoittaa manageroinnissa?
  • Mitä työkuorma tarkoittaa ohjelmoinnissa?
  • Millainen vaikutus työkuormalla on projektille?
  • Mitä keinoja työkuorman manipulointiin on?

Linkit ulkopuolisiin lähteisiin

Avainsanat harjoitustehtävän repositoriossa