07.12.2021
Simo Hellsten

Töissä Drupal-ylläpidossa – millaista on kehittäjän arki?

Kuvittele, että sinulta kysytään työhaastattelussa, että osaatko jonglöörata. Sanot, että osaat – olet harjoitellut kauan neljän pallon pitämistä ilmassa samaan aikaan. “Hienoa, paikka on sinun”, he sanovat.

Sinulle heitetään ensimmäinen pallo. Se näyttää kuluneelta ja moneen kertaan paikatulta, mutta sinänsä ihan tavalliselta pallolta. Toiseksi palloksi saat pienen metallikuulan, jota ei saa rikki edes yrittämällä. Sen kanssa on helppoa ja huoletonta. Mutta kolmas pallo onkin iso ja painava lasipallo, joka pudotessaan hajoaa miljoonaksi sirpaleeksi. Lisäksi sinulle kerrotaan, että sinulle on myös neljäs pallo, mutta ensin täytyy odottaa turvallisuusluokitusta suojelupoliisilta. Ja osaathan sinä niillä jonglöörata, pidät vaan pallot ilmassa. Sitten kuun kolmantena keskiviikkona sinulle heitetään vielä viisi palloa lisää.

Tervetuloa ylläpito- ja pienkehitystiimimme arkeen!

Omakoodarit takaavat laadukkaan ja tehokkaan ylläpidon

Toimin ylläpitotiimissämme muutaman verkkosivuston “omakoodarina”, jolloin vastaan yhdessä toisen druidin kanssa sivuston ylläpidosta ja pienkehityksestä. Tällaiseen sivustoon olen perehtynyt huolellisesti ja viestin asiakkaan kanssa yleensä säännöllisesti. Eri sivustot voivat olla hyvin erilaisia. Toisinaan sivustoa on muokattu vuosien varrella useiden eri firmojen ja koodareiden toimesta moneen eri suuntaan. Tällöin vanhan teknisen toteutuksen selvittämiseen kuluu alussa helposti yhtä paljon aikaa kuin muutosten varsinaiseen tekemiseen. Juuri siksi meillä on sivustoille omakoodarit.

Yksinkertainen toteutus tekee sivuston ylläpitämisestä helppoa ja tietoturvasta varmaa. Sen sijaan sivusto, joka keskustelee internetin yli useiden muiden palveluiden kanssa, on teoriassa aina riskialttiimpi tietoturvan suhteen ja herkempi häiriöille. Monimutkainen sivusto on usein myös bisneskriittinen – sen häiriöt vaikuttavat asiakkaan liiketoimintaan suoraan.

Drupal-ylläpidossa monipuolisuus on valttia

Ylläpitotehtävissä vaaditaan monenlaista osaamista – on hyvinkin suotavaa olla jokapaikanhöylä. Hallitsen sekä sivuston ulkoasun muotoilun että palvelimella pyörivän ohjelmakoodin eli olen “full-stack developer”. Osaan myös arvioida sivustojen käytettävyyttä ja saavutettavuutta ja vähän muutakin. Kaikessa ei kuitenkaan voi olla paras, joten lopulta ehkä tärkein taito on osata tunnistaa ongelmakohdat. Kun huomaa, mikä aiheuttaa ongelman tai mitä kohtaa koodissa tulee muuttaa, voi arvioida korjaukseen tai muutokseen tarvittavan työmäärän.

Osa ongelmista ratkeaa kansainvälisen Drupal-yhteisön julkaisemilla päivityksillä, osa taas vaatii koodausta alusta asti itse. Joskus ongelman voi ohjata toiselle koodarille, jolla on sopivampi osaaminen ongelman ratkaisemiseen. Oma yleishyödyllinen koodi julkaistaan vastavuoroisesti Drupal-yhteisön kautta muille.

Miltä näyttää tyypillinen työpäiväni?

