Hallittu ohjelmistokehitys voittoa tavoittelemattomassa vapaaehtoistyössä
Olli, Janne (2011)
Olli, Janne
Keski-Pohjanmaan ammattikorkeakoulu
2011
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201104043845
https://urn.fi/URN:NBN:fi:amk-201104043845
Tiivistelmä
Suomen Rauhanyhdistysten Keskusyhdistyksen järjestötoiminnassa tarvittiin erilaisia yhdistyksen toimintaa ja yhdistyksen kautta tehtävää uskonnollista lähetystyötä helpottavia ohjelmistoja ja tietoteknisiä ratkaisuja. Vapaaehtoisvoimin toteutettavassa ohjelmistokehitystyössä kohdattiin ongelmia, jotka johtuivat pääosin huonosta työn organisoinnista ja projektinhallinnasta. Näihin ongelmiin pyrittiin löytämään ratkaisu.
Opinnäytetyössä kuvataan organisaatiorakenteessa ja ohjelmistokehitystyössä havaitut puutteet ja ongelmat sekä verrataan havaittuja ongelmia organisaatiorakenteiden ja ohjelmistokehitystyössä yleisesti tunnettuihin ominaisuuksiin ja ongelmiin. Näiden tietojen pohjalta lähdettiin rakentamaan sellaista organisaatiota ja ohjelmistokehitysmallia, jotka istuisivat hyvin uskonnollista toimintaa harjoittavan yhdistyksen olemassa olevaan perusorganisaatioon samalla tukien mahdollisimman hyvin talkoopohjaista ohjelmointikehitystyötä. Haasteen sopivien mallien löytymiseen toi se, että ohjelmistokehitystyö ei kuulunut yhdistyksen varsinaiseen toimenkuvaan. Opinnäytetyön aikana erilaisia malleja arvioitiin ja kokeiltiin sen perusteella, mikä toimisi parhaiten tilanteessa, jossa kaukana toisistaan asuvat organisaation jäsenet voivat osallistua ohjelmointityöhön vain muutamia tunteja viikossa. Eri malleja tuli tarkastella myös siten, että niitä voitaisiin hyödyntää myös silloin, kun ohjelmiston vaatimukset muuttuvat nopeasti ja ohjelmoijien vaihtuvuus on suuri.
Opinnäytetyön aikana organisaation pohjaksi tarkentui matriisiorganisaatio, jossa ohjelmointityö oli jaettu pääosin yhdistyksen eri sidosryhmien mukaisiin linjoihin. Ohjelmistojen kehitysvaiheen nopeisiin muutoksiin apua toi parhaiten Ketterä-ohjelmistokehitysmalli. Perusmallista räätälöitiin kahden sprintin Scrum-prosessi, jossa otettiin paremmin huomioon talkootyön luonne. Uusien mallien ja työkalujen avulla saatiin talkootyöllä syntyvien ohjelmistojen laatua parannettua sekä pystyttiin paremmin arvioimaan työkuormaa ja aikatauluja. Ohjelmistokehitykseen yhtenä osana kuuluva ylläpito annettiin pääosin käyttäjien vastuulle, jolloin vähäiset talkootuntimäärät voitiin hyödyntää mahdollisimman hyvin itse ohjelmiston määrittelyyn ja toteutukseen. Käyttäjien vastuulle annettiin uusien käyttäjien koulutukset ja opastukset sekä käyttäjäpalautteen keruu. Käyttäjien vaihtuessa osa tietotaidosta saattaa kadota, joten tulevaisuudessa voi olla tarpeen palkata yksi henkilö ylläpidon vastuuhenkilöksi.
Opinnäytetyössä kuvataan organisaatiorakenteessa ja ohjelmistokehitystyössä havaitut puutteet ja ongelmat sekä verrataan havaittuja ongelmia organisaatiorakenteiden ja ohjelmistokehitystyössä yleisesti tunnettuihin ominaisuuksiin ja ongelmiin. Näiden tietojen pohjalta lähdettiin rakentamaan sellaista organisaatiota ja ohjelmistokehitysmallia, jotka istuisivat hyvin uskonnollista toimintaa harjoittavan yhdistyksen olemassa olevaan perusorganisaatioon samalla tukien mahdollisimman hyvin talkoopohjaista ohjelmointikehitystyötä. Haasteen sopivien mallien löytymiseen toi se, että ohjelmistokehitystyö ei kuulunut yhdistyksen varsinaiseen toimenkuvaan. Opinnäytetyön aikana erilaisia malleja arvioitiin ja kokeiltiin sen perusteella, mikä toimisi parhaiten tilanteessa, jossa kaukana toisistaan asuvat organisaation jäsenet voivat osallistua ohjelmointityöhön vain muutamia tunteja viikossa. Eri malleja tuli tarkastella myös siten, että niitä voitaisiin hyödyntää myös silloin, kun ohjelmiston vaatimukset muuttuvat nopeasti ja ohjelmoijien vaihtuvuus on suuri.
Opinnäytetyön aikana organisaation pohjaksi tarkentui matriisiorganisaatio, jossa ohjelmointityö oli jaettu pääosin yhdistyksen eri sidosryhmien mukaisiin linjoihin. Ohjelmistojen kehitysvaiheen nopeisiin muutoksiin apua toi parhaiten Ketterä-ohjelmistokehitysmalli. Perusmallista räätälöitiin kahden sprintin Scrum-prosessi, jossa otettiin paremmin huomioon talkootyön luonne. Uusien mallien ja työkalujen avulla saatiin talkootyöllä syntyvien ohjelmistojen laatua parannettua sekä pystyttiin paremmin arvioimaan työkuormaa ja aikatauluja. Ohjelmistokehitykseen yhtenä osana kuuluva ylläpito annettiin pääosin käyttäjien vastuulle, jolloin vähäiset talkootuntimäärät voitiin hyödyntää mahdollisimman hyvin itse ohjelmiston määrittelyyn ja toteutukseen. Käyttäjien vastuulle annettiin uusien käyttäjien koulutukset ja opastukset sekä käyttäjäpalautteen keruu. Käyttäjien vaihtuessa osa tietotaidosta saattaa kadota, joten tulevaisuudessa voi olla tarpeen palkata yksi henkilö ylläpidon vastuuhenkilöksi.