For et drøyt halvår siden publiserte Shortcut kildekoden til Trafikanten for Android på Gitorious.org. Jeg laget denne applikasjonen for å bli kjent med Androidplattformen, og for å få tilgang på sanntidsopplysninger på min Androidtelefon.

Trafikantens betingelser for bruk tillater ikke kommersiell bruk av deres data, så dette prosjektet vil alltid være et fritidsprosjekt. Min hovedmotivasjon for å frigi kildekoden og oppfordre til bidrag fra andre utviklere var derfor å se hvor mye flere utviklere kunne få gjort ved å bidra med litt fritid hver.

User serviceable parts inside

Vi oppfordret til å lage sin kopi av kildekoden (en clone i Git-språket) og gjøre de endringene man ønsker. Disse endringene kan så samles til en merge request, som er et begrep Gitorious har for å be noen om å ta i bruk endringer en selv har laget.

Androids market er ikke fullt så mye sirkus som Apples Appstore. Ettersom det enn så lenge ikke er mulig å ta betalt for applikasjoner mot norske brukere bærer det preg av dugnadsånd, pionervirksomhet og glade amatører som meg. De første anmeldelsene av Trafikanten-appen var relativt entydige:

Kan bli en bra app, men har foreløpig ubrukelig trege søk

Applikasjonen var treg.

Gjør det bedre selv hvis du kan

Øystein Gulliksen var raskt ute med første bidrag i juni: posisjonering ved hjelp av GSM-sendere, som gjorde at søk etter stoppesteder i nærheten gikk raskere.

Så, for tre måneder siden, dukket det opp en mail til meg fra Gitorious. Simon Skrede hadde sendt inn en merge request der han fjernet noe kode som ikke var i bruk. Resultatet? Applikasjonen kjørte nå raskere.

Så, for et par uker siden, fikk jeg en ny merge request på Gitorious, der Marius Gravdahl hadde lagt inn støtte for live folders (at man får en «mappe» på skrivebordet på telefonen som viser sist brukte stoppesteder, klikker man på dem går man inn i applikasjonen). Marius fortsatte å sende merge requests, han har gjort en enorm jobb med stabilitet og ytelse, og har egenhendig gjort at applikasjonens gjennomsnittrating har økt. Samtidig viser Googles statistikk at antall installerte versjoner øker og at folk fortsetter å ha applikasjonen installert (1671 installasjoner, 63% av disse bruker applikasjonen).

Jeg har nå laget en egen gruppe på Gitorious og dermed gitt Marius Gravdahl tilgang til å publisere direkte til den opprinnelige applikasjonen på Gitorious. I virkeligheten er det ham som bidrar mest til dette prosjektet nå, jeg bare startet det.

Bortsett fra at Androidbrukere nå har en bra sanntidsapplikasjon tilgjengelig synes jeg noe av det mest interessante med denne historien er prosessen jeg har sett. Dette er, slik jeg ser det, noen av suksessfaktorene:

  1. Fri programvare inviterer til bidragVed å frigi kildekoden til et program åpner man for at den som bruker programmet kan endre det slik at det fungerer bedre for ham. Det er dette som er essensen i fri programvare. Av de 1600 som har installert programmet er det fire-fem (som jeg vet om) som har gjort endringer i det. Det er ikke noe høyt tall, men gjenspeiler vel omtrent forholdet mellom «brukere» og «utviklere» av programvare.
  2. Distribuert versjonskontroll  muliggjør deling. Den neste faktoren som har gjort prosessen mulig er at vi bruker distribuert versjonskontroll – Git. Med git kan andre utviklere jobbe videre med et prosjekt og publisere sine endringer til andre. Vi har nok enda bare sett toppen av dette isfjellet; de fleste prosjekter som bruker Git (dette inkludert) opererer fortsatt med en «offisiell» hovedgren av prosjektet.
  3. Sosial programmering er framtida. Gitorious har også vært en suksessfaktor i å få dette til. På Gitorious var det mulig for bidragsyterne å hente kildekoden og publisere sine endringer. Ved å lage en merge request kan bidragsyterne når de er ferdige med et stykke funksjonalitet si fra at de har noe de ønsker integrert, og Gitorious har en prosess rundt kvalitetssikring og integrering av dette. Den siste merge requesten består for eksempel av tre versjoner, der bidragsyteren har gjort oppdateringer i selve merge requesten etter at den ble laget.
  4. En åpen plattform vinner i lengden. I disse iPad-dager er dette noe ikke så mange tilsynelatende er opptatt av, men det at Android er en åpen plattform og selv er fri programvare er for mange et vektig argument for denne plattformen. Jeg tiltrekkes av Android nettopp fordi den gir meg som utvikler større frihet. Som jeg nevnte er det bare fire av 1600 av denne applikasjonen sine brukere som har bidratt til kildekoden, men her er det nettopp dette som har gjort at den er blitt såpass bra. «Vanlige brukere» av en applikasjon tjener altså på at «hackerne» kan endre på den, på samme måte som eiere av en bil tjener på at mekanikeren kan gjøre endringer på bilen uten å kontakte produsenten.

På samme måte som Trafikanten på Android kan forbedres av utviklere kan også Android selv – altså operativsystemet på telefonen – forbedres av utviklere utenfor Google. Jeg tror dette på sikt vil gjøre Android til en bedre plattform enn dens proprietære konkurrenter, og jeg tror prosessen som kommer til å sørge for det er den samme prosessen som har gjort denne lille applikasjonen så mye bedre det siste halve året.