Aloitan työpäiväni aina ylläpitotiimin aamupalaverissa. Palaverissa saan tietää, mitä kukin aikoo tehdä päivän aikana. Vaikka iso osa päivästä kuluu tiiviisti oman näppäimistön ääressä, tarvitsen toisinaan apua muilta. Säännöllinen tiimin kesken koordinoitava asia on katselmointien aikataulutus. Kaikille teknisille muutoksille tehdään vertaisarviointi toisen kehittäjän toimesta ennen kuin ne liitetään osaksi sivuston koodia. Katselmoinnit voivat joskus viedä jopa kokonaisen päivän ja aikataulutus pitää suunnitella siten, että projektit etenevät, eikä vertaisarvioinnista muodostu pullonkaulaa toisten työlle.

Suurempien sivustojen ylläpidossa suosimme viikkopalavereja asiakkaan kanssa. Etenkin silloin, kun sivustokokonaisuudessa on mukana monta toimijaa, on syytä pysyä hyvin perillä siitä, mitä kukin on tekemässä. Useimmat säännölliset palaverit pyritään pitämään lyhyinä, vartista puoleen tuntiin.

Oman työskentelyn ohessa käyn keskusteluja Slackissa. Chattaan sekä työtovereiden että asiakkaiden kanssa pyytäen tarkennuksia tai neuvoja. Kun saan jonkin kokonaisuuden valmiiksi, teen koodista PR:n eli pull requestin – lisään muutokset koodivarastoon ja pyydän kollegaa katselmoimaan muutokset: onko koodi toimivaa ja tekeekö se sen, mitä asiakas on pyytänyt. Odottaessani oman koodini vertaisarviointia voin siirtyä tekemään sivustolle seuraavaa muutosta.

Muutostarpeet on kirjattu projektinhallintasovellukseen “tiketeiksi”. Meillä on oma Jira-järjestelmämme, mutta sivustoilla voidaan käyttää myös asiakkaan projektinhallintasovellusta ja koodivarastoa. Sekalainen työkalupakki ei helpota kehittäjän elämää, mutta toisaalta vaihtoehtoiset ratkaisut tulevat näin tutuksi. Jos en ota työn alle uutta tikettiä, voin tehdä katselmointeja toisten koodille.

Iltavuoroja tietoturvan tähden

Keskiviikkoisin, kun työpäivä on ohi ja olen hakenut lapsen iltapäiväkerhosta, palaan työpuhelimelle illalla vielä hetkeksi. Keskiviikkoisin nimittäin julkaistaan Drupalin tietoturvapäivitykset ja se tapahtuu Yhdysvaltojen aikavyöhykkeiden ehdoilla. Drupal-ytimen päivitykset julkaistaan aina kuun kolmantena keskiviikkona. Jos tietoturvapäivityksiä julkaistaan, saan niistä viestin heti, kun tietoturva-aukon paikkaava koodi on julkaistu.

Yleensä julkaistavat päivitykset eivät ole isoja, mutta toisinaan kyseessä onkin kriittinen Drupal-ytimen päivitys. Tällöin teen pikaisen arvion siitä, millä sivustoilla Drupalin ytimestä löytynyt haavoittuvuus on merkittävä – tämä riippuu yleensä teknisen toteutuksen ja asetusten yhdistelmästä – ja tarvittaessa viestittelen kollegoiden kanssa jo illalla. Usein päivitykset eivät ole niin kiireisiä, että työpäivää olisi tarvetta jatkaa yötä myöten. Silloin jatkamme päivityksiä hyvin levänneinä seuraavana päivänä. Työnjaosta sovimme jälleen aamupalaverissa.

Drupal-ylläpidossa työskentelyn parhaita puolia on se, etten ole koskaan yksin, vaikka etätöitä teemmekin. Asiakasta palvellessani tukenani on aina tiimi, tarvittaessa koko muu työporukka ja loppupeleissä Drupalin kansainvälinen yhteisö. Työpäivän aikana näyttöpäätteeni viereen eksyy toisinaan myös kehräävä kissa pitämään seuraa.

Kiinnostaisiko sinuakin työt Drupal-ylläpidon parissa?

Kirjoittaja

Simo Hellsten

Full Stack Developer