Rakettitieteilijöiden 10 käskyä laadukkaan kooditulevaisuuden puolesta

 
Rakettitiede laadukas koodi
 

Laadimme kymmenen käskyä, jotka tarkoin lukemalla johdattavat takuuvarmasti timanttiseen koodausjälkeen, vievät softaprojektit kunnialla maaliin sekä tekevät alan yksilöistä yli työnkuvarajojen sekä parempia ammattilaisia että ihmisiä.

Takaisin Mieli-sivulle

No okei, noudattamatta jättämisestä ei lankea päälle kirousta. Puhukaamme käskyjen sijaan vinkeistä. Mitä kannattaa tehdä ja mitä taas ei laadukkaan koodaustyön takaamiseksi? Vaikka käskyt – eiku vinkit – on kirjoitettu kehittäjille, jokaisen lusikkansa softaprojekteihin pistävän kannattaa nämä lukaista läpi. 10 vuoden kokemuksen ja rautaisen konsulttijengimme johdosta tohdimme väittää, että jotakin asiasta tiedämme.

Lue (tämä oli nyt se käsky)!

1. Kunnioita kollegoitasi

Laatu syntyy ihmisystävällisyydestä ja kyvystä nähdä horisonttiin omia varpaita kauemmas. Koodi kirjoitetaan kollegoille, jotka ovat usein ihmisiä. Ei siis koneille – tietokone kyllä tekee hyvin sen, mitä käsketään, muttei välitä, ovatko metodit kuvaavia ja helppolukuisia. 

Ei kehittäjä aina itsekään muista, missä mielentilassa on kuukausi sitten koodiaan kirjoitellut ja miksi eri ratkaisuihin on päätynyt. Vanha seniorivinkki: tulevaisuuden minälle voi laittaa terkkuja esimerkiksi Javadocin sekaan.

2. Ole kärsivällinen

Koodaamisessa vaaditaan kärsivällisyyttä niin tekijältä kuin tilaajalta. Kun tehdään jotain monimutkaista, jota ei ennestään ole olemassa, tarvitaan paljon miettimistä, testaamista, neuvottelua ja uudelleen tekemistä. Eli hommaa, joka saattaa näyttää hitaalta junnaamiselta. Jos tässä vaiheessa yrittää hoppuilla tai oikaista, ei saada laatua vaan sekundaa.

Alalle tulevan voi aluksi opettaa vääntämään yhtä kampea, kunhan häntä ei vangita kammenvääntäjäksi hyväksikäyttävällä riistosopimuksella. Ihminen, jota ei riistetä, on luonnostaan utelias ja halukas oppimaan lisää. Kammenvääntämisen intensiivikurssi saattaa avata jollekulle koodaustaidon maailman ensimmäistä kertaa, ja tästä on hyvä jatkaa eteenpäin sekä itse opettelemalla että jatkokursseja käymällä. 

Kaikkien ei tarvitse oppia koodaamaan kolmevuotiaana iskän Commodore 64:llä tullakseen myöhemmin asiantuntijoiksi.

3. Dokumentoi riittävän yksityiskohtaisesti

Ensimmäiseen käskyyn viitaten: koodia ei koskaan kirjoiteta itselle vaan sille, joka seuraavaksi dokumentoinnin ja koodin lukee. Huonolla tuurilla se on tekijä itse!

”The code is the documentation", sanovat. Vielä ei kuitenkaan ole näkynyt mitään Hello Worldia monimutkaisempaa, jossa tämä todella toteutuisi. Koodaustaitoinen osaa (yleensä) lukea koodista, mitä mikäkin komento tekee, mutta tämä ei riitä valaisemaan, miksi näin tehdään saati mitä sillä pyritään saamaan aikaan. Nämä kun saa tietää, jo omituisennäköinen vieraskielinenkin koodi toimii loppuna dokumentaationa.

4. Koodaa ytimekkäästi

Hyvässä koodissa keskitytään ratkaisemaan tehtävä tai ongelma mahdollisimman ytimekkäästi ja idioottivarmasti. Yleensä yrittäessä kirjoittaa kaiken mahdollisimman lyhyesti, siitä tulee väkisin melko tehokasta. Pilko kaikki pieneksi, älä milloinkaan samaa kahdesti. 

Jos joku algoritmi sattuu jälkeenpäin näkymään harvinaisen monimutkaiselta, kannattaa kommenteissa armahtaa sen lukija: “Ei kannata yrittää ymmärtää. Itsekään en ymmärrä, miksi tämä toimii t. Tekijä.”

5. Jätä kikkailut vapaa-ajallesi

