Internet-TV

http://www.niksula.cs.hut.fi/projects/ohtace/documents/laatu/laatu.html
CVS info: $Id: laatu.html,v 1.5 1996/11/26 09:44:36 tsalste Exp $


Laatu

Tämä dokumentti käsittelee ohjelmatyön laatua.

Periaatteet

Ohjelmatyöryhmä pyrkii työssään mahdollisimman korkeaan laatuun. Laatuun ei pyritä minkään tietyn ismin tai iskusanan voimalla, sillä pelkkien iskusanojen hokeminen on vain tyhjien tynnyreiden kolinaa niiden vieriessä rotkoa kohti.

Laatuoppeja ei kuitenkaan pidä kokonaan hylätä, vaan ottaa niistä parhaat ominaisuudet ja soveltaa. TQM (Total Quality Management) -opin mukaisesti laatua mittaavat ohjelmatyön asiakkaat. Laatua kohotetaan päämääränä nolla virhettä. Laatua pyritään parantamaan Kaizen-menetelmällä, eli jatkuvin parannuksin tapahtuvalla työllä. TQM:n mukaisesti laatuajattelu läpäisee koko ohjelmatyön kokonaisvaltaisesti, ja ryhmän jokainen jäsen vastaa osaltaan laadusta. Esikuva-analyysin (benchmarking) periaatteiden mukaisesti laatua pyritään myös parantamaan vertailemalla sitä muiden vastaavien töiden ominaisuuksiin, ja etsimällä näistä ideoita työn laadun kohottamiseen.

Mutta kuten sanottu, tärkeitä eivät ole luetellut taikasanat, vaan noudatettu käytäntö.

Asiakkaat

Ohjelmatyön asiakkaita ovat:
  1. Ohjaaja Jorma Rinkinen
  2. Kurssin henkilökunta
  3. Loppukäyttäjät
  4. Ohjelmatyöryhmä itse

Laadun lajit

Ensimmäisenä mieleen tuleva laadun laji on lopputuotteen laatu, eli työssä valmistettavan tietokoneohjelman laatu. Toinen laadun laji on prosessin laatu, eli kurssin kuluessa tapahtuvien suoritusten, organisoinnin jne. laatu. Prosessin laatu vaikutaa voimakkaasti lopputuotteen laatuun.

Kolmas, ainoastaan ohjelmatyöryhmää koskettava laatulaji on kurssimenestys.

Asiakkaat ja laatu

Ohjaaja Jorma Rinkinen

Ohjaajaa kiinnostaa sekä lopputuote että myöskin prosessi.

Lopputuote: ohjaajaa kiinnostanevat erityisesti ohjelman jatkokehitysmahdollisuudet.

Prosessi: Ohjaajanamme Jorman hänen tehtävänsä on ohjata ryhmää. Jotta hän voisi tässä tehtävässään menestyä, hän haluaa pysyä selvillä prosessin etenemisestä.

Laatumittarit

Prosessin laadusta Jormalle kertovat dokumentit (sekä keskeneräiset että palautetut), katselmukset, demot, ryhmäkokoukset sekä muu yhteydenpito.

Jormalla on ilmiselvää kiinnostua aihepiiriimme, ja häntä varmasti kiinnostavat myös työn monet tekniset yksityiskohdat.

Kurssin henkilökunta

Kurssin henkilökunta on etupäässä kiinnostunut ohjelmatyöprosessista.

Laatumittarit

Prosessin laadusta henkilökunnalle kertovat palautettavat dokumentit, katselmukset ja demot.

Henkilökunta arvostelee dokumentit. Tässä tuskin on niinkään tärkeää itse dokumentin tekninen asiasisältö, vaan vaadittujen sisältökohtien täyttäminen. Varmaankin yhtenä perusteena on se, kuinka perusteellisesti ryhmä vaikuttaa perehtyneen asiaan ja tehneen työtä prosessin hyväksi.

Katselmuksissa lienee henkilökunnan pääpaino saada jonkinlainen kuva siitä, miten projekti on edennyt ja minne se on menossa.

