Daily Archives: 24.09.2017

Company

Viimeinen projekti pois Pimeältä Puolelta

Saimme siirrettyä viimeisenkin projektin pois Koodin Pimeältä Puolelta, kun suurille asiakkaille toimitettu, edelliseltä toimittajalta PHZ Full Stack:lle siirretty IoT-projekti saatiin yksikkötestikattavuuden piiriin. Nyt k.o. projektin backend-puolella on yksikkötestikattavuus 45%. Laadun parantamista täytyy tosin jatkaa lisäämällä monitorointeja ja client-puolen testeillä.

PHZ Full Stack taistelee sitkeästi jokaisen koodaajan kokemaa koodin muuttamisen pelkoa vastaan. Kuten kaikki tietävät, yhdenkin merkin muuttaminen lähdekoodista tyypillisesti räjäyttää koko järjestelmän, joten muutoksen tekemisen pelko on aiheellinen. Asiakkaat ja projektipäälliköt eivät tunnetusti ole kovin tyytyväisiä kun perjantaina tuotantoon siirretään päivitykset, joiden jälkeen sivusto on alhaalla koko viikonlopun. Kukaan ei halua korjata ongelmia viikonloppuisin ja öisin.

Pelon voittamiseen tyypillinen ohjelmoijien käyttämä Pimeän Puolen käytäntö on kiertää pelottava koodin kohta sen sijaan että se refaktoroitaisiin asianmukaisesti hyvien ohjelmistotuotantokäytäntöjä (Clean Code) noudattaen. Kun koodaaja itse tai joku toinen ohjelmoija näkee seuraavan kerran kyseisen pelottavan kohdan, se on muuttunut entistä pelottavammaksi, ja Pimeän Puolen kierre on alkanut. Jatkuvan Pelon lisääntyminen johtaa spagettikoodiin, joka saa jokaisen projektiin osallistuvan Vihaamaan työtään. Lopulta tämä johtaa asiakkaan näkökulmasta pahimpaan mahdolliseen Kärsimykseen, eli versio 2.0:aan, eli aikaisempien investointien heittämiseen ikkunasta ulos ja järjestelmän kirjoittamiseen uudestaan nollasta. Tyypillisesti kuitenkin Pimeän Puolen käytännöt jatkuvat myös uudessa versiossa, joten mitään parannusta tällä tiellä ei ole saavutettavissa.

Koodin Pimeä Puoli on helppo, nopea ja etenkin juiorikoodaajia houkutteleva tie, mutta se ei ole voimakkaampi. PHZ:lla olemme toistuvasti pystyneet muuttamaan toisten IT-firmojen umpikujiin ajautuneet projektit Valoisalle puolelle testiautomaation avulla, säästäen kymmeniä miljoonia euroja uudelleenkirjoittamiseen kuluvalta hukalta. Kaikki uusi koodi on kuitenkin toteutettu uusimmalla teknologialla, kuten React Native, Redux, Clojure, Terraform yms.

Published by: