Ohjelmistoprojektin etenemisen ennustaminen automaattisesti kerätyllä datalla
Karttunen, Mikko (2017)
Karttunen, Mikko
2017
Tietotekniikka
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2017-06-07
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201705101361
https://urn.fi/URN:NBN:fi:tty-201705101361
Tiivistelmä
Avoimen lähdekoodin projekteja isännöivistä palveluista voidaan kerätä projekteihin liittyvää ohjelmistotuotantodataa automaattisella louhinnalla. Tätä dataa voidaan käyttää ohjelmistoprojektin etenemisen ennustamiseen, mikä auttaa projektipäällikköä ennakoimaan projektin resurssitarpeita. Tämän tutkimuksen tavoitteena oli selvittää voiko avoimen lähdekoodin ohjelmistoprojektin työtehtävien määrän kasvua ennustaa käyttämällä automaattisesti louhittua ohjelmistotuotantodataa. Tutkimuksessa etsittiin ennustuspotentiaalia valituista datapareista viiveellisen yhteyden avulla eli kuinka muutos yhdessä aikasarjassa vaikuttaa viiveellä toiseen tai itseensä.
Tutkimuksessa käytetty kymmenen projektin aineisto kerättiin GitHub-verkkopalvelusta. Seitsemässä projektissa tuotteena on tekstinkäsittelyohjelma ja kolmessa ei. Projekteja tutkittiin visualisoinnin, ristikorrelaation, impulssivastefunktion ja autokorrelaation avulla. Visualisoinnilla tutkittiin kokonaiskuvaa ja sopivaa aikaväliä ennustuspotentiaalin etsimiseen. Matemaattisilla menetelmillä tutkittiin aikasarjojen välistä viiveellistä yhteyttä eli kuinka samanlainen viivästetty versio yhdestä aikasarjasta on toiseen verrattuna.
Suurimmasta osasta projekteja löytyi alle viikon aikajänteellä näkyvä yhteys dataparien välillä. Aikasarjat oli koottu viikkotasolle eli yhteys näkyi ilman viivästystä. Eri dataa sisältävistä datapareista ei löytynyt yleisluontoista viiveellistä yhteyttä yli viikon viiveellä. Työtehtävien sisältä löytyi kuitenkin voimakasta autokorrelaatiota 90% projekteista eli työtehtävien ilmestymisessä on säännönmukaisuutta. Tätä voidaan käyttää ennustamiseen, mutta autokorrelaatiolla ei voida ennustaa yllättäviä muutoksia aikasarjoissa.
Projektipäällikkö voi ennustaa alle viikon aikajänteellä näkyvän yhteyden perusteella työtehtävien ilmestymistä, jos työtahti on tiedossa. Esimerkiksi työtahdin lisääminen nopeuttaa myös työtehtävien ilmestymistä. Työtehtävien autokorrelaation avulla olisi mahdollista antaa projektin etenemisestä suuntaa antava ennuste esimerkiksi GitHubin tehtävienhallintajärjestelmän yhteydessä.
Tutkimuksessa käytetty kymmenen projektin aineisto kerättiin GitHub-verkkopalvelusta. Seitsemässä projektissa tuotteena on tekstinkäsittelyohjelma ja kolmessa ei. Projekteja tutkittiin visualisoinnin, ristikorrelaation, impulssivastefunktion ja autokorrelaation avulla. Visualisoinnilla tutkittiin kokonaiskuvaa ja sopivaa aikaväliä ennustuspotentiaalin etsimiseen. Matemaattisilla menetelmillä tutkittiin aikasarjojen välistä viiveellistä yhteyttä eli kuinka samanlainen viivästetty versio yhdestä aikasarjasta on toiseen verrattuna.
Suurimmasta osasta projekteja löytyi alle viikon aikajänteellä näkyvä yhteys dataparien välillä. Aikasarjat oli koottu viikkotasolle eli yhteys näkyi ilman viivästystä. Eri dataa sisältävistä datapareista ei löytynyt yleisluontoista viiveellistä yhteyttä yli viikon viiveellä. Työtehtävien sisältä löytyi kuitenkin voimakasta autokorrelaatiota 90% projekteista eli työtehtävien ilmestymisessä on säännönmukaisuutta. Tätä voidaan käyttää ennustamiseen, mutta autokorrelaatiolla ei voida ennustaa yllättäviä muutoksia aikasarjoissa.
Projektipäällikkö voi ennustaa alle viikon aikajänteellä näkyvän yhteyden perusteella työtehtävien ilmestymistä, jos työtahti on tiedossa. Esimerkiksi työtahdin lisääminen nopeuttaa myös työtehtävien ilmestymistä. Työtehtävien autokorrelaation avulla olisi mahdollista antaa projektin etenemisestä suuntaa antava ennuste esimerkiksi GitHubin tehtävienhallintajärjestelmän yhteydessä.