TIEA4 Projektityö, 5-10 op., 2012-13 Luennot Kurssin esitietovaatimukset ja tavoitteet Kurssin sisällöstä Suoritustavoista ja -vaatimuksista, arvostelu Yleisiä ohjeita Kurssin luennoitsija ja projektien ohjaaja: Timo Poranen (email: timo.t.poranen@uta.fi, työhuone: B1023) Kurssin kotisivut: https://projectwiki.cs.uta.fi Projektien ohjaaja: Pekka Mäkiaho (pekka.makiaho@uta.fi) 1
Luennot pe 7.9 ls. B1097, klo 12-14: Yleisiä asioita. Luennolla kerrotaan, kuinka tämän kurssin projektien täytyy pääpiirteissään edetä. Esitutkimus. pe 14.9 ls. B1097, klo 12-14: Yleisiä asioita, projektisuunnitelma, kehitysmallit. Vaatimusten määrittely. pe 21.9 ls. B1096, klo 12-14: Ohjelmistotyökalut (wiki, svn,...). pe 28.9 ls. B1097, klo 12-14: Vaatimusten määrittely. Toteuksen suunnittelu. Testaus, projektin lopetus. pe 5.10 ls. B1097 klo 12-14: Vierailuluento? Projektien esitykset marras-joulukuussa ja helmi-maaliskuussa. Paljon ryhmätyötä ja ryhmien ohjausta. 2
Esitietovaatimukset Vähintään 50 op tietojenkäsittelytieteitä, tulee sisältää perusopinnot. Ajankohtasuositus: 3. vuosi. TIEA2 Olio-ohjelmoinnin perusteet ja TIETA8 Ohjelmistotuotanto. Ohjelmistokehitykseen suuntautuville suositellaan Ohjelmoinnin tekniikka sekä WWW-ohjelmointi ja vuorovaikutteiseen teknologiaan suuntautuville Käytettävyystyön menetelmät: Graafisen käyttöliittymän suunnittelun työkurssi. Huomaa myös, että: Molempien pääaineiden pääaineopiskelijoilla pakollinen kurssi. Uusi SIS-kurssi: Innovaatioprojekti (voi korvata Projektyön Ihmisen ja teknologian vuorovaikutuksen maisteriopinnoissa). 3
Kurssin sisällöstä Mikä on projekti (Risto Pelin: Projektinhallinnan käsikirja): Projekti on työkokonaisuus, joka tehdään määritellyn kertaluonteisen tuloksen aikaansaamiseksi. Opinto-oppaasta: Projektityön luonne. Projektin suunnittelu, dokumentointi ja seuranta. Todellisen projektin toteuttaminen. Käytettävyys ohjelmistoprojektissa. Kansainvälisyys Projektityön voi tietyin edellytyksin sisällyttää kansainvälistymisopintoihin 4
Osaamistavoitteet tuntee projektimuotoisen työskentelyn perusteet ja pystyy toimimaan ryhmän jäsenenä ohjelmistoprojektissa, tuntee yleisimmät ohjelmistojen kehitysmallit, niiden vaiheet ja vaihetuotteet, osaa esittää suullisesti oman projektinsa tuotoksia sekä laatia projektiin liittyvää dokumentaatiota, osaa ottaa huomioon projektityöskentelyyn liittyviä eettisiä vaatimuksia, tuntee keskeisimmät projektityöskentelyyn liittyvät ohjelmistotyökalut ja osaa käyttää niitä myös käytännössä, tuntee ohjelmistokehitykseen ja laatuun liittyvät peruskäsitteet ja osaa huomioida ne omassa projektityöskentelyssä. 5
Kurssin sisältö käytännössä Asiakas on ehdottanut projektia kurssille. Työskentelet 5 hengen projektiryhmässä (lisäksi 2(?) projektipäällikköä) jonka tavoitteena on saada toteutettua asiakkaan toimeksianto. Projektit alkavat syyskuussa 2012 ja loppuvat maaliskuussa 2013. Toteutuksen on hyvä olla valmiina helmikuun puolessavälissä ja projektin loppunut 15.3.2013! Projektit saavat valita kohtuullisen vapaasti: käyttämänsä kehitysmallin: Inkrementaalinen, iteratiiviset menetelmät, ketterät menetelmät (XP, Scrum,...) työkalut ja työskentelytavat. 6
Tietoa aiemmista projekteista yms. https: //projectwiki.cs.uta.fi/wiki/statistics_2011-2012 Software Projects 2011-12: http://www.uta.fi/sis/reports/index/r9_2012.pdf Software Projects 2010-11: http://www.uta.fi/sis/reports/index/r2_2011.pdf Software Projects 2009-10: http://www.cs.uta.fi/reports/dsarja/d-2010-14.pdf 7
Lukuvuoden 2011-2012 projektit 14 projektia, 67 projektikurssilaista, 30 projektipäällikköä. Esimerkki: Navilendar. Kaikki projektit menivät hyvin oppimisen kannalta. Kaikista projekteista valmistui ohjelmistotuote. Kaksi projektia myöhästyi. Tärkeimmät onnistumistekijät olivat hyvä ryhmä, hyvä ryhmähenki, taidokkaat projektikurssilaiset ja osaavat projektipäälliköt. Yleisimmät ongelmatekijät olivat huono motivaatio ja johtaminen (aikataulutusongelmat, kokousten järjestäminen, tiedottaminen, kommunikointiongelmat), kurssin kesken lopettavat opiskelijat sekä puutteelliset ohjelmointitaidot. 8
Mitä hyötyä koko kurssista? Yhdistää eri kursseilta saadut tiedot ja taidot kokonaisuudeksi. Kasvattaa työelämän valmiuksia. Kynnys hypätä mukaan jonkin yrityksen projektiin pienenee, kun tuntee edes osan käytettävistä käsitteistä. Parhaimmillaan tästä voi saada työnäytteen tulevia työnhakuja varten. Projektien loppukertomukset julkaistaan yksikön raporttisarjassa. 5-10 op. pakollisia aineopintoja. Antaa kokonaiskuvan hallitusti toteutetusta ohjelmistoprojektista. 9
Arvostelusta ja opintopisteistä I/II Kuinka monta opintopistettä? https: //projectwiki.cs.uta.fi/wiki/working_hours_and_ects 10
Arvostelusta ja opintopisteistä II/II Arvosana? Lopputuotteen ja kehitysprosessin laatu. Ohjelmakoodin laatu. Tuotetut dokumentit ja tarkastukset/katselmoinnit. Raportointi, henkilökohtaiset raportit. Esitykset, WWW-sivu, projektin oman aikataulun seuraaminen. Henkilökohtainen panos projektiin. Arvosana voi vaihdella ryhmän sisällä. 11
Tehtävistä ja tehtävien jaosta Projektipäällikkö vastaa kokonaisuudesta (eri osa-alueiden eteneminen, kokoontumiset ja muu koordinointi). Projektipäällikkö toimii linkkinä ryhmän ja toimeksiantajan välillä sekä ryhmän ja luennoitsijan välillä. Projektipäällikkö vastaa tehtävien oikeudenmukaisesta jakamisesta projektiryhmän jäsenille sekä tarkastaa, että työt tulee tehtyä. Pohdittavaksi: itseohjautuvan Scrum-ryhmän johtaminen / scrum-masterin rooli? Useimmilla ryhmillä on kaksi(?) projektipäällikköä. Jokaiselle ryhmän jäsenelle tulee omia vastuualueita. Tehtävä, joka ei ole kenenkään vastuulla, jää yleensä tekemättä! 12
Projektien aikataulu Tarkempi aikataulu löytyy kurssin kotisivulta. Ajantasalla oleva projektikohtainen aikataulu löytyy projektisuunnitelmasta! Tapaaminen asiakkaan ja projektipäälliköiden kanssa, toimeksiantoon tutustuminen (viikko 38). Ryhmän ja luennoitsijan tapaaminen (esitutkimuksen läpikäynti viimeistään 28.9). Projektisuunnitelma, tarkastus viimeistään 12.10. Yleensä (riippuen käytetystä kehitysmallista): kolme katselmointia kehitysiteraatioille. 13
Projektien aikataulu - jatkoa Katselmoinnit/tarkastukset marras-, joulu- ja tammikuussa. Projektin ja ohjelmiston esittelypäivät joulukuun alussa ja helmikuun lopussa. Ohjelmiston luovutus asiakkaalle, loppuraportti ja loppukertomus ja projekti CD viimeistään 15.3.2013. Loppupalaveri ryhmän ja luennoitsijan kesken. Viimeistään 15.3.2013. https://projectwiki.cs.uta.fi/wiki/meetings_with_ the_course_staff 14
Pakolliset dokumentit Projektin dokumentit voivat olla (tulostuskelpoisia) wikidokumentteja. Esitutkimus Projektisuunnitelma Vaatimusten hallinta, testauksen suunnittelu ja raportointi sekä toteutuksen suunnittelu dokumentoidaan projektisuunnitelmassa sovittavalla tavalla. Toimiva ohjelmisto lähdekoodeineen. Loppuraportti ja projekti CD. Loppukertomus ja projektin WWW-sivut. 15
Projektin aiheesta riippuvat dokumentit Käyttöliittymäsuunnitelma, käytettävyystestauksen suunnitelma, käytettävyystestauksen raportti, käyttöliittymän läpikäynti, käyttöliittymän heuristinen arviointi. Käyttöohje (tulostettava tai on-line). Asennusohje. Ylläpitosuunnitelma. Myös muut dokumentit ovat mahdollisia. 16
Dokumenteista ja dokumenttipohjista https://projectwiki.cs.uta.fi/wiki/list_of_course_ documents 17
Pakolliset raportit Viikkoraportit (projektipäällikön vastuulla). Kolme henkilökohtaista raporttia. Deadlinet: 7.11.2012, 15.1.2013, viimeinen projektin jälkeen. Kokouspöytäkirjat ja muut muistiot palavereista ja tarkastuksista/katselmoinneista. 18
Moodle On erittäin hyödyllistä jakaa omia kokemuksia ja kysyä projekteihin liityviä asioita muilta opiskelijoilta (ja luennoitsijalta). Kurssilla käytetään Moodlea kurssitiedotusten jakamiseen, keskusteluihin ja henkilökohtaisten raporttien palauttamiseen. Voitte kirjautua Moodleen vaikka heti: https://learning2.uta.fi/course/view.php?id=547, kurssi [TIEA4 and TIETS19] Project Work and Software Project Management. Avain: projects2012 19
Kokoushuoneet https://projectwiki.cs.uta.fi/wiki/meeting_rooms 20
Jatkosta Projektipäällikkö kutsuu ryhmän aloituskokoukseen. Tutustutte toisiinne, sovitte alustavasti vastuualueista, sovitte ryhmänne yhteiset pelisäännöt, kommunikointitavat, selvitätte henkilökohtaiset tavoitteet, ryhmän tavoitteet,... Tutustutte asiakkaaseen ja hänen toimeksiantoonsa. Kirjoitatte esitutkimuksen ja esittelette sen ryhmän ja luennoitsijan alkutapaamisessa. Allekirjoitatte tarvittaessa sopimukset yritysprojekteissa. Aloitatte projektisuunnitelman kirjoittamisen ja vaatimusten keräämisen. Aloitatte tutustumisen kehitysympäristöön ja työkaluihin. 21
Yleisiä asioita: tuntikirjanpito Jokainen pitää omaa tuntikirjanpitoa: (https: //projectwiki.cs.uta.fi/wiki/working_hour_reporting). Projekteissa tuntikirjanpito jakautuu aktiviteetteihin: Projektin suunnittelu ja johtaminen, Vaatimusten määrittely, (toteutuksen) Suunnittelu, Ohjelmointi, Integrointi ja testaus, Katselmoinnit, Korjaus, Opiskelu, Muut. Viikkotunnit raportoidaan viikoittain projektipäällikölle. Projektipäällikkö liittää tiedot viikkoraporttiin, joka toimitetaan projektien ohjaajille, asiakkaalle ja ryhmälle. 22
Yleisiä asioita: kotisivu https://projectwiki.cs.uta.fi/wiki/project_homepage 23
Sopimukset ja oikeudet kurssilla Yleensä tullaan toimeen jollain seuraavista kolmesta: Ensimmäinen, jossa tekijät julkaisevat tuotokset GPL-lisenssin (tai vastaavan) alaisuudessa. Toinen, yrityksiä varten tehty. Tässä tekijät luovuttavat oikeudet yritykselle, joka sitten voi tehdä tuotoksilla, mitä haluaa. Tätä käytetään, jotta saataisiin myös yrityksiltä projektityöaiheita. Osa opiskelijoista haluaa perinteisesti yritysprojekteihin (ja osa ei). Kolmas, myös yrityksistä lähtöisin oleva. Tässä tekijät luovuttavat kullekin projektin osapuolelle vapaat oikeudet soveltaa tuotoksia. Tavallaan samankaltainen kuin ensimmäinen, mutta antaa kaikille oikeuden tehdä lopputuotteella mitä haluavat. 24
Esitutkimus Esitutkimuksessa tutkitaan, onko projektin aloittaminen kannattavaa. https: //projectwiki.cs.uta.fi/wiki/preliminary_analysis Deadline 28.9. Dokumentti palautetaan 24 tuntia ennen tapaamista luennoitsijalle. Varaa 30 minuutin aika. Ryhmä varaa myös tapaamispaikan. Luennoitsijan vapaat ajat: https: //projectwiki.cs.uta.fi/wiki/available_meeting_times 25