Toimintatavat open source projektissa


2015-01-28, 11:51 Kirjoittanut Ilkka Tengvall

Toimivassa avoimen lähdekoodin projekteissa tarvitaan säännöt eli prosessi, joka määrittelee missä säilytetään koodit ja dokumentit, missä pidetään listaa vaatimuksista ja vioista sekä miten kaikesta kommunikoidaan. Tämä on kuulostaa itsestään selvältä projektin hallinnalta, mutta avoimen koodin kanssa tämän tärkeys korostuu: Avoimen koodin yhteisöt ovat luonteeltaan monitoimittajaprojekteja. Koodia tehdään usein useassa yrityksessä, alihankkijoilla ja osin harrasteena. Jotta vältät sähläämisen ja turhan työn, suunnittele prosessi joka sopii projektiisi mahdollisimman aikaisin.

On hyödyllistä sopia ainakin seuraavat asiat:

  • Koodin versionhallinta
  • Koodin dokumentointi
  • Vikojen raportointi- ja seurantatyökalu
  • Kommunikointitapa kehittäjien, projektipäällikön ym. osallistujien kesken

Onneksemme ymmärrämme avoimet ohjelmistot ja osaamme hyödyntää näihin maksuttomia ohjelmistoja ja palveluita. Joskus on toki syytä maksaa hyvin toteutetusta palvelusta. Käydään läpi muutama esimerkki, jotka olen havainnut hyväksi.

Versionhallinta

Koodi täytyy olla paikassa, josta kaikki osapuolet saavat sen vaivattomasti käyttöönsä. Samoin sinne täytyy olla sovittu tapa viedä omat koodit. Sovi etukäteen tapa, jolla hyväksytään muutokset ja lisäykset. Sovi tapa jolla ne katselmoidaan, esimerkiksi käyttämällä Gerrit katselmointityökalua tai versionhallinnan muutospyyntöä ja sen kommentointia.

Versionhallintaan suosittelen laajasti käytettyä ja todella toimivaa Git versionhallintaa. Versionhallinan ympärille löytyy ilmaisia palveluita, jotka helpottavat muutosten seurantaa ja katselmointia, esim. GitHub tai SourceForge palveluna. Omaan suojattuun kehitysympäristöön voi asentaa yhteensopivan GitLab-palvelun.


Koodin dokumentointi

Miksi koodia tarvitsee dokumentoida, hyvä koodi dokumentoi itsensä? Noh, näin on teoriassa, mutta jotkut koodit dokumentoivat valitettavasti spagettibolognesen ;). Kun mennään komponenttitasolta ylempään arkkitehtuuriin, on hyödyksi olla dokumentaatio käytettävistä komponenteista ja niiden rajapinnoista. Komponentin voi hyvin dokumentoida omaan versionhallintaansa koodin rinnalle tai käyttää em. GitHub ja SourceForge palveluiden dokumentointityökaluja. Niissä on joko wiki tai muu yksinkertainen tyylittelyn osaava teksitiedostojen ja kuvien esitystapa.

Ehkä paras käyttämäni erillinen dokumentoitiväline on ollut Atlassian Confluence. Sen saa ilmaiseksi käyttöön avoimien lähdekoodien projekteille. Katso ehdot em. linkistä.

Mitä vaikeampi ja kauempana koodista dokumentointiväline on, sitä varmemmin dokumentit jää päivittämättä ja lukematta. Myös dokumenttien muutoksia on pystyttävä seuraamaan, joten helposti käytettävässä välineessä tulee olla myös versionhallinta. Sen tulee myös toimia ilman sidoksia käyttöjärjestelmään tai ostettavaan tuotteeseen. Lue: ei Word tai Powerpoint, vaan web-palvelu :)


Vikojen raportointi- ja seurantatyökalu

Tekemisen kohdistamiseksi oikeisiin asioihin tarvitaan työkalu vikojen ja kehitysideoiden seurantaan. Em. palvelut GitHub ja SourceForge tarjoavat myös työkalut tähän. Hyvässä työkalussa on yhteys koodeihin, jolloin esim. vikaraportista näkee suoraan sen korjaamiseksi tehdyt koodimuutokset. Tässä yhteydessä on myös hyvä muistaa tarkistaa, että työkalu tukee muutosten katselmointia.

Kommunikointi

Avoimien ohjelmistojen kehittäjät käyttävät yleisti sähköpostilistoja ja IRC rupatteluohjelmaa. Myös webbifoorumit ovat yleistyneet. Sähköpostilistoihin käytetään usein Mailman:ia, jota saa hostattuna ostopalveluna. Open source kehittäjät tavoittaa usein IRC:istä Freenode:n palvelimelta. Mm. SourceForge tarjoaa ilmaiseksi postilistat projekteille. Itse suosin IRC-kanavan ja esim. sähköpostilistan yhdistelmää.

Yhteenveto


Tässä nippu itse hyväksi kokemiani palveluita, joita saa vaivattomasti käyttöön avoimen lähdekoodin projekteihin. Toki jokainen projekti on omanlaisensa ja siihen tulee valita tehtävään sopivimmat työkalut. Pääasia on, että ne määritellään alkuvaiheessa. Muista myös julkaista määrittelysi helposti saataville. Jos tarvitset määrittelyyn apua, ota yhteyttä!

T. Ilkka Tengvall

Mainitut työkalulinkit:
Git: http://git-scm.com
Gerrit: https://code.google.com/p/gerrit
GitHub: https://github.com
SourceForge: http://sourceforge.net
GitLab: https://about.gitlab.com
Atlassian Confluence: https://www.atlassian.com/opensource/overview
IRC: http://fi.wikipedia.org/wiki/IRC
Freenode IRC service: https://freenode.net
Mailman: http://www.gnu.org/software/mailman


comments powered by Disqus