Julkaistu 21.1.2019

Yhteisömanageri – projektin supersankari

Yhteisömanageri tulee ja pelastaa avoimen lähdekoodin projektin!

Avoimen lähdekoodin projektit ovat nykyaikainen tapa tehdä ohjelmistokehitystä. Avoimuudella on monia etuja: projektiin saadaan monenlaista osaamista ja kaikki hyötyvät lopputuloksesta. Lisäksi tyypillisen projektijohdon aikasyöpöt, sopimusten viilaaminen ja raportointi, loistavat poissaoloaan, joten toiminta on ketterää ja kustannustehokasta vaikka itse koodaustyö teetettäisiinkin palkatulla henkilökunnalla.

Avoimuus vaatii yhteistyötä

Avoimuus ei kuitenkaan ole taikasana joka yksinään takaa onnistumisen. Pelkkä lähdekoodin avaaminen GitHubiin ei takaa tehokasta yhteiskehittämistä. Varsinkin suomalaisten suosima malli kun tuntuu olevan yksinään puuhailu, ja koodin avaaminen tapahtuu vasta valmiin tuotteen lataamalla: “Mää tein tämmösen”, jos silloinkaan. Hyvässä avoimen lähdekoodin projektissa tarvitaankin runsaasti viestintää, koordinointia ja yhdessä suunnittelua. Näin saavutetaan parhaat hyödyt ja vältetään päällekkäisen työn tekeminen ja ohjelmistokehityksen tarpeeton haarautuminen.

Tätä yhteiskehittämistä johtamaan tarvitaan siis yhteisömanageri tai perinteisemmin koordinaattori. Tämän supersankarin tehtäviin kuuluu projektin viestinnän ylläpito ja kehittäminen, muistuttelu dokumentoinnin tärkeydestä sekä ennen kaikkea projektiin osallistuvien kannustaminen ja motivoiminen. Käytännössä yhteisömanageri siis järjestää projektin sisäisiä tapaamisia, tarkkailee useita viestintäkanavia ja varmistaa, että kaikki osallistujat tietävät mitä he itse, saati muut, ovat seuraavaksi tekemässä. Yhteisömanagerilta ei välttämättä vaadita syvällistä teknillistä osaamista, mutta olisi hyvä, jos tämä olisi sen verran sisällä toteutettavassa teknologiassa että tuntisi tuotteen. Näin ongelmakohtiin on helpompi pureutua tai vaikkapa lähteä hankkimaan rahoitusta teknologian kehitykseen sopivilta tahoilta.

Yhteisökehittämisen roolit

Yhteisömanageri ei suinkaan ole vastuussa koko projektista. Tyypillisesti avoimen lähdekoodin kehitysprojekteissa hommaa koordinoi jonkinlainen tekninen tai ei-tekninen ohjaus- tai johtoryhmä, ja itse toteutuksesta ja koodinpätkien yhteen parsimisesta vastaa viime kädessä yksi tai useampi pääkehittäjä. Näiden ohjauksessa toimii sitten epälukuinen joukko koodareita, dokumentoijia ja testaajia. Lisäksi varsinkin pidemmissä projekteissa mukaan tulee lisää toimijoita pitkin matkaa, ja heidän perehdyttämisessään yhteisömanagerilla on tärkeä rooli. Jos projektin käyttämät viestintäkanavat vaikka muuttuvat kesken matkan (tai poikkeavat yleisimmistä totutuista, lue: GitHub), on vaarana että kaikki tieto ei tavoitakaan kaikkia. Avoimuus kaikessa kehittämisessä tulee ottaa ohjenuoraksi ja välttää aliprojektien sisäistä keskustelua, jotta tieto kantautuu kaikkien korviin. Tiedotuksen suhteen siis “parempi överit kuin vajarit”. Kehittäjät oppivat kyllä suodattamaan itselleen epärelevantin informaation pois.

Pienempiä yhteisöjä ja projekteja taas uhkaa joskus ns. bussiskenaario: jos pääkehittäjä tai ohjausryhmän edustaja jää bussin alle (tai vähemmän dramaattisesti on vaikka influenssan vuoksi useamman viikon työkyvytön), saattaa koko projektin eteneminen jähmettyä. Jos yhteisömanageri on saanut koordinoitua dokumentoinnin ja työnjaon hyvin, voidaan tällaiseltakin välttyä.

Yhteisömanagerin palkkaamisesta saatava hyödyt ovat siis yhtä moninaiset kuin hänen työtehtävänsäkin. Hyvin johdetussa projektissa motivoituneet ohjelmoijat tuntevat toisensa, kokevat kuuluvansa yhteisöön ja osaavat jakaa tehtävät tarkoituksenmukaisella tavalla. Tällainen porukka toteuttaa projektin nopeasti ja tehokkaasti kasvattaen samalla omaa pääomaansa oppimalla uutta myös toisiltaan.

Gispossa tunnetaan yhteisöjen kehittämisen prosessit. Olemme mukana mm. Oskari-yhteisön verkoston koordinoimisessa ja osallistumme aktiivisesti kansainväliseen avoimen lähdekoodin paikkatieto-ohjelmistojen kehitykseen.

Profiilikuva

Gispo

Gispo on suomalainen avoimen lähdekoodin paikkatietotalo, jonka palveluihin kuuluu paikkatietokonsultointia, sovelluskehitystä, koulutusta sekä ylläpitoa ja tukea.