Tik-76.115 Loppuraportti

Internet-televisio

http://http://www.niksula.cs.hut.fi/projects/ohtace/documents/lr.html
CVS Info: $Id: lr.html,v 1.14 1997/04/30 07:18:18 mtuisku Exp $


Sisällysluettelo

1. Johdanto
2. Projektin eteneminen
3. Lopputulokset
4. Projektityöskentely
5. Jälkilaskelmat
6. Kurssipalaute
7. Jälkihoito ja ehdotuksia jatkosuunnitelmiksi

1. Johdanto

Projektin tavoitteena oli tuottaa IP-multicast-lähetysten vastaanottoon kykenevä asiakkaan ohjelma, joka sisältää graafisen käyttöliittymän, kanavien valinnan, sekä audio-video -vastaanottimen, jossa mediat on synkronoitu mahdollisimman häiriöttömästi ja reaaliaikaisesti yhteen.

Projektin osatavoitteina oli ensin jalostaa alkuperäisiä ohjelmia, Sdr, Vic ja Vat, ja toteuttaa niiden tukemat audio- ja videoprotokollat sekä myöhemmin lisätä MPEG-vastaanottomahdollisuus uutena ominaisuutena.

Alkuperäisten ohjelmistojen käyttömahdollisuus lyhyesti

Perinteisen vastaanoton lisäksi näillä kolmella ohjelmalla voidaan lähettää IP-multicast -materiaalia Internet-verkkoon.

2. Projektin eteneminen

Projektin suunnittelu -vaihe

Projekti aloitettiin tutustumalla ohjaajan opastuksella multicastiin ja olemassaoleviin ohjelmistoihin. Tämän lisäksi tuotettiin ensimmäinen versio projektisuunnitelmasta. Projektityö lähti osaltamme liikkeelle verkkaisesti. Käytimme tähän vaiheeseen tunteja vähemmän kuin muut ryhmät keskimäärin.

Määrittelyvaihe

Määrittelyvaiheessa projekti oli jo täydessä vauhdissa. Tuotettavan materiaalin määrä varmasti yllätti. Toisaalta tätä edesauttoi se seikka, että määrittely- ja suunnitteluvaihe eivät muodostaneet kovin selkeää rajaa. Mielestämme olimme edenneet jo hiukan suunnitteluvaiheen puolelle. Suurinta osaa työstä väritti kuitenkin esitutkinta olemassaolevien multicast-sovellusten ominaisuuksista, yhteensopivuudesta, lisenssivaatimuksista sekä lähdekoodin saatavuudesta. Yhden valitun ohjelmiston (SDR) lähdekoodi tuli vähän määrittelyvaiheen jälkeen yleiseen jakeluun. Tämä seikka ratkaisi jatkosuunnitelmamme kerralla.

Määrittelyvaiheen edistymisraportti

Suunnitteluvaihe

Suunnitteluvaihe käynnistyi tutustumalla valittujen ohjelmistojen lähdekoodiin ja Tcl/Tk-kielen opetteluun. Lähdekoodin määrä oli myös yllätys. Kolmen ohjelmiston lähdekoodirivien määräksi kirjattiin 159 tuhatta riviä. Samalla hahmottui tulevan Internet-televisiomme rakenne. Vaiheen lopulla pääsimme esittelemään kahta alfa-protoa, joista toinen oli käyttöliittymäseminaarin ehdotus ITV:n yleisilmeestä ja ominaisuuksista ja toinen ryhmämme tekemä hieman alkuperäisistä ohjelmista modifioitu toiminnallinen kokonaisuus. Suunnitteluvaihe alkoi osoittaa sen, että alkuperäisten ohjelmien lähdekoodin hyväksikäyttö tulee rajoittumaan selkeitten kokonaisuuksien muokkaamiseen omia tarpeitamme vastaaviksi. Huono koodin dokumentointi ja lähdekoodin paljous heikensivät mahdollisuuksiamme tehdä matalan tason asioita uusiksi.

Jälkeenpäin ajatellen jonkinlaisen alfa-proton väsääminen ennen joululomia oli oikea ratkaisu ja se auttoi myöhemmissä vaiheissa. Ensimmäinen lukukausi kurssista oli ahkeroitu ja olimme vähintään aikataulussa.

Suunnitteluvaiheen edistymisraportti

Prototyyppi 1 -vaihe