Tai sattuu Juhaa leukaan. Ohjelmointikielien jänniä ominaisuuksia käytetään silloin, kun niistä todella on hyötyä, mutta ei muulloin. Kaikenlainen nokkeluus ja kikkailu kannattaa jättää omia projekteja varten. Kirjoita mieluummin pari riviä pidempi pätkä varmaa koodia kuin jokin tosi lyhyt mutta täysin läpinäkymätön sekapäisyys, jota et itsekään osaa enää seuraavalla viikolla purkaa.

Olemme kuitenkin kannustaneet jo ala-asteella haastamaan ATK-opettajan itsetuntoa kommentilla “pahoittelut, jos ohjelmani näyttää hankalalta, mutta aivoni kieltäytyivät alentumaan toivotulle epäsofistikoituneisuuden tasolle".

6. Älä ota riskejä, kun laatu on pelissä

Kiireessä väkisin putkinäöllä pöhistyt projektit kaatuvat päälle viimeistään siinä vaiheessa, kun pitäisi voittaa samalle kentälle astunut paremmin varautunut kilpailija tai viedä sijoitusrahoilla tohellettu projekti ensi kertaa todelliseen käyttöön.

Yrityksen imago ottaa isoimman hitin, joten voi vain kuvitella turhautumisen määrää, kun tuli säästettyä hieman väärässä paikassa.

7. Huomioi erilaiset käyttäjäryhmät

Toivetulevaisuudessa esteettömyyttä poistavat erilaiset teknologiset ratkaisut. Kyber- ja nanotekniikalla ennen pitkää korvataan vaurioituneita aisteja ja poistetaan esimerkiksi liikuntavammaisuutta. Sitä ennen saattaa olla hyvä varata kokonainen dedikoitu henkilö vastaamaan tästä alueesta QA:ssa.

UX designerin tärkeimmät ominaisuudet ovat pitkälti samat kuin hyvän devaajan, koska näillä osa-alueilla on niin suuri limittäisyys.

8. Luota ihmisiin ympärilläsi

Kiireen ja paineiden alla esiintyy helposti haluttomuutta kuunnella asiantuntijaa, yli-itsevarmuutta ja uppiniskaista oman asiantuntevuuden harhaoletusta. Sivuoireina voi olla myös halua päästä äkkiä halvalla sekä haluttomuutta selvittää, kuinka paljon hommat todellisuudessa maksavat. 

Älä anna niille valtaa. Ota vähän etäisyyttä, mieti hetki kunnolla omaa toimintaasi ja juo vaikka pirtelö. Siitä se maailma taas kirkastuu.

9. Älä aliarvioi työympäristön merkitystä

Puutteelliset työolosuhteet (esimerkiksi häly, ahtaus ja rauhattomuus) sekä puutteelliset työvälineet (esimerkiksi rajoitetut käyttöoikeudet, huono työtietokone tai vain toimistotyöntekijöiden tarpeisiin suunniteltu IT-infrastruktuuri devauspaikalla) kasvattavat banaania otsalla.

Kaikki on pois laadusta, joten mieti kahteen kertaan, ovatko nämä asiat takuulla kunnossa. Eikä käyttäjäkokemuksen kartoittaminen ole tässäkään asiassa huono idea.

10. Ole inhimillinen

Devaaja ei ole koneen jatke, jota voi kohdellakin kuin konetta. Kukaan ei keskitysleirikoodaamisen työympäristössä pidemmän päälle voi hyvin.

Olemme kaikki tuntevia ihmisiä ja parhaimmillamme ympäristössä, jossa tiedämme, mitä olemme tekemässä ja saamme palautetta, kannustusta ja tukeakin tarvittaessa.

Toksisessa ja ylikuormittavassa työympäristössä korkean laadun tavoittelu on absurdia, kun taas inhimillisessä ja kannustavassa ympäristössä laatu, tarmo ja uudet ideat kukoistavat.

Rakettitiede juhlii tänä vuonna 10-vuotissynttäreitään katseet tiukasti horisontissa. Jotta tulevat vuosikymmenetkin tuottavat asiakkaillemme tehokasta työntövoimaa vaativaan ohjelmistokehitykseen, halusimme yhdessä Mielenterveyden keskusliiton kanssa pohtia, mitä voisimme tehdä alalla paremmin. Päätimme aloittaa lähtölaskennan kohti mielenterveysmyönteisempää huomista ja lähdimme matkalle etsimään keinoja organisaatiokulttuurien ja työntekijöiden jaksamisen kehittämiseen.

Kehittäjä: kurkkaa, millaisia työmahdollisuuksia tarjoamme!

Ota haltuun Mieli-kieli!

Lue myös:

Rakettitiede väittää: tulevaisuuden ohjelmistokieli on mieli

Diablogi: devaajan viiden tähden Mieli-menu

IT-johtajat äänessä: miten ihmisiä johdetaan tänään?

Bugaava Mieli on IT-alan mörkö – johtamisen merkitys henkilöstön työssäjaksamiseen

Hot or not? Aikamatka ohjelmointikielien maailmaan