Demot ovat jonkinlainen merkki siitä, että prosessissa on saatu jotain aikaankin. Ne ovat tilanteita, joissa henkilökunta saa käsityksen siitä, kuinka ohjelmaprosessi johtaa lopputuotteeseen, itse ohjelmaan.

Loppukäyttäjät

Loppukäyttäjä on kiinnostunut lopputuotteen laadusta. Häntä ei juuri kiinnosta se prosessi, jolla ohjelmaa tuotetaan.

Ohjelmatyöryhmä

Ohjelmatyöryhmän tapaus on mielenkiintoinen. Ryhmä on itse kiinnostunut paitsi lopputuotteesta, myöskin itse prosessista, sekä tietenkin saatavasta arvosanasta.

Laatumittarit

Kaikki, mitä ohjelmatyöryhmä tekee, vaikuttaa prosessin laatuun. Tätä voidaan mitata ryhmähengellä, työn edistymisellä, mielekkyydellä ja muillakin projektin sisäisillä mittareilla.

Lopputuotteen laatua mitataan melko samoin kuin loppukäyttäjä sen tekee. Ohjelmatyöryhmää ei kuitenkaan kiinnosta pelkästään se, miten yksittäinen loppukäyttäjä kokee laadun, vaan kuinka loppukäyttäjät sen yhdessä kokevat.

Arvosana on eräs mittari työprosessin laadulle. Se ei kuitenkaan mittaa prosessin laatua suoraan, vaan kurssin henkilökunnan ja ohjaajan kokeman laadun kautta.

Tavoiteltavat laatuominaisuudet

Tuotettavan ohjelman laadusta on olemassa erillinen dokumentti. Seuraavassa tarkastellaan lähemmin prosessin laatuominaisuuksia.

Ominaisuudet

1. Edistyvyys

Aikataulunmukaisuus
Keinot aikataulussa pysymiseksi:
  1. Vältetään viimeisenä iltana kiireessä tehtyä työtä
  2. Pidetään aikatauluista kiinni
  3. Tiukennetaan aikatauluja itse: määräaikoja aikaistetaan viikolla, jotta saadaan lisää pelivaraa
Suunnitelmanmukaisuus Yhteistyö
Yhteistyökeinot:
  1. Koska ryhmäläiset lukevat sähköpostiaan päivittäin, pääosa kommunikoinnista tapahtuu tätä kautta
  2. Ryhmätapaamiset käyttöliittymäryhmän kanssa
  3. Ryhmätapaamiset ohjaajan kanssa projektin eri vaiheiden aikana ja viimeistään noin viikkoa ennen palautusten määräaikaa

2. Hallittavuus

Dokumentointi
Keinot dokumentoinnin toteuttamiseksi:
  1. Ohjelmatyöstä tuotetaan kattava dokumenttikanta, joka auttaa projektin hallitsemisessa. Dokumenttikanta tuotetaan pääosin ohjelmatyökurssin dokumentointivaatimuksia noudattaen ja sitä jossain määrin lisäten.
  2. Ohjelmatyöstä dokumentoidaan sekä tekniset ominaisuudet että prosessin eteneminen, kuten kokousten päätökset kokousmuistioin
  3. Dokumentointi suoritetaan jossain määrin laajemmin kuin ohjelmatyökurssin ohjeet vaativat (laajennuksina ainakin kokousmuistiot, laatudokumentit). Tärkeintä ei kuitenkaan ole dokumentointi dokumentoinnin vuoksi, vaan sen vuoksi, että asioihin voitaisiin myöhemmin palata.
  4. Ohjelmakoodin dokumentoidaan koodiin kirjoitettavin kommentein. Kommentit kerätään ohjelmallisesti (cxref) omaan WWW-pohjaiseen kantaansa, josta niitä voi jälkeenpäin selailla. Kommentoinnista lisää Ohjelman laatu -dokumentissa.
  5. Kukin ryhmän jäsen dokumentoi omaan vastuualueensa itse. Työnjakona ei ole, että yksi tekee, toinen selittelee.

3. Mielekkyys