Projektimme jatkui joululomien jälkeen jälleen verkkaisesti. Näkyvin osuus tehdystä työstä oli uuden käyttöliittymän hahmottuminen lopulliseen asuunsa. Tässä lainattiin käyttöliittymäseminaariryhmän ideoita. Koodauksen jatkuessa myös testaus aloitettiin vaiheen lopussa. Ryhmän työskentely muuttui kurssin puolenvälin jälkeen itsenäisemmäksi ja yhteisten palaveriaikojen järjestäminen oli hankalampaa kuin ennen. Ryhmällä oli ko. kurssin lisäksi muita kiireitä. Ylimääräisenä panoksena arvosanallisesti parhaimpaan vaiheeseen oli laatudokumenttien hioutuminen ja laatuvastaavan esimerkillinen ja kriittinen itsetutkiskelu. Vaiheen tavoitteet olivat täyttyneet I-prioriteetin toimintojen valmistumisella.

Prototyyppi 1 -vaiheen edistymisraportti

Prototyyppi 2 -vaihe

Prototyyppi 2 -vaiheen tavoite oli haasteellinen. MPEG-vastaanoton toteuttaminen ei kuitenkaan enää tuntunut realistiselta. Ryhmästä alkoi näkyä jo tietty kyllästyminen ohjelmatyöhön. Kokonaisuudessaan työresurssit oli maksimoitu suunnittelu- ja prototyyppi 1 -vaiheen välille. MPEG-vastaanoton toteutuksessa olisi tarvinnut tehdä itse MPEG-lähetin, jotta vastaannottoa oilisi voinut kokeilla. Näinollen sovimme ohjaajan kanssa yhteisymmärryksessä tavoitteiden laskemisesta MPEG-vastaanoton osalta. Muiltaosin jatkoimme suunnitelmien mukaan tavoitteenamme toteuttaa II-prioriteetin toiminnot ja hioa jo toteutetut toiminnot julkaisukelpoiseen kuntoon. Tehty ohjelma havaittiin kääntyvän myös pääasiallisella alustalla eli Sun Solarikselle, jolla vaiheen demo myös esiteltiin.

Prototyyppi 2 -vaiheen edistymisraportti

Luovutus

Luovutusvaiheen alussa ilmoitimme otaxin uutisryhmässä tkk.niksula Internet-TV:n beta-versiosta. Muutamia innokkaita beta-testaajia lähetti ilahdukseksemme bugi-raportteja ja näin antoivat oman panoksensa ohjelmiston testaukselle. Edellisten vaiheiden löydetyt virheet työllistivät merkittävästi projektiryhmää. Vaiheen lopulla valmistuneiden asennuspakettien myötä julkaisimme ilmoituksen Internet-TV:stä myös kansainvälisissä uutisryhmissä. Jäämme mielenkiinnolla odottamaan palautetta.

3. Lopputulokset

Projektin lopputuloksena syntyi alkuperäisen päätavoitteen mukainen sovellus, jonka ominaisuudet sopivat valitulle kohderyhmälle. Tekninen toteutus toteutettujen toimintojen osalta on hyvä. Pyrimme tekemään luotettavan tuotteen, ja jätimme mieluummin vähempiarvoisia ominaisuuksia tekemättä. Näinollen jatkokehitykselle on luotu varma pohja. Muutamia jatkokehitysehdotuksia löytyy kappaleesta 7. Alkuperäiset suunnitelmat pitivät yllättävän hyvin. Poikkeamat syntyivät vaatimustason alentamisesta MPEG-vastaanoton suhteen. Suunnitelmallisesti näin suuren asian aloittaminen prototyyppi 2- vaiheessa oli mielestämme ainut virhearvio kokonaisprojektin näkökulmasta katsoen. Käsityksemme työn onnistumisesta on arvosana 4 Hyvä.

Laaturaportti kasittelee ohjelmatyon onnistumista laadun kannalta.

4. Projektityöskentely

Projektityöskentelyämme auttoi merkittävästi seikka, että tunsimme toisemme entuudestaan ja suurin osa ryhmästä on päivittäin tekemisissä toistensa kanssa työpaikalla. Projektipäällikön näkökulmasta katsoen merkittäväksi seikaksi työn onnistumiselle muodostui myös asiantuntevat ja motivoidut yksilöt. Tehtäväjako ei näinollen muodostunut ongelmaksi. Yhteydenpito sähköpostin avulla oli vilkasta. Tämä korvasi osaksi turhan vähän pidettyjä yhteisiä palavereja. Projektin hallinnassa teimme heti alussa merkittävän valinnan siinä, että emme käyttäneet mitään projektinhallintatyökalua hyväksemme. Katsoimme sen lisäävän vain turhaan dokumentointityötä, jota on jo nyt kurssissa aivan riittämiin. Apunamme oli siis vain WWW-pohjaiset taulukot tehtävistä, näiden riippuvuuksista sekä aikataulusta.

Ohjelmistotyö on varsin pitkälle suoraviivaista projektityötä, jossa tehtäviä ei voi usein limittää päällekkäin vaan peräkkäin. Projektinhallinnallisesti olisimme ehkä kaivanneet selkeitä tekijäkohtaisia tehtävä- ja aikataululistoja, joita projektinhallinta- ohjelmistolla olisi helposti saanut aikaiseksi. Näinollen aikatauluista tuli poikkeuksetta hieman deadline-painotteisia. Ryhmätyömme onnistui mielestämme ainakin siinä, että ketään ei präsätty liikaa, vaan tekijöille annettiin työrauha. Näinollen lopettelemme ohjelmatyötä edelleen ystävinä. Teknisellä puolella CVS -versionhallinta mahdollisti yhtäaikaisen työskentelyn jopa samojen tiedostojen parissa, mikä oli mielestäni merkittävä etu projektityöskentelylle. CVS pelasti meidät myös kertaalleen Niksulan levyrikon yhteydessä.

5. Jälkilaskelmat

Resursseja oli alkuperäisen suunnitelman mukaan varattu 4*250 h eli 1000 h. Määrärahoja laskettiin alussa 100 mk/h eli yhteensä 100.000 mk. Projektin edetessä palkkakustannukset ovat kuitenkin osoittautuneet arvioitua suuremmiksi. Sosiaalikuluineen tarkempi kustannus rahoittajalle olisi 200 mk/h. Suurempi kustannus ei siis ole syntynyt arviota suuremmasta ajankäytöstä. Loppulaskelmat osoittavat päinvastoin, että kokonaisajankäyttöarvio alitettiin. Markkamääräisesti 200.000 mk:n budjetti alitettiin 7.300 mk:lla.

Projektiin käytetyt tunnit

Projektiin käytettiin kaikenkaikkiaan 963.5 tuntia, alkuperäinen arvio eli 1000 tuntia alittui 36 tunnilla. Vaihekohtaisten arvioiden poikkeamakertymä oli sama 36 tuntia alle kokonaisarvion. Todellisten tuntien määrä vuoroin ylitti ja vuoroin alitti vaiheiden arviot oheisen graafin osoittamalla tavalla. Resurssien käyttö suunniteltiin niin, että suurin kuorma ajoittui projektin puoliväliin. Tätä vahvisti etenkin kurssin johdon asettamien tehtävien kohdistus.

Projektiryhmän todelliset ja arvioidut tunnit vaiheittain.

Henkilöittäin noin 1000 tunnin kokonaissaldo oli n. 250 h mieheen. Projektiryhmän henkilöiden erilaisten roolien vaikutus, näkyy henkilöiden vaihekohtaisissa käyttötunneissa. Kaiken kaikkiaan kaikki pääsivät suhteellisen samaan kokonaistuntimäärään.

Projektiryhmän käyttämät tunnit vaiheittain ja jäsenittäin.

Projektin kokonaiskustannusten jakaumat

Projekti jaettiin kuuteen noin kuukauden pituiseen vaiheeseen. Tähän aikajänteeseen liittyi erilaisia tehtäväkategorioita. Konkreettinen jakauma syntyi vaiheen puolivälissä, jossa projektin lopputuotteen suunnittelusta siirryttiin toteutukseen lähinnä koodaukseen. Kurssin tarjoama tuntilomakkeisto tarjosi kiinteän tehtävien kategorioinnin, jonka avulla seuraava graafi on kehitetty.

Projektin tehtäväkategorioiden prosentuaalinen kehittyminen vaiheittain.

Kustannusten jälkilaskentaa varten mielenkiintoisempi tieto on eri tehtäväkategorioiden suhteellinen osuus kokonaiskustannuksista. Tämän avulla voidaan esim. tutkia mikä on ns. tuottavan työn ja kurssibyrokratian osuus kokonaiskustannuksista. Kurssibyrokratia katsottiin koostuvan dokumentoinnista sekä palavereistä. Näiden suhteellinen osuus oli 28% eli liki kolmannes kokonaiskustannuksista.Tämä on markkamääräisesti 54.800 mk. Kaikkien tehtäväkategorioiden osuus selviää oheisesta graafista.

Projektin tehtäväkategorioiden suhteellinen osuus kokonaiskustannuksista projektin päätyttyä.

Projekti pysyi aikataulussa suunnitelmien mukaan. Luovutus-vaiheen tuntien suurehko ylitys ei tarkoittanut, että projektin valmistumiseen olisi tullut kiire. Kyse oli lähinnä ryhmän motivaatiosta viimeistellä ohjelmaa ja luovutettavia dokumentteja arvioitua enemmän. Lopuksi yhteenveto allokoitujen tuntiarvioiden pitävyydestä tehtäväkategorioittain:

 

Kokonaispoikkeama
/Tuntia

Luennot

-4

Opiskelu

-4

Kokoukset

-7

Projektinhallinta

8

Suunnittelu

-8

Koodaus

51

Testaus

-31.5

Dokumentointi

-35

Menetelmäkehitys

-3

ATK-ylläpito

-2.5

Yhteensä

-36

Kokonaispoikkeamissa näkyy projektipäällikön tehtävien keskittyminen eniten dokumentointiin ja testaukseen. Näihin on jäänyt pelivaraa muita enemmän. Koodaukseen kuluva aika aliarvioitiin pahasti. Vaikka arviot tehtiin loogiseti vaiheittain, aiempien vaiheiden tunteja korjaten, lopullinen poikkeamakertymä on tässä suhteessa armoton.

6. Kurssipalaute

Kurssi on varsin mittava ja työteliäs, mutta myös antoisa. Nykyiset WWW-mekanismit ja pohjat ovat merkittävä parannus kurssin hallitsemiseksi. Pientä hiomisen varaa tosin on. Dokumenttipohjien lyhyistä ohjeista ei välttämättä saa oikeaa kuvaa kiitettävän arvosanan mukaisesta sisällöstä. Virheraportointilomakkeet ovat hyviä, mutta miksei niihin ole rakennettu myös testausprosessin kulkua ja ryhmätyötä tukevaa tietoa. Tarvittaisiin ainakin tarkempi jaottelu status-kenttään. Nykyisen "avoin", "korjattu" sijaan voisi olla esim. "avoin", "ilmoitettu korjatuksi", "korjaus testattu","korjaus hyväksytty". Tuntiraportointityökalun valmiiksi ryhmitellyt kategoriat sitovat liikaa. Mikäli kyseistä ryhmittelyä halutaan käyttää, se olisi syytä toteuttaa myös projektisuunnitelmapohjaan vaiheiden suunniteltujen, ja toteutuneiden tehtävien tuntien osalta. Tämä helpottaisi tuntien siirtoa projektisuunnitelmaan. Tehtävien dokumenttien määrää ei kannata enää tästä lisätä. Dokumentointiin kuluva aika oli ryhmämme osalta kolmen suurimman resurssisyöpön joukossa lähes yhtäsuurena osuutena. Muut olivat suunnittelu ja koodaus.

Lopuksi haluaisimme välittää kiitokset ohjaajallemme Jorma Rinkiselle, joka suhtautui ymmärtävästi työtämme kohtaan. Emme päässeet kuulemaan asiakkaan kritiikkiä kovin paljoa. Tämä ei mielestäni kuitenkaan haitannut työskentelyä, ehkä pikemminkin helpotti. Mikäli kurssin puolelta järjestetään sekä ohjaaja että asiakas on meista välttämätöntä, että nämä olisivat kaksi eri henkilöä. Tehtävät kun profiloituvat niin vahvasti persoonaan.

7. Jälkihoito ja ehdotuksia jatkosuunnitelmista

Sovelluksen oikeuksista päätettiin projektin alussa siten, että TKK varaa käyttö- ja kehitysoikeudet. Levitys- ja myyntioikeuksista päättää ohjelmatyöryhmä. Ryhmälle jää niinikään myös käyttö- ja kehitysoikeudet.

Ohjelmassa on kolme suurempaa parannuskohdetta:

Ohjelmatyöryhmämme ottaa mielellään vastaan ajatuksia ITV:n jatkokehityksestä kurssin loputtuakin. Yleisessä jakelussa olevien ITV-ohjelmien kehitys- ja käyttötuesta emme ota vastuuta, mutta bugiraportit ja yleinen palaute on edelleen tervetullutta.

Ohjelmatyossa on potentiaalia jatkokehitykseen myos Ohjelmatyo-kurssin puitteissa ensi vuonna.