Pöytäkirja Sovellusprojekti Verso, 1. palaveri Paikka: kokoushuone Ag C226.2 Aika: keskiviikko 10.2.2010 klo 11:16-13:11 Pöytäkirja laadittu: 12.2.2010 Pöytäkirjaa muokattu: 17.2.2010 Läsnä Projektiryhmä Tero Hänninen Juho Nieminen, sihteeri Marko Peltola Heikki Salo, puheenjohtaja Tilaajat Tapani Tarvainen Ville Tirronen Tero Tuovinen, paikalla kohdissa 1-13 Ohjaajat Antti-Juhani Kaijanaho Jukka-Pekka Santanen 1 Kokouksen avaus Puheenjohtaja Salo avasi kokouksen. 2 Esityslistan hyväksyminen Santanen ehdotti, että esityslistaan lisätään kohta laillisuus ja päätösvaltaisuus kolmanneksi kohdaksi. PÄÄTÖKSET: - Esityslista hyväksyttiin edellä mainitulla muutoksella. 3 Laillisuus ja päätösvaltaisuus Keskusteltiin kokouksen laillisuudesta ja todettiin, että kokouskutsu ja esityslista pitää lähettää riittävän ajoissa, jotta kokous olisi laillinen. Päätösvaltaisuudesta puhuttaessa Santanen esitti, että palaverit ovat päätösvaltaisia, kun jokainen osapuoli on kokouksessa edustettuna vähintään yhdellä henkilöllä kuitenkin niin, että ohjaajista paikalla pitää olla vastaava ohjaaja Santanen. Tilaajat ehdottivat, että he voivat esittää tarpeen tullen ulkopuolisen edustajan itselleen. PÄÄTÖKSET: - Kokous on laillinen, kun esityslista on lähetetty riittävän ajoissa (vähintään vuorokautta ennen kokousta). - Esityslista toimii kokouskutsuna. - Kokous on päätösvaltainen, kun projektiryhmästä ja tilaajista on paikalla vähintään yksi edustaja ja ohjaajista paikalla on Santanen. Tilaaja voi nimittää tarvittaessa ulkopuolisen edustajan. - Kokous todettiin lailliseksi ja päätösvaltaiseksi. 4 Osallistujien esittäytyminen Osallistujat esittelivät itsensä. Kaikki tilaajat ja ohjaajat ovat töissä Jyväskylän yliopistossa. Tero Tuovinen toimii yliopistolla projektipäällikkönä. Hänellä on tietämystä simuloinnin ja optimoinnin alalta. Hän edustaa sovelluksen käyttäjäryhmää, joka tarvitsee helppokäyttöisyyttä enemmän kuin tehokkuutta. Tapani Tarvainen toimii yli-insinöörinä. Hänellä on tietoutta projektiin liittyvistä lisenssiasioista ja jonkin verran teknisistä asioista. Ville Tirronen, tutkijatohtori, hallitsee konenäköön ja funktio-ohjelmointiin liittyvät asiat. Tilaajat ovat valinneet Tirrosen tilaajien vastuuhenkilöksi, jolla on viimeinen sana päätöksissä. Jukka-Pekka Santanen, ohjelmistotekniikan lehtori, toimii yliopistolla projektiohjaajana. Hän on vetänyt sovellusprojekteja viisitoista vuotta. Tästä projektista hän toivoo saavansa kokemusta versiohallinnasta. Antti-Juhani Kaijanaho, ohjelmistotekniikan assistentti, toimii projektin teknisenä ohjaajana. Hänellä on kokemusta Git-versiohallintaohjelmasta. Heikki Salo on neljännen vuoden tietotekniikan opiskelija. Hän on kehittänyt Korppia puolitoista vuotta. Juho Nieminen on neljännen vuoden tietotekniikan opiskelija. Hän toivoo oppivansa projektin hallintaa ja saavansa kokemusta projektin läpiviennistä. Marko Peltola on useamman vuoden tietotekniikan opiskelija. Hänen tavoitteensa projektissa on oppia ohjelmoimaan paremmin. Tero Hänninen on kolmannen vuoden tietotekniikan opiskelija. Sivuaineena hänellä on teknologialiiketoiminta. 5 Tilaajan organisaation ja toiminnan esittely Tilaaja on Jyväskylän yliopiston tietotekniikan laitos. Santanen pyysi tilaajia kuvailemaan kehitettävän sovelluksen tulevia käyttäjiä. Tuovinen vastasi, että käyttäjinä olisivat ensin kehittäjät itse, sen jälkeen muut laitoksen opiskelijat ja tutkijat ja lopulta muutkin yliopistot. Tuovinen toi esille, että sovelluksen olisi oltava laajennettavissa, ja yhtenä käyttäjäryhmänä hän näkee simuloinnin ja optimoinnin väen. Tarvainen mainitsi, että käyttäjäkunta on hyvin heterogeeninen. Hänen mukaansa tämä vaikeuttaa tehokkaan sovelluksen luomista, sillä tehokäytön ja helpon opittavuuden istuttaminen samaan ohjelmaan on hankalaa. 6 Tilaaja esittelee aiheen, aihealuetta sekä taustoja Projekti toteuttaa sovelluksen versiohallinnan tukijärjestelmäksi. Sovellus tarjoaa projektien versiohallinnalle julkaisukanavan, jonka kautta projektien tietovarastot ja www-sivut voidaan julkaista sopivilla käyttöoikeuksilla. Sovelluksen tulee olla niin helppokäyttöinen ja hyödyllinen, että käyttäjät alkavat käyttää sitä mielellään. Tirronen kuvaili nykyisen tilanteen, jossa ei ole mitään yhteistä toimintamallia tai järjestelmää. Jotkut käyttävät versiohallintaa, mutta vain lokaalisti. Tarvetta olisi yhteiselle versiohallintajärjestelmälle, jonka kautta voisi jakaa lähdekoodia. Nykyään muistitikku on yleinen tapa siirtää lähdekoodia laitoksen sisällä. Tirrosen mukaan nykyisiä ongelmia ovat muun muassa seuraavat: - Jonkun lähtiessä talosta, hänen tekemä koodi lähtee myös. - Ei tiedetä, kuka tekee ja mitä tekee. - Tehdään päällekkäistä työtä. - Ei tiedetä, kenelle koodi kuuluu ja miten sitä saa käyttää (lisenssiongelmat). Kehitettävän sovelluksen ei odoteta ratkaisevan koko ongelmaa. Laitos kaipaisi kulttuurimuutosta tietojen tallentamisessa ja jakamisessa, Tirronen huomautti. Puhuttaessa lisensseistä ja muista projektin luomisen yhteydessä tarvittavista tietoista Santanen tiedusteli tilaajilta olisiko lisenssi projektikohtainen. Tirronen totesi, että projektikohtainen lisenssi on hyvä vaihoehto. Toinen vaihtoehto on määritellä lisenssit haarakohtaisesti. Tirronen täsmentää, että lisenssitietojen tai muiden metatietojen puuttuminen projektista ei haittaa niin kauan, kun projektia ei olla julkaistu maailmalle. Kuitenkin ennen julkaisua tietojen pitää olla kunnossa. Tarvainen huomautti, että lisenssi ja salaisuus ovat eri asioita. Eli käyttöoikeus ja näkyvyys eroavat toisistaan. Projektiryhmän kysyessä, toimisiko jokin valmis ulkoinen ratkaisu, Tirronen selitti, että ulkoisen palvelun käyttö ei ehkä toimi, sillä kaikki julkaistava lähdekoodi ei ole välttämättä avointa. Eräs toimiva valmis ratkaisu, Github, taas olisi liian kallis ostaa laitokselle, ja lisäksi se ei tarjoa kaikkia olennaisia toimintoja. PÄÄTÖKSET: - Kun sovelluksessa luotu projekti julkaistaan laitoksen ulkopuolelle, sen lisenssitiedot on oltava selkeät ja oikeelliset. Käytettävät lisenssit päätetään myöhemmin. 7 Projektin vaatimukset ja prioriteetit Tirronen kertoi, että kehitettävän järjestelmän pohjana pitää olla hajautettu versiohallintaohjelma kuten Git tai Mercurial. Projektiryhmän mukaan heillä on jo kokemusta Gitistä. Tilaajien näkemyksen mukaan kehitettävään sovellukseen luotuja projekteja ja niiden käyttöoikeuksia pitää pystyä hallinnoimaan www-käyttöliittymän kautta helppokäyttöisyyden takaamiseksi. Käyttäjän luoman projektin metatietojen avulla luodaan projektille automaattisesti oma Internet-sivu, Tirronen selitti. Metatiedon pitäisi olla suurimmaksi osaksi muokattavissa tekstieditorilla, jotta sivun generointi ja editointi olisi tehokasta. Metatieto on suurimmaksi osaksi tai kokonaan koodin seassa, esimerkiksi docs kansiossa, jotta projektin siirtäminen uudelle alustalle olisi vaivatonta. Generoidulta Internet-sivulta pääsee käsiksi projektin tietovaraston tiedostoihin ja yksittäisiin committeihin. Tilaajat haluavat, että sovelluksessa on lisenssienhallinta, jolla voidaan määrittää lisenssi projektikohtaisesti tai jollain muulla sovitulla tavalla. Käytettävät lisenssivaihdoehdot jätetään vielä avoimeksi. Lisäksi sovelluksessa pitää voida määritellä käyttöoikeuksia. Tarvainen sanoi, että esimerkiksi pitää olla mahdollista luoda projekti, joka näkyy vain itselle. Oletuksena projektin pitää kuitenkin näkyä laitoksen henkilökunnalle. Käyttöoikeuksien tarkkuus on Tirrosen mukaan hyvä olla tietovarastokohtainen. Korpin käyttöä oikeuksienhallinnassa arvioitiin, mutta asia jäi avoimeksi. Tilaajien mielestä sosiaalisuus pitää saada sovellukseen mukaan. On hyvä, jos heti etusivulla näkee, mitä sivustolla puuhataan. Olemassa olevien projektien ja niihin liittyvien käyttäjien tulee olla helposti näkyvillä. Santanen kysyi lähdekoodien kommentoinnin mahdollisuudesta, jonka Tirronen katsoi olevan haluttu mutta ei pakollinen toiminto. Kommunikaation voi Tirrosen mukaan hoitaa myös pelkällä sähköpostilla. Sähköpostiviestinnän arkistointia varten voitaisiin käyttää Korpin listoja, Santanen huomautti. Tirronen toi esiin myös idean, että tietostoja voisi lisätä tietokantaan sähköpostin kautta. Santanen toi esiin käsitteen organisaatiomuistista. Se tarkoittaa muun muassa, että projektin tuloksilla olisi erilaisia tasoja, jotka kuvalisivat dokumentin valmiusastetta. Tasot voisivat olla nimetty esimerkiksi tyyliin "vaatii muokkausta" ja "valmis julkaistavaksi". Tirronen täsmensi, että ohjelman tärkein prioriteetti on mahdollisuus lähdekoodien jakamiseen laitoksen sisällä, jotta laitoksen sisäinen toiminta parantuisi. Tarvaisen mukaan tavoite on, että ihmiset ottaisivat versiohallintaa laajemmin käyttöön. Yksinkertaisuuden vuoksi uuden projektin luominen pitää olla helppoa, esimerkiksi yhden linkin takana etusivulta. Tirrosen mukaan järjestelmä ei kuitenkaan saa pakottaa käyttäjää mihinkään tiettyyn prosessiin, eli projektin hallinta pitää olla mahdollisimman vapaata. Tirronen huomautti lisäksi, että sovellus on ensisijaisesti lähdekoodien hallintajärjestelmä eikä projektihallintajärjestelmä. PÄÄTÖKSET: - Kehitettävä sovellus tukee Git-versiohallintaohjelmaa. - Sovellukselle toteutetaan www-käyttöliittymä, jolla kaikkiin ydintoimintoihin pääsee käsiksi. - Sovelluksen tulee generoida automaattisesti luodulle projektille oma Internet-sivu käyttäjän syöttämän tiedon perusteella. Sivulta ilmenee projektin tärkeimmät tiedot. - Sovellukseen toteutetaan jonkinlainen lisenssienhallinta. - Sovelluksen pitää mahdollistaa jonkinlainen oikeuksienhallinta. 8 Alustavaihtoehtojen tarkastelu Salo kysyi, onko sovelluksen kehitysympäristön valinta ryhmän päätettävissä, johon Tirronen vastaa myöntävästi. Seuraavaksi tarkasteltiin olemassa olevia sovelluksia, jotka voisivat sopia joko suoraan tilaajien hakemaksi sovellukseksi tai uuden sovelluksen pohjaksi. Salo esitteli pikaisesti projektorilla KnowledgeForge- ja Gitorius- sivustot, joista Gitorius herätti mielenkiintoa tilaajissa. Ryhmä lupautui ottamaan selvää valmiista sovellusratkaisuista, ja miten ne sopisivat tilaajien tarpeisiin tai uuden sovelluksen pohjaksi. Tarvainen sanoi, että Tietohallintokeskukselta pitäisi pyytää VMwarella varustettu tietokone testikäyttöön. PÄÄTÖKSET: - Projektiryhmä voi valita sovelluksen kehitysympäristön vapaasti. 9 Aikataulu ja prosessimalli Santanen esitti, että loppuesittely pidetään toukokuun puolivälin jälkeen ja että lähdekoodi olisi viimestelyä lukuun ottamatta huhtikuun loppuun mennessä kirjoitettu. Tilaajat ja projektiryhmä kannattivat esitystä. Tarvainen kuitenkin haluaisi prototyypin sovelluksesta mahdollisimman nopeasti ulkopuolisten testiin. Santanen kysyi, kuinka monta tuntia projektiryhmän jäsenillä on aikaa käyttää projektiin viikossa. Projektiryhmä arvioi, että jokaisella jäsenellä on aikaa viikossa noin 20-30 tuntia. Tuovinen esitti ryhmälle käyttöön SCRUM-prosessimallista yhtä käytäntöä. Siinä joka päivä projektiryhmän jäsenet lähettävät sähköpostilla toisilleen tiedon, mitä he ovat sinä päivänä tehneet, mitä ongelmia he ovat kohdanneet ja mitä he aikovat seuraavaksi tehdä. Salo ehdotti muutosta, että projektiryhmä tekisi päivittäisen tapaamisen, jossa se kävisi keskenään läpi päivän tapahtumat Tuovisen ehdottamalla tavalla. Nieminen mainitsi, että tarpeen vaatiessa päivän tapahtumien vaihto voisi tapahtua sähköpostilla jäsenten kesken, ja yksi sitten koostaa tapahtumaviestin muille sovellusprojektiin kuuluville henkilöille. Projektiryhmä kannatti esitystä. PÄÄTÖKSET: - Projektin loppuesittely on toukokuun puolivälin jälkeen. - Käytettävään prosessimalliin kuuluu, että päivän tapahtumat käydään läpi projektiryhmän sisällä, ja yksi projektiryhmän jäsen koostaa tapahtumat projektiorganisaation muille henkilöille lähetettävään sähköpostiin. 10 Sopimukset, lisenssit ja projektimaksu Santanen esitti, että projektisopimusta ei tehdä, eikä projektista laskuteta mitään. Kaikki kannattivat esitystä. Santanen jakoi Joose-projektissa käytetyn monisteen Sopimus projektin tulosten hyödyntämiseen. Siinä projektin jäsenet sitoutuvat sijoittamaan projektissa tuotetun lähdekoodin GNU v.3 -avoimen lisenssin alle. Tämän jälkeen keskusteltiin, sijoitetaanko Verso-projektissa lähdekoodi jonkin avoimen lisenssin alle. Ideaa pidettiin suotavana, mutta ei välttämättömänä. PÄÄTÖKSET: - Projektisopimusta ei tehdä. - Projektista ei laskuteta. 11 Käytänteet Tarvainen esitti testialustaksi VMwarea. Santanen ehdotti, että pöytäkirjat, esityslistat, projektisuunnitelma ja projektiraportti kirjoitetaan suomeksi. Tämä sopi kaikille osapuolille. Santanen kysyi tilaajilta, mitä dokumentointityökaluja he haluavat projektissa käytettävän. Tilaajat esittivät ASCII-muotoisia dokumentteja tai jotain muuta helposti avattavaa formaattia kuten PDF. Esitys sai kaikkien kannatuksen. Tirronen toi esille, että testaajia pitäisi käyttää, ja niiden käyttö tulisi suunnitella hyvin etukäteen. Santanen ehdottaa käytettäväksi valmista nimeämiskäytäntöä lähdekoodien nimeämisessä ja kommentoinnissa. Kaijanaho oli samaa mieltä. Nimeämiskäytännön valinta riippuu ohjelmointikielestä, eikä sitä vielä päätetty, joten nimeämiskäytännön päättäminen jää myöhemmäksi. Santanen huomautti, että sovelluksen tulee olla suoraan luettavissa CD:ltä. Eli tulosten tarkastaminen tulee olla mahdollista ilman erillistä versiohallintaohjelmistoa. PÄÄTÖKSET: - Sovellusta kuvaavat dokumentit kirjoitetaan englanniksi ja projektia kuvaavat dokumentit kirjoitetaan suomeksi. - Käyttöliittymän kieli on englanti. - Projektissa kirjoitettavat lyhyet dokumentit ovat ASCII-muotoisia lukuunottamatta projektisuunnitelmaa ja -raporttia sekä vaatimusmäärittelyä, jotka tehdään LaTeXilla. - Projektin dokumentit ja lähdekoodit laaditaan Git-versioarkistoon, johon tilaajille annetaan pääsy. - Projektissa tuotetaan luokkadokumentaatio. - Projektille ei tarvitse luoda www-sivua, kunhan pidetään huoli, että tilaaja pääsee dokumentteihin helposti käsiksi Gitin avulla. - Projektin aikana järjestetään vähintään kaksi lähdekoodin katselmointitilaisuutta. - Dokumenttien, kuten pöytäkirjat ja esityslistat, katselmointi järjestetään palaverien yhteydessä. - Ohjelman versionumerointi aloitetaan 1.0:sta, joka on ensimmäinen ulkopuolisille näytettävä versio. Dokumenttien versionumeroinnissa käytäntö taas on, että versio 1.0 on ensimmäinen hyväksytty versio. 12 Projektin tilat, henkilöiden yhteystiedot ja akronyymi Projektiryhmän huoneena on Ag C222.2. Projektin henkilöiden yhteystiedot löytyvät jaetusta monisteesta Tietotekniikan Sovellusprojektien resurssit ja ryhmät keväällä 2010 lukuunottamatta Tarvaisen ja Tirrosen puhelinnumeroita. Tarvaisen puhelinnumero on 2602752. Tirronen antaa numeronsa myöhemmin. Kaijanaho kertoi käyttävänsä IRC-tunnusta "ibid". Tarvaisen IRC-tunnus on "t^2". Tilaajat kuitenkin halusivat viestintään käytettävän ensisijaisesti sähköpostia. Ryhmä ehdotti projektin akronyymiksi nimeä Verso. Santanen sanoo perustavansa akronyymin mukaisen postilistan projektin henkilöille. Postilistan osoite on verso@korppi.jyu.fi. PÄÄTÖKSET: - Projektin akronyymiksi hyväksyttiin nimi Verso. 13 Sovitaan seuraavan palaverin aika ja paikka Siirrettiin seuraavan palaverin ajan ja paikan päättäminen kohdaksi kolmetoista, koska Tuovinen joutui lähtemään aikaisemmin. Tuovinen lähti kello 13:01. PÄÄTÖKSET: - Seuraava palaveri järjestetään 17.2.2010 klo 9 kokoushuoneessa Ag C226.2. 14 Projektipäällikön ja varapäällikön valinta Ryhmä ehdotti projektipäälliköksi Saloa ja varapäälliköksi Niemistä. PÄÄTÖKSET: - Projektipäälliköksi valittiin Salo ja varapäälliköksi valittiin Nieminen. 15 Muut esille tulleet asiat Ei muita asioita. 16 Kokouksen päättäminen Puheenjohtaja Salo päätti kokouksen. 17 Osallistujien seuraavat tehtävät Projektiryhmä - pyytää VMware-palvelinta käyttöönsä Tietohallintokeskukselta - Gitoriouksen ja muiden samantapaisten sovellusten tutkiminen - perustaa Korppi-ryhmän, johon kuuluu kaikki projektiorganisaatioon kuuluvat henkilöt - tekee ensimmäisen sovellusprototyypin - perehtyy Git-sovellukseen - perustaa Git-versioarkiston ja ilmoittaa sen tilaajille - tekee suunnitelman testaajien hyödyntämisestä. Tirronen - ensimmäisen demon käyttötestaajien mielipiteiden selvittäminen ja niiden tuominen projektiryhmän tietoon - mahdollisesti testaajien yhteystietojen antaminen projektiryhmälle. Santanen - luo Verso-projektille postilistan. 18 Palaverissa jaettu materiaali Santanen jakoi monisteen Tietotekniikan Sovellusprojektien resurssit tilaajille. Santanen jakoi paperin Sopimus projektin tulosten hyödyntämiseen kaikille.