Ryhmähenki
Keinot ryhmähengen ylläpitämiseksi:
  1. Ryhmä keskustelee asioista suoraan ja avoimesti
Sitoutuminen

Menetelmät

Laadun varmistaminen on usein mielletty jossain määrin byrokraattiseksi toiminnaksi, mitä se eittämättä joskus onkin. Ohjelmiston laadunvarmistukseen kuuluu testausta, lomakkeiden täyttöä, laatukatselmuksia, ... Näiden toimenpiteiden suorittaminen on kuitenkin askel siihen, että laadun varmistaminen on hallinnassa.

Koska käytännön ohjelmankehityksessä tuskin koskaan päästään kerralla virheettömään ohjelmaan, on virheiden poistamiseksi tehtävä testausta. Testausta suorittavat kaikki ryhmän jäsenet omalta osaltaan testaussuunnitelman mukaisesti. Testauksessa löydetyt virheet kirjataan ohjelmatyökurssin WWW-pohjaiselle virheilmoituslomakkeelle, jonka mukaan virheellisestä toiminnosta vastaava henkilö virheen korjaa ja kirjaa korjauksen suoritetuksi.

Ohjelmatyön kuluessa järjestetään kolmenlaisia laadunvalvontatapahtumia: ohjelmatestejä, käyttötestejä, ja koodikatselmuksia.

Ohjelmatestit

Ohjelmatestit ovat luonteeltaan yksikkö- ja integraatiotestejä, joilla testataan tietyn aliohjelman, moduulin, olion tai näiden muodostaman kokonaisuuden toimintaa. Tämän suorittaa kyseisestä ohjelman osasta vastuussa oleva henkilö, joka myös vastaa testauksesta.

Ohjelmatestaus on testausta, jonka lopputulokset näkyvät käyttäjälle vähentyneinä virhetilanteina ja nopeutuneena toimintana.

Käyttötestit

Käyttötestit ovat luonteeltaan järjestelmätestejä. Niillä testataan ohjelman loppukäyttäjälle näkyvää toimintaa. Testattavia asioita ovat käyttöliittymän toiminta, virhetilanteet, vahingossa toteuttamattomiksi jääneiden ominaisuuksien etsintä ja käyttäjälle näkyvä suorituskyky.

Käyttötesteistä vastuu jaetaan ryhmän sisällä siten, että testauksesta vastaa ja sen suorittaa joku muu kuin toiminnon toteuttaja. Tämä sen vuoksi, että toteuttaja tulee usein sokeaksi omille toteutustavoilleen, eikä ehkä huomaa, että esimerkiksi käyttöliittymän nappeja voi painaa toisessakin järjestyksessä kuin ohjelmoija on suunnitellut.

Käyttöliittymän testauksesta huolehtii käyttöliittymäryhmä. Ohjelmatyöryhmän vastuulle jää käyttöliittymän testauksen osalta ainoastaan ohjelmaa käytettäessä syntyvien virhetilanteiden havaitseminen ja korjaus. Käyttöliittymäryhmä vastaa siitä, että ohjelma on mm. helppokäyttöinen ja käyttöliittymältään yhdenmukainen.

Koodikatselmukset

Koodikatselmus on tilaisuus, jonne koko ryhmän voimin kokoonnutaan tutkimaan kirjoitettua koodia. Koodista keskustelemalla pyritään löytämään piileviä virheitä, epäjohdonmukaisuuksia ja suorituskyvyllisiä seikkoja, joita ei testaamalla ehkä saataisi esiin. Piileviä virheitä voivat olla esimerkiksi satunnaisesti taikka hyvin harvoin esiintyvät virheet, taikka sellaiset virheet, jotka sattuvat vain jollain tietyllä syötteen arvolla ja jota syötettä ei testitilanteessa satuta käyttämään.

Testauksen riittävyys

Testaus on ollut onnistunutta silloin, kun siinä löydetään virheitä. Riittävää se on sitten, kun kohtuullisella työmäärällä ei enää löydetä yhtään ainoata virhettä.

Huomiota kiinnitetään siihen, että kerran löydetyn virheen korjausta testataan erityisen huolellisesti. Tämä sen vuoksi, että monesti yhden virheen korjaus tuo esiin lukuisia uusia virheitä.

