Kehittäjä – millainen githubjälki sinulla on?

Kehittäjät ovat käsityöläisiä. Luovia, oman arvonsa tuntevia ja usein myös arvostuksensa ansainneita. Mutta mistä tunnistaa hyvän kehittäjän?

Parhaat tekijät metsästetään toisista yrityksistä. Mutta ne teistä, jotka ette pysty CV:ssä esittelemään palvelusvuosianne, miten teidät järjestetään arvoasteikolla? Entä miten erotetaan nousevat osaajat kirkkaiden tähtien joukosta?

On yksi ylivoimainen tapa tunnistaa osaava tai edistyvä kehittäjä: githubjälki.

Kirjoitan sen pienellä ja yhteen, koska kaikki Open Source -yhteisöt eivät ole Githubissa. Se ei ole olennaista. Olennaista on aktiivisuus ja osallistuminen yhteisöjen toimintaan.

Ei pelkkää koodin kirjoittamista

Monet suosituista projekteista ovat hyvin organisoituja. Niiden prosessit ovat vastaavia ja usein parempia kuin ohjelmistoyrityksissä. Yhteisöt toimivat hajallaan, mutta kykenevät parhaillaan tuottamaan erittäin laadukasta koodia. Yhteisössä on sovitut käytännöt uusista ominaisuuksista käytävään keskusteluun, koodin tuottamiseen, testaamiseen, koodin hyväksyntään ja katselmointiin, bugiraportointiin ja dokumentointiin.

Toimiminen Open Source -yhteisössä on opettavaista. Yhteisö edellyttää usein kontribuuttoreilta kurinalaisuutta, mutta toisaalta hyvin toimiessaan tarjoaa myös matalan kynnyksen osallistumiseen. Usein edellytyksenä oman koodin tuottamiseen on sitoutuminen yhteisiin koodauskäytäntöihin ja sovittuun testikattavuuteen. Koodi käy lähes poikkeuksetta jonkinlaisen hyväksyntäprosessin ennen päätymistään tuotantoon. Usein prosessi on osittain automatisoitu, mutta lähes poikkeuksetta se sisältää myös keskustelua muiden kehittäjien kanssa.

React Native projekti GitHubissa: ”Good first issue” kertoo, mistä tehtävistä uusien kontribuuttoreiden on helppo aloittaa.

Koodi ja sen tuottamisen mahdollistava ympäristö ovat oppimisen kannalta arvokkaita resursseja. Parhaat koodarit ovat laiskoja. He pyrkivät minimoimaan toistuvan työn. Koodin kääntämiseen ja julkaisu- sekä testausautomaatioon käytetyt työkalut sisältävät paljon arvokasta osaamispääomaa. Eikä ole tehokkaampaa tapaa oppia hyväksi devaajaksi, kuin lukea toisten kirjoittamaa koodia. Muiden, usein itseäsi parempien, kehittäjien kirjoittamien mallien (pattern) toistaminen tekee työstäsi tehokkaampaa ja koodistasi laadukkaampaa.

Kolmella koodirivillä voi saavuttaa paljon. Tästä esimerkkinä melkein pari miljoonaa latausta saanut is-object NPM:stä.

Yhteisöistä opittavaa

  • koodauskäytännöt
  • RFC:t, eli uusien ominaisuuksien hyväksyminen
  • julkaisu- ja kehitystyökalut
  • dokumentointikäytännöt
  • versiointikäytännöt ja elinkaariajattelu
  • julkaisukäytännöt
  • bugiraportointi
  • koodikatselmointi, hyväksyntä ja Pull Requestit
  • koodausmallit (patterns)
  • testiautomaatio

Yksilöllinen käsiala

Kehittäjän githubjälki voi myös ilmaista luovuutta, mutta siihen yhteisöt eivät sovellu. Persoonallisen kädenjäljen koodari saa parhaiten näkyviin henkilökohtaisten GitHub repositoryjen kautta. Oman projektin kautta on mahdollista osoittaa, miten hyvin muualta opitut käytännöt on omaksuttu. Parhaimmillaan ne osoittavat kehittäjän kykenevän yhdistämään erilaisia teknologioita jonkin aivan uuden luomiseksi.

Githubjäljen on hyvä ilmentää luovuutta. GitHubista löytyy jo tarpeettoman monta sovellusta hakusanoilla ”react redux todo”.

Githubjäljen ei tarvitse päättyä työsuhteen alkaessa. Yritykset toimivat aktiivisina kontribuuttoreina eri OpenSource-projekteissa. Työnantajaltasi voi löytyä myös joustavuutta kokeellisiin ja omaa osaamista kehittäviin irtiottoihin. Usein koodia tuotetaan projekteihin oman nimimerkin alla, jolloin pystyt myös työsuhteen aikana vahvistamaan omaa githubjälkeäsi.

Juha Suni

Toimin Valu Digitalin teknologiajohtajana sekä johtoryhmän ja hallituksen jäsenenä. Vastaan myös Showell-sovelluksen tuotekehityksestä.

JÄTÄ KOMMENTTI