Ohjelma voidaan julkistaa vasta, kun kaikki löydetyt virheet on korjattu ja korjausten toimivuus tarkistettu.

Organisointi

Ohjelmatyöryhmä on nimittänyt keskuudestaan laatuvastaavan (Tuomas), jonka tehtävänä on suunnitella laatuprosessi ja valvoa, että projektiryhmä noudattaa annettua käytäntöä.

Tilanne

Laatutilanne on marraskuun lopussa seuraava:

  1. Edistyvyys: Aikataulussa on pysytty rimaa hipoen. Tuntuu siltä, että työt saadaan kunnolla vasta käyntiin noin viikkoa ennen määräaikaa. Määräaikojen sisäisestä tiukentamisesta on lipsuttu mm. sairaslomien ja opiskelu- ja työkiireiden takia.
  2. Suunnitelmanmukaisuus: Tässä on pysytty aika hyvin kaikilta muilta osin paitsi aikataulusuunnitelmien suhteen.
  3. Yhteistyö: Yhteistyö on parantunut sekä ryhmän sisällä että käyttöliittymäryhmän suuntaan.
  4. Hallittavuus: Ohjelmatyö dokumentteineen on melko hyvin hallinnassa.
  5. Mielekkyys: Ryhmähenki on säilynyt hyvänä, ja jäsenten sitoutuminen myös. Jonkin verran mielekkyyttä vähentää ainainen kiire.
  6. Lopputuotteen eli ohjelmiston laadusta on vaikea sanoa vielä mitään, koska ohjelmointityö on vasta alussa. Noudatettavista toimintatavoista on kuitenkin päästy yhteisymmärrykseen, jolloin on hyvät mahdollisuudet tuottaa myös korkealaatuinen lopputulos.

Korjaustoimenpiteet

Selvä ongelma, ohjelmatyön vaatiman suuren työmäärän sovittaminen muihin vaateisiin, kuten muut opinnot ja ansiotyö, odottaa ratkaisuaan. Mahdollisista ratkaisuista on ryhdyttävä keskustelemaan avoimesti. Vaihtoehtoja ovat mm.
  1. Tavoitteiden laskeminen ominaisuuksien osalta: ohjelman ominaisuuksia karsitaan vähiten merkityksellisestä päästä.
  2. Tavoitteiden laskeminen kurssiarvosanan osalta: ohjelman toiminnoista ja laatutavoitteista ei tingitä, mutta prosessin laadun asiakkaalle ja kurssijohdolle näkyvistä indikaattoreista tingitään jonkin verran vähentämällä dokumentointia, palavereja ja muuta byrokratiaa. Tämä aiheuttaa osaltaan prosessin laadun laskua, mikä voi näkyä lopputuotteessa asti.
  3. Laatutavoitteiden laskeminen: runnotaan ohjelmatyö läpi kaikki toiminnot toteuttaen tinkimällä mm. testauksesta ja virheiden korjaamisesta.
  4. Muiden opintojen kärsiminen ja karsiminen
  5. Ansiotyönteon vähentäminen
  6. Hurskas uskominen siihen, että työmäärä ei olekaan niin suuri kuin on arvioitu.
Laatuvastaavana oma ehdotukseni on vaihtoehto yksi. Tällöin ohjelman perustoiminnot toteutettaisiin (ohjelmien katselu) edelleen mahdollisimman hyvin, mutta ominaisuuksista tingittäisiin (säädöt, käyttöliittymä) sen verran, että projekti saadaan valmistumaan aikataulunmukaisesti. Tällöin tavoitteena olisi luotettava ja hyvin hallittu Internet-TV, jota voitaisiin helposti jatkokehittää vaikkapa ensi vuoden ohjelmatyökurssilla.
Dokumentin laati: Tuomas Salste
Viimeksi päivitetty: 25.11.96

Ohjelmatyön pääsivu

Ohjelmatyöryhmän osoite: ohtace@tcm.hut.fi
Käyttöliittymäryhmän osoite: lysm@cs.hut.fi