laptop table coffee light
12.03.2019
Marko Korhonen

And now for something completely different

Druid tunnetaan Drupal-kehittäjänä. Sitä me olemmekin. Useimmat projektimme voidaan sijoittaa Drupal-kategoriaan, kun sisällönhallintajärjestelmää tarvitaan. Drupal ei kuitenkaan aina ole oikea työkalu tehtävään. Kuten Dries Buytaert sanoi Wienissä järjestetyssä DrupalCon-tapahtumassa: “Drupal ei ole enää tarkoitettu yksinkertaisiin sivustoihin”, eikä Drupal yleisesti ottaen sovi jokaiseen käyttötarkoitukseen. Se on kuitenkin erittäin hyvä vaihtoehto oikeanlaisissa projekteissa.

Olemme viime aikoina tehneet joitakin ei-Drupal-projekteja, joten nytpä kerron teille yhdestä sellaisesta. Tässä tapauksessa ei-Drupal kuitenkin tarkoittaa, että teknologiapaketti ei ollut meille aivan uusi, sillä tunnemme jo entuudestaan ohjelmointikielet (PHP ja JavaScript) hyvin.

Tarve  – say no more, say no more

Asiakkaallamme oli projektin alussa jokseenkin strukturoimaton tarve, sillä asiakkaan kohdemarkkina on suuren mullistuksen kourissa. Tämän kyseisen markkinan digitaalinen ympäristö on muutostilassa, ja – kuten aina – muutokseen on osattava sopeutua. Projektin alkaessa meillä oli tiedossa, että sovelluksen tulee olla mobiiliystävällinen ja sen päätoimintona tulisi olla käyttäjien välisen kommunikaation mahdollistaminen. Siitäpä sitten kehitysjonoa luomaan!

Mobiili? Ajattelimme, että PWA on oikea valinta. Me Druidilla olemme olleet PWA:n faneja jo hyvän tovin ja olemme kirjoittaneet kyseisestä hienosta konseptista ennenkin. Progressiiviset verkkosovellukset ovat tulevaisuutta, ja niissä on paljon potentiaalia. PWA on myös hyvä vaihtoehto silloin, kun sovelluksia halutaan jakaa ilman App Storea tai Play Kauppa -palvelua. Jotkin sisäiset työkalut voitaisiin toimittaa esimerkiksi intraneteistä. Kerron PWA:sta lisää tuonnempana. Joka tapauksessa ajattelimme, että PWA sopisi tarkoituksiimme erinomaisesti.

Kommunikaatio? Wink wink nudge nudge. Say no more, say no more. Tämä herätti ideoita tietorakenteista ja käyttöliittymästä.

Teknologiapaketti – And Now for Something Completely Different

Päätimme olla rohkeita ja kokeilla aivan uusia komponentteja uudessa projektissa – frontendissä, backendissä, tietokannassa ja infrastruktuurissa. Tokihan taustalla oli tietoa ja oppimista soveltuvuusselvitysten ja vastaavan kautta. Ja kuten sanoin, teknologia oli meille jo tuttua. Tai ainakin osalle tiimimme jäsenistä.

Jos aloitetaan ihan pohjalta, valitsimme Dockerin liimaksi, joka pitää komponentit ja ympäristöt kasassa. Luonnostelimme nopeasti Docker-osuudesta avoimen lähdekoodin version ja julkaisimme sen omana juttunaan nimellä Stonehenge. Stonehenge on usean projektin paikallinen kehitysympäristö ja työkalusetti Dockerissa. Projektissa käytetään Stonehengeä kehittäjän työkaluna homman pyörittämiseen. Koska paikallinen kehitysympäristö on melko yleinen ongelma kehittäjille, ajattelimme, että tästä voisi olla hyötyä muillekin. Sen vuoksi erottelimme tämän toiminnallisuuden projektista ja julkaisimme sen erillisenä työkaluna.

Pohjimmiltaan Stonehenge tarjoaa meille paikallisia URLeja ja välityspalvelimen käsittelemään liikenteen projekteissamme. Välityspalvelin tehtiin Traefikilla, joka on suoranainen tuulahdus raikasta ilmaa verrattuna aiempiin samaa tarkoitusta varten käytettyihin teknologioihin. Voin sanoa, että se toimii ja suoriutuu oikein mainiosti tuotantopuolellakin!

Projekti itsessään määrittelee sovelluksemme tarjoamat palvelut – perusjutut, kuten Nginxin, PHP:n, tietokannan ja komentorivin, sekä kaikkien niiden suhteet. Tähän käytämme Docker Composea.

Sovellukseksi itsekseen valitsimme Symfony 4:n backendiin ja Reactin frontendiin. Symfony periaatteessa luo standardin JSON-ohjelmointirajapinnan, jonka React-sovellus sitten käyttää. Yksi syy Symfonyn valintaan oli tietokantamme (mikä se voisi olla?) tukeminen Doctrinen kautta. Kun arvioimme eri kehikkoja backendiin (PHP), tutkimme muiden kehittäjien käyttökokemuksia, ja vaikutti siltä, että kenelläkään ei ollut pahaa sanottavaa Symfony 4:stä. Ja sen käyttö olikin todella mieluisaa. Joillakin meistä oli jo kokemusta Symfonystä, sillä Drupal 8 on rakennettu Symfony 3:n päälle. Siitä huolimatta meillä oli vielä paljon uusia asioita opittavaksi.

Tietokanta. MySQL, MariaDB, PostgreSQL vai jotakin muuta? Päädyimme valitsemaan MongoDB:n, jotta hyppymme tuntemattomaan olisi täydellinen. MongoDB on niin kutsuttu NoSQL-tietokanta, missä data tallennetaan objekteina rivien sijaan. Tämä on hyödyllistä sellaisen datan kanssa, joka voi olla rakenteeltaan hyvin erilaista (lue: dokumentissa voi olla dataa, jota muissa samaa tyyppiä olevissa dokumenteissa ei ole). Lisäksi skeemaa ei tarvitse määritellä etukäteen (ja päivittää), vaan se elää sen mukaan, kuinka käytät dokumentti-objekteja.

Reactista en itse osaa kirjoittaa kovinkaan paljoa, mutta kollegani Kristian on kirjoittanut alle pienen kertauksen sen käytöstä projektissamme. Varoituksen sana kuitenkin: Javascript-maailman riippuvuushelvetti ja valtaisa määrä samanlaisia mutta erilaisia työkaluja saattavat joskus tehdä kehittäjän elämästä ikävää.

Lainaus Kristianilta:

“Oli aika mahtavaa päästä käyttämään Reactia isossa projektissa. Yleisesti ottaen React oli varsin mutkaton. Teimme toki joitain virheitä aikaisessa vaiheessa projektia, mikä pakotti tekemään refaktorointeja.

Alkuperäinen suunnitelma oli renderöidä suurin osa sovelluksesta Twigillä, jolloin vain kommunikaatiopuoli olisi ollut Reactin alaisuudessa. Lopulta päädyimme siirtämään suurimman osan sovelluksesta Reactiin. Se tarkoittaa, että emme luoneet minkäänlaista reititysjärjestelmää emmekä suunnitelleet storen arkkitehtuuria. Onneksi refaktorointi onnistui melko tuskattomasti ongelmien ilmetessä.

Minulle hauskin osa projektia oli MobX:n käyttäminen. Olen halunnut kokeilla sitä jo pitkän aikaa, joten olen tyytyväinen, että sain tilaisuuden käyttää sitä kaupallisessa sovelluksessa. MobX on pohjimmiltaan tilanhallintatyökalu, joka perustuu tarkkailijamalliin. Kaikki tarkkailijat, jotka seuraavat tarkkailtavaa muuttujaa, päivittyvät kuin taikaiskusta aina kun tarkkailtava arvo muuttuu.

Jos voisin muuttaa yhden asian seuraavaa kertaa varten, käyttäisin varmaankin mieluummin MobX State Tree -kirjastoa, joka on kantaaottavampi versio MobX:stä. Se käyttäytyy Reduxmaisesti, mutta ilman Reduxin kuormaa.”

Siinäs kuulitte.

Kun hyppäsimme PWA-remmiin, loimme Reactin avulla yhden sivun sovelluksen, joka auttaa joissain PWA:n puolissa. No mitä PWA sitten tekee? Sitä voi ajatella sovelluksena, joka on periaatteessa verkkosivu. Se tarkoittaa, että App Storea tai Play Kauppaa ei tarvita jakeluun. Sovellus päivittyy, kun verkkosovellus päivitetään. Siinä on muutamia ominaisuuksia, jotka tekevät kokemuksesta “sovellusmaisen”: tiedon tallentaminen välimuistiin prosessin nopeuttamiseksi, standalone-tila (oman, ilman selainkomponentteja toimivan käyttöliittymän tekemiseen), pääsy joihinkin mobiiliohjelmointirajapintoihin sekä offline-toiminnot. Lisäksi on mahdollista käyttää Push-ilmoituksia, mutta ne toimivat vain Androidilla. Lisätietoa voi lukea 2018 State of Progressive Web Apps -artikkelista.

PWA on huvittavaa kyllä jotakin, mitä Apple visioi jo vuonna 2007 julkistaessaan alkuperäisen iPhonen. Google ajaa yhä vahvasti nykyistä hommaa, joten periaatteessa PWA toimii paremmin Android-luureilla.

Onni suosii rohkeaa, ja uskon vahvasti, että PWA on sovellusten tulevaisuus – ja se on erityisen hyödyllinen, kun luodaan työkaluja organisaatioille ja yrityksille.

Siinä oli teille melko pitkä avautuminen teknisistä jutuista. Eiköhän vedetä vähän henkeä tässä välissä.

“And now a film about a man with a tape recorder up his brother’s nose.”

GDPR-aspekti

Niin, se pahamainen GDPR. Tällä hetkellä meillä ei ole varsinaista käyttäjädataa, joten meillä ei ole hätää. Me suunnittelimme koko kehitystyön mallidatalla, mikä osoittautui hyvin hedelmälliseksi projektin aikana. Lisäsimme datafikstuureja, jotka täyttivät tietokantamme mallidatalla. Joten siinä mielessä noudatamme täysin GDPR:ää kehitystyötä tehdessämme. Emme tarvitse tuotantodataa.

Tästä oli myös odottamatonta hyötyä. Testatessa huomasimme pian, että kykenimme käyttämään tätä luotua dataa testeissämme. Aika siistiä, eikö? Todellakin!

“In this picture, there are 47 people. None of them can be seen.”

Seuraavat vaiheet

Projekti on tällä hetkellä MVP-vaiheessa ja on siirtymässä “kenttätesteihin”. Toivottavasti loppukäyttäjät pitävät siitä, mitä olemme tehneet. Testaukset toteutetaan kontrolloidusti pienissä ryhmissä. Se tarkoittaa, että käytämme määrättyä, generoitua dataa, joka sopii kullekin testiryhmälle. Lisäksi kontrolloimme MVP-vaiheen PWA-puolta. Tällä hetkellä se toimii parhaiten Androidilla, joten käytämme sitä alustana testeissämme.

“Now, what’s to be done? Tell me sir, have you confused your cat recently?”

Kookospähkinästä

Olemme oppineet paljon! Tämä tarkoittaa, että opitut asiat vaikuttavat jo uusiin projekteihin ja jonkin verran myös tapoihin, joilla hoidamme vanhoja projekteja. Aiomme kopioida backend-kaman uuteen API-keskeiseen projektiin ja Docker-jutut ovat kehittyneet jo hyvinkin käytettävään muotoon. Lisäksi avoimen lähdekoodin projektin (Stonehenge) julkaiseminen oli plussaa!

Hienoin osa ainakin minulle on ollut kaiken tämän jakaminen yhä suuremmalla joukolle druideja, jolloin kaikkea opittua voidaan hyödyntää laajemmalla mittakaavalla.

“Wait a minute — supposing two swallows carried it together?”

Marko Korhonen
CTO, The Ministry of Silly Walks

Kirjoittaja

Marko Korhonen

Platform Engineering Lead
Drupalgeddon
08.06.2018
Mikko Hämäläinen

Drupalgeddon 2 – bugi ja kuinka se korjattiin

28.3.2018: “Kriittinen haavoittuvuus Drupal -sisällönhallintaohjelmistossa. Päivitä viipymättä!”

Eräänä kevättalvisena iltana ohjelmistokehittäjämme Jasper Mattsson selaili työpäivänsä päätteeksi Drupal-julkaisujärjestelmän uusimman version lähdekoodia perehtyäkseen sen ominaisuuksiin ja selvittääkseen, kuinka päivityksen tuomia ominaisuuksia voisi hyödyntää omassa työssään sekä tutkiakseen samalla järjestelmän mahdollisia haavoittuvuuksia.

“Homma lähti siitä, että halusin opetella Drupal kasia. Luin sen lähdekoodia läpi ja aloin miettiä, että voisivatko jotkin asiat aiheuttaa tietoturvaongelmia. Sitten aloin etsimään ja purkamaan muutamaan eri asiaan liittyviä ongelmia. Tässä vaiheessa minulla ei ollut edes Drupalia asennettuna tätä varten – kaikki etsiminen tapahtui lähdekoodia lukemalla.”

Kokeneelle ohjelmistokehittäjälle muiden kirjoittaman koodin tutkiminen on rutiininomainen keino tutkia, kuinka muut ovat ratkaisseet tiettyjä ongelmia ja siten syventää myös omaa osaamistaan. Käytäntöä voisi verrata minkä tahansa teknisen laitteen purkamiseen ja erillisten osien sekä niiden välisten kytkentöjen tutkimiseen. Yleensä osia ja kytkentöjä – tässä tapauksessa koodia – tutkimalla ei löydy juuri käytännön pikkuniksejä ihmeellisempää, mutta tuona iltana tilanne oli toinen.

Bugi löytyy

“Kiinnitin huomiota tapaan, jolla joissain lomakkeissa käsiteltiin käyttäjän syöttämiä arvoja ja aloin sen perusteella etsiä kohtia, joissa tästä voisi seurata tietoturvaongelmia.”

Jasper huomasi, että ohjelmointivirheen avulla Drupal oli mahdollista saada käsittelemään käyttäjän lomakkeelle syöttämiä arvoja ohjelmakoodina. Tämän avulla hyökkääjä voi esimerkiksi ajaa omaa haittakoodiaan Drupalissa. Näin on esimerkiksi onnistuttu asentamaan kryptovaluuttojen mainaukseen tarkoitettuja ohjelmia palvelimelle sivuston ylläpitäjän tietämättä. Hyökkäyksiä tehdään automatisoidusti – hakkeroidut sivustot valjastetaan hyökkäämään muihin päivittämättömiin sivustoihin. Ovelimmat automaattisista hyökkäyksistä asentavat Drupaliin tietoturvapäivityksen päästyään sisään, jotta kilpailevat hyökkääjät eivät pääse palvelimelle.

Itse bugiin liittyi kaksi puolta; vahingollisen syötteen saaminen Drupaliin sisään ja se, että Drupalin sai suorittamaan sen koodina. Mikäli satunnainen lähdekoodia tutkiva henkilö olisi löytänyt vain toisen näistä ongelmista, hän ei välttämättä olisi ajatellut kyseessä olevan tietoturvaongelma. On varsin todennäköistä, joskin täysin spekulatiivista, että molemmat yksittäiset ongelmat ovat olleet joidenkin toimijoiden tiedossa, sillä haavoittuvuus oli ehtinyt ollut Drupalissa ainakin vuonna 2011 julkaistusta 7-versiosta lähtien, sekä mahdollisesti jossain muodossa jo vuonna 2008 julkaistussa Drupal 6:ssa. Kahden satunnaisen pikkuongelman havaitsemisen lisäksi erityisen ratkaisevaa tässä tapauksessa oli kuitenkin ongelmien välisten syy-seuraussuhteiden ja niiden yhdessä muodostaman riskin vakavuuden ymmärtäminen.

Korjaustoimenpiteet

Ensimmäisestä huomion herättäneestä havainnosta bugiepäilyn vahvistamiseen kului aikaa vain muutamia tunteja. Ongelman havaittuaan Jasper raportoi bugin Drupalin tietoturvatiimille ja ilmoitti havaintonsa tueksi esimerkkitilanteen (Proof of Concept), jossa haavoittuvuus oli hänen koneellaan ilmennyt. Tarvittavien tietojen raportoimiseen kului aikaa muutama päivä, tosin esimerkkitilanteen toistamisessa oli alkuvaikeuksia.

Hyvin pian vapaaehtoisista ja luotettaviksi todetuista Drupal-kehittäjistä koostuva tietoturvatiimi pääsi kuitenkin tekemään korjauksia. Myös Jasper osallistui niiden testaamiseen, mahdollisten uusien aukkojen etsimiseen ja korjausehdotuksiin liittyvään keskusteluun.

“Drupalin tietoturvatiimi kehitti korjauksia nopealla tahdilla ja hyvällä yhteistyöllä – keskustelun ja korjauksien testaamisen tahdissa ei meinannut pysyä mukana”.

Kehittämiseen vierähti muutama viikko ja useampi iteraatiokierros ennen kuin päivitys oli saatu riittävälle tasolle julkaisua varten.

Kun tietoturvatiimillä oli aukko tiiviisti tilkittynä, he tiedottivat korjauspäivityksen julkistamisajankohdan. Tässä vaiheessa itse haavoittuvuuden yksityiskohdat pidettiin luonnollisesti vielä tiukasti salassa ja kerrottiin vain, että kyseessä on kriittinen tietoturva-aukko. Myös päivitysversion korjaukset koordinoitiin ja toteutettiin siten, ettei päivityksen koodista pystyisi helposti päättelemään mistä tietoturva-aukko tarkemmin löytyisi.

Välttämättömät korjaukset paikkaava päivitys julkaistiin pääsiäistä edeltävänä keskiviikkona 28.3. jolloin Druidilla sekä muissa Drupal-taloissa oltiin valmiudessa päivittämään sivustot. Drupal.org kaatui hetkellisesti suuren kävijämäärän vuoksi kehittäjien ladatessa sivua uudelleen malttamattomina.

Ennen päivitystä pelättiin, että päivityksen perusteella saattaisi huolellisista varotoimista huolimatta olla mahdollista päästä tietoturva-aukon jäljille ja että sitä hyödyntävää haittakoodia voisi olla tarjolla hyvinkin pian päivityksen julkaisun jälkeen. Näin oli käynyt ensimmäisen Drupalgeddon-haavoittuvuuden kanssa vuonna 2014. Ensimmäiset haavoittuvuutta käyttävät hyökkäykset huomattiin kuitenkin vasta 11.4., joten sivustojen ylläpitäjillä oli lähes kaksi viikkoa aikaa päivittää sivustonsa.

Mikäli sivustosi jäi Drupalgeddonin jalkoihin tai tarvitset luotettavaa kumppania pitämään huolta verkkopalveluistasi, ota meihin yhteyttä!

Kirjoittaja

Mikko on Druidin toimitusjohtaja, jolla on yli 20 vuoden kokemus sisällönhallinnasta ja asiakaskokemuksen kehittämisestä. Hän auttaa markkinointia ja liiketoimintaa hyödyntämään teknologian tarjoamia mahdollisuuksia, ja hänen intohimonaan ovat digitaalisen asiakaskokemuksen hallinnan järjestelmät.

Smooth rolling
08.05.2017
Arto Iijalainen

Kuinka visualisoida sprintin tila JIRAssa?

Valittu projektimalli on usein ratkaisevassa asemassa projektin onnistumisen kannalta. Siksi me Druidilla vannomme ketteryyden ja Scrumin nimeen. Scrum edellyttää, että kaikki tehtävä työ kasataan yhteen paikkaan, jotta sitä voidaan hallinnoida järkevästi. Vaikka tämä onnistuisi ihanan hipsteristi seinällä ja paperilapuilla, olemme päätyneet käyttämään insinöörimäisempää JIRA-projektinhallintaohjelmistoa. Se mikä hipsteriydessä hävitään, voitetaan monin verroin takaisin erilaisilla näkymillä, kattavalla raportoinnilla ja muilla hyödyllisillä ominaisuuksilla.

Vakioasetuksilla JIRA luo Scrum-projektille kaksi näkymää: backlog-näkymän sekä näkymän aktiiviseen sprinttiin. Lisäksi työnkulku on yksinkertaisesti mallia “To Do → In progress → Done”. Monille tämä riittää…vai riittääkö? Testataanpa.

Backlog-näkymässä luodaan tarinoita, annetaan pisteet, kasataan sprintti ja käynnistetään se. Tarinoille lisätään (tekniset) alitehtävät. Toistaiseksi kaikki on kunnossa. Näkymä vaihdetaan aktiivisen sprintin puolelle. Otan yhden tarinoista tekoon. Näen helposti, mitä alitehtäviä tarinalla on ja missä tilassa ne ovat. Yksi kerrallaan alitehtävät valmistuvat, kunnes kaikki on tehty. Story on valmis!

Eipäs kun hetkinen… Pitäähän valmistunut tarina kierrättää vertaisarviossa, jotta työn tekninen laatu voidaan varmistaa. Ja toki tuoteomistaja haluaa tarkastaa erillisessä testausympäristössä, että tarinan vaatimukset täyttyvät ennen hyväksymistä. Hmm… Pitäisikö näistä tehdä erilliset alitehtävät? Jokaiselle tarinalle? Kuulostaa toistuvalta käsityöltä.

Backlog-näkymä
Aktiivisen sprintin näkymä

Oikea ratkaisu on noudattaa hyvän ohjelmistoarkkitehtuurin kultaista sääntöä: luo mallinnettava kokonaisuus järjestelmän tarjoamilla ominaisuuksilla, jolloin järjestelmä “ymmärtää”, mitä olet tekemässä. Tässä tapauksessa tarkoituksena on mallintaa tarinoiden matka alusta loppuun, joten ensimmäinen askel on laajentaa JIRA-projektin työnkulku kattamaan kaikki mahdolliset vaiheet. Tarvittavat askeleet vaihtelevat projekteittain. Tässä yksi esimerkki:

  • Sprint Backlog (Kehitystyötä ei aloitettu)
  • In progress – Frontend (Frontend-kehitystyö käynnissä)
  • In progress – Backend (Backend-kehitystyö käynnissä)
  • Development Done (Kehitystyö valmis)
  • Peer Review & Deployment (Toisen kehittäjän vertaisarviointi)
  • Acceptance testing (Tuoteomistajan hyväksymistestaus)
  • Done (Story tehty ja hyväksytty)

Tässäkin asiassa kannattaa toimia ketterästi. Ensimmäinen versio tehdään parhaan tiedon mukaan ja sen jälkeen vaiheita muutetaan saadun kokemuksen perusteella. (Pro tip: Projektin workflowksi kannattaa valita “Simplified Workflow”, jolloin muutosten tekeminen on helpompaa.)

Kun työnkulku on kunnossa, tehdään taikuuksia näkymille. Aktiivisen sprintin näkymän tulee edelleen toimia kuin aiemminkin, jotta kehittäminen sujuu mahdollisimman helposti. Siksi näkymässä ei tarvita kuin neljä ensimmäistä askelta (Sprint Backlog–Development Done). Sen lisäksi luodaan uusi näkymä, joka kulkee meillä nimellä Review. Review-näkymän tehtävänä on näyttää sprintin tila yhdellä silmäyksellä sekä mahdollistaa työn käsittely tarinatasolla, jota putken loppupäässä tarvitaan. Lisäksi haluamme niputtaa ensimmäiset neljä askelta (Sprint Backlog–Development Done) yhteen sarakkeeseen nimeltä Develop, sillä siellä työskennellään alitehtävien parissa ja nyt olemme kiinnostuneita itse tarinoista.

Katso tarkemmat asennusohjeet videosta:


Lopputuloksena tarinoiden kulku on mallinnettu JIRAan, eikä niiden tiloja tarvitse enää arvuutella tai muistella. Lisäksi kaikkien – jopa projektin ulkopuolisten tahojen – on helppo tarkistaa, miten sprintti menee.

Visualisointi auttaa myös hahmottamaan pullonkauloja: jos esimerkiksi nähdään, että tarinoita kertyy jatkuvasti vertaisarviointisarakkeeseen, kehitysprosessia tulee muuttaa vertaisarviointia suosivaan suuntaan. Poikkeuksia tapahtuu, mutta jatkuvat sumat kielivät yleensä puutteellisesta prosessista. Onneksi Scrumiin sisäänrakennetuissa retrospektiiveissä asia voidaan nostaa esille ja korjausehdotusta on helppo lähteä kokeilemaan. Näkymät näyttävät suoraan, onnistuiko kokeilu vai ei.

Lopputulos: Sprintin yleisnäkymän näyttävä review-näkymä


Pari tunnettua ongelmaa:

– Sprintin päätteeksi tarinat ovat Done-tilassa, mutta niiden alitehtävät jäävät Development Done -tilaan. Ennen sprintin sulkemista alitehtävät on käytävä siirtämässä Done-sarakkeeseen. Homman voi hoitaa kerralla kaikille alitehtäville etsimällä ne Issue Navigatorilla ja muuttamalla tila Bulk edit -työkalulla. Korjauksen voi myös hoitaa ohjelmallisesti JIRAn omalla skriptikielellä, mutta emme ole vielä menneet niin pitkälle.

– Review-näkymässä pitää erikseen painaa Only stories -filtteri päälle. Jos klikkailu ärsyttää, pikaratkaisuna näkymän voi lisätä selaimen kirjanmerkkeihin ja tuoda kirjanmerkkityökaluriville. Me kehittäjät käytämme Grease Monkey -skriptejä, jotka ohjelmallisesti lisäävät oikeanlaiset linkit selaimiimme.

Kirjoittaja

Arto Iijalainen

Production Director
GDPR auditointi
20.02.2017
Mikko Hämäläinen

GDPR kiristää tietosuojavaatimuksia – aloita valmistautuminen jo nyt

GDPR (General Data Protection Regulation) on EU:n uusi tietosuoja-asetus, joka koskee kaikkea henkilötietojen käsittelyä. Omien järjestelmien ja prosessien päivittäminen voi olla monelle yritykselle vuoden 2017 suurin investointi ja todennäköisesti se sivuaa jollain tasolla myös sinun toimintaasi. GDPR tuo mukanaan ison muutoksen yrityksille.

Tietosuojalaki on astunut voimaan jo keväällä 2016, mutta sen soveltaminen alkaa vasta ensi vuoden toukokuussa. Käytännössä viimeistään silloin systeemien on oltava ajan tasalla, asetuksen rikkojalle lankeavat maksimisanktiot kun ovat miljoonaluokkaa. Atk-amatöörin on hankala käsittää, mitä kaikkea käyttäjätietoa omat järjestelmät tallentavat ja louhivat. Tietosuoja-asetus koskee niin intranettiin excelissä tallennettua henkilöstölistaa, verkkosivuston Google-analytiikkaa kuin verkkopalvelusi käyttäjädataa. Ja myös kaikkien edellisten varmuuskopioita.

Mitä GDPR tarkoittaa käytännössä?

GDPR peräänkuuluttaa ennen kaikkea läpinäkyvyyttä henkilötietojen käsittelyyn. Henkilötietoa on kaikki sellainen tieto, josta henkilön voi tunnistaa suorasti tai epäsuorasti – myös esimerkiksi evästeet ja paikkatieto ovat henkilötietoja.

Verkkopalvelun käyttäjältä tarvitaan ensinnäkin aktiivinen suostumus henkilötietojen keräämiseen. Esimerkiksi valmiiksi ruksittu “hyväksyn käyttöehdot” -laatikko ei enää kelpaa. Käyttäjällä on oikeus tietää, mitä tietoja hänestä on kerätty sekä oikeus päästä käsiksi näihin tietoihin. Hänellä on myös oltava mahdollisuus muokata, siirtää ja poistaa tietojaan sekä rajoittaa niiden käsittelyä.

GDPR vaatii myös nopeaa reagointia. Yritysten on esimerkiksi pystyttävä poistamaan käyttäjän tiedot ja ilmoittamaan tietomurroista viranomaisille ilman aiheetonta viivytystä. Myös käyttäjille, joiden yksityisyyden suojaan tietomurto vaikuttaa, on ilmoitettava.

Yritysten on pystyttävä osoittamaan, että ne noudattavat GDPR-lainsäädäntöä. Tämä on merkittävä muutos, sillä tällaista osoitusvelvollisuutta ei Suomessa ole ennen ollut, ja niinpä se edellyttää uusia toimintamalleja. Tietojärjestelmät tulee lähtökohtaisesti suunnitella niin, että ne tukevat tietosuojaa.

Nykytilanteessa henkilötietojen käsittely tietojärjestelmissä ei välttämättä ole läpinäkyvää. Eksplisiittisesti tallennettujen tietojen lisäksi järjestelmät voivat täydentää tietoja automaattisesti esimerkiksi analytiikan tai antureiden avulla. Lisäksi järjestelmät tallentavat tietoa useisiin eri paikkoihin, kuten välimuisteihin, varmuuskopioihin ja liitettyihin ulkoisiin järjestelmiin.

Miten tietosuojalain muutokseen voi valmistautua?

Oman pesän selvittely kannattaa aloittaa pikimmiten, sillä tietämättömyys ei enää vuoden päästä pelasta lakituvalta. Omat asiakkaamme saavat ennen takarajaa sopimustäydennykset, joilla selkeytetään tiedonkulkua ja vastuita osapuolten välillä: joissain tapauksissa meillä ei ole roolia asiakkaan henkilötietorekisterien käsittelyssä, ja joissain tapauksissa kehittämissämme verkkopalveluissa käsitellään arkaluontoistakin henkilötietoa.

Lakimiehet ja asiantuntijatahot tarjoavat erilaisia GDPR-kartoituksia ja -selkeytyksiä, niin myös me. Olemme lähteneet selvittelemään asetuksen vaikutuksia omaan ja asiakkaidemme toimintaan jo hyvissä ajoin.

Drupal GDPR -auditointimme on vastaus Drupaliin liittyviin epäselvyyksiin. Kartoitamme auditointiprojektissa muun muassa järjestelmän käsittelemän henkilötiedoksi laskettavan datan ja sen tallennuspaikat sekä tiedon hallintaan liittyvät prosessit. Tilaaja saa projektin jälkeen käteensä selväkielisen raportin, jonka hän voi tarvittaessa antaa eteenpäin organisaationsa tietosuojavaltuutetulle tai lakimiehille. 

Olemme myös aloittaneet GDPR-yhteensopivuutta edistävän Drupal-moduulin kehitystyön, jolla on tarkoitus automatisoida osa tarkistuksista. Avoimen lähdekoodin projektin sivut löytyvät drupal.orgista täältä.

Tietosuojalain vaatima ponnistus ei vaikuta kohtuuttomalta, mikäli yritys on noudattanut jo nykyisin voimassa olevia lakeja ja asetuksia henkilötietojen käsittelystä. Aina näin ei kuitenkaan ole, ja papereiden parsimiseen lähdetään tuntuvalta takamatkalta. GDPR-seminaareista on syntynyt sellainen vaikutelma, ettei EU:ssakaan vielä tiedetä, miten asetusta kuuluu pilkulleen noudattaa. Ensin tulee laki ja sitten terve järki.

Kannattaa joka tapauksessa olla ajoissa liikkeellä ja ottaa uusi tietosuojalaki tehokkaasti haltuun. Vältyt mittavilta sanktioilta, ja mikä tärkeintä, läpinäkyvyyden ansiosta kasvanut asiakkaittesi luottamus voi tuoda yrityksellesi kilpailuetua. 

Jos kaipaat apua, ota yhteyttä ja kysy lisää Drupal GDPR -auditoinnistamme.

Kirjoittaja

Mikko on Druidin toimitusjohtaja, jolla on yli 20 vuoden kokemus sisällönhallinnasta ja asiakaskokemuksen kehittämisestä. Hän auttaa markkinointia ja liiketoimintaa hyödyntämään teknologian tarjoamia mahdollisuuksia, ja hänen intohimonaan ovat digitaalisen asiakaskokemuksen hallinnan järjestelmät.

Pori Etelaranta
16.02.2017
Mika Suominen

Kuntien avoin verkkopalvelualusta – todistetusti toimiva

Viime syyskuussa Turun kaupunki kertoi avaavansa verkkopalvelunsa lähdekoodin yhteiseen käyttöön. Turku siis päätti antaa kehittämänsä alustan veloituksetta kaikkien hyödynnettäväksi ja jatkokehitettäväksi. 

Koodin avaamistyö saatiin nyt alkuvuodesta päätökseen, eli muiden kuntien on nyt mahdollista ottaa turku.fi-lähdekoodiin perustuva avoin verkkopalvelualusta käyttöönsä. Kiinnostus alustan hyödyntämiseen onkin jo herännyt varsin monen kunnan suunnasta!

Turun kaupunki on tehnyt todella uraauurtavaa työtä kehittäessään laajan ja pitkäikäisen verkkopalvelualustan monine hyödyllisine toiminnallisuuksineen. Alusta on vakaa ja skaalautuva, ulkoasultaan räätälöitävä, helppokäyttöinen ja saavutettava. Se on myös responsiivinen, eli se toimii mobiileissa päätelaitteissa.

Miten tähän pisteeseen on tultu?

Turun kaupunki halusi onnistua sivustouudistuksessaan, ja siitä rakentuikin hieno tarina. Täydet pisteet Turun kaupungin rohkeille päättäjille erilaisesta kilpailutuksesta, joka johti verkkopalvelun toteutukseen ketterällä monitoimittajamallilla. Onnistunut hankinta ja toimittajayhteistyö valittiinkin Blue Arrow Awards -kilpailun finalistiksi kategoriassa ”Epic Purchasing”. 

Turku.fi-projekti aloitettiin loppuvuodesta 2014. Jo puolen vuoden päästä julkaistiin ensimmäinen versio uudesta sivustosta. Kehitystyötä jatkettiin ja kuntalaisten palautteisiin reagoitiin koko projektin ajan – esimerkiksi esteettömyyttä parantava isompi päivitys julkaistiin kesällä 2016. Ketterin menetelmin toteutettu projekti oli menestys, mutta sitäkin merkittävämpi uutinen oli kehitetyn alustan julkaisu yhteiseen käyttöön.

Olemme olleet alusta alkaen mukana rakentamassa turku.fi-verkkopalvelua yhtenä Turun kolmesta teknisestä kumppanista ja luonnollisesti myös mukana koodin avaamistyössä. Meille on kunnia olla mukana rakentamassa tätä kokonaisuutta, joka mahdollistaa entistä parempien ja monipuolisempien verkkopalveluiden rakentamisen erittäin kustannustehokkaasti.

Miksi alusta on merkittävä mahdollisuus kunnille?

“No onhan näitä alustoja nähty aiemminkin, ei toiminut”, skeptikko ehkä tuumii. Tämä on totta. Mikä siis tekee tästä verkkopalvelualustasta erilaisen? Onnistunut turku.fi-uudistus oli jo sinänsä lupaava lähtökohta. Turun kaupungin hankejohtaja Päivi Saalasto valottaa alustan tuomia hyötyjä seuraavasti:

“Turku.fi-lähdekoodi tarjoaa hyödyntäjälleen win-win-tilanteen: täydellisen vapauden vähäisemmin kustannuksin. Jokainen voi poimia luodusta paketista vain haluamansa toiminnot ja järjestää verkkopalvelun ylläpidon parhaaksi katsomallaan tavalla. Samaan aikaan kuitenkin yhteisiä toiminnallisuuksia voidaan jatkokehittää tiiviissä yhteistyössä muiden kanssa jakaen syntyvät kulut.”

Alustan vahvuudet ovat moninaiset. Tässä niistä muutamia:

  • Laatu. Suomen ykkösluokan Drupal-talot ovat olleet kehittämässä alustaa.
  • Riippumattomuus toimittajasta. Alustalla on jo tässä vaiheessa useita sitoutuneita teknisiä toimittajia, sekä Turku.fi-projektissa mukana olleita että projektin ulkopuolisia Drupal-taloja.
  • Toimivuus. Alusta on testattu ja todistettu käytännössä toimivaksi.
  • Tietoturva. Alusta on tietoturva-auditoitu.
  • Laaja käyttö. Käyttäjäyhteisön laajuus takaa alustan nopean kehityksen.

Pilotointia Porissa

Porissa innostuttiin jo hyvin varhaisessa vaiheessa Turun kehittämän alustan hyödyntämisestä, minkä johdosta heidän verkkouudistuksensa sai varsinaisen lentävän lähdön: syntyi ensimmäinen POC (proof of concept), jonka yhdessä Porin kaupungin kanssa toteutimme.

Pilottihankkeen tavoitteena oli varmistaa alustan tekninen soveltuvuus Porin tarpeisiin, toimiva ja helppokäyttöinen sisällönsyöttö sekä rakenteen joustavuus muuttuville tarpeille. Vaikka hanke aloitettiin jo ennen avoimen alustan julkaisuversion valmistumista, tulokset olivat vakuuttavia. Turun alustan todettiin tarjoavan toimivan ratkaisun Porinkin tarpeisiin ja se otettiin ilolla vastaan. Alustan helppokäyttöisyys kirvoitti jopa aplodit koulutuksessamme, jossa perehdytimme sisällönsyöttäjiä alustan käytön saloihin.

Porin pilotin valmista perustoteutusta laajennettiin vielä kattavalla hakumoottorilla, jonka jälkeen kaikki tekniset linjaukset olivat kasassa tulevaa sivustouudistusta varten. Yhteistyömme Porin kanssa jatkuu avoimen kilpailutuksen suunnittelulla, jonka tavoitteena on löytää Porille oikeat yhteistyökumppanit, joiden avulla turku.fi-lähdekoodi saadaan palvelemaan Porin sähköisen asioinnin ja viestinnän uusia ja tulevia tarpeita.

Mahdollisuus jatkokehittää huolella suunniteltua ja toteutettua verkkoalustaa sekä uudenlaiset yhteistyömahdollisuudet kuntien välillä saivat Porin kiinnostumaan Turun alustasta. Tietohallintojohtaja Heikki Haaparanta näkee yhteiskehittämisessä huimasti potentiaalia:

“Vaikka kunnissa ja niiden tarjoamissa palveluissa on paljon eroavaisuuksia, on niissä kuitenkin myös paljon yhteneväisyyksiä. Tämä yhteinen palvelurakenne ja lukuisat muut yhtäläisyydet palveluiden tuottamisessa tarjoavat mahdollisuuden yhteistyöhön, jakamiseen ja eri kuntien jo tekemän työn hyödyntämiseen. Projektimme valmistuttua tavoitteena onkin julkaista myös turku.fi-pohjalta rakennettu pori.fi-lähdekoodi avoimeksi. Näemme, että parhaimmillaan verkkoalustan ympärille muodostuu kuntien yhteistyöverkosto, joka jakaa avoimesti alustaan liittyviä kokonaisuuksia ja osaamista.”


Suomessa on yli 300 kuntaa, joiden on KaPa-lain velvoittamina uudistettava verkkopalvelunsa. Nyt Turku tarjoaa kuin hopeatarjottimella auttavan käden kaikille Suomen kunnille. On helppo nähdä alustan ympärille muodostuneen avoimen lähdekoodin ekosysteemin kasvavan ja laajentuvan modulaariseksi kuntien digipalveluiden työkalupakiksi. 

Haluatko tietää lisää?

Tietoa Turku.fi -alustan sisällöstä: Kuntien avoin verkkopalvelualusta
Turun tiedote: Turku.fi:n lähdekoodi kiinnostaa jo monia
Alusta on saatavilla Turun GitHub-tilillä 
Turun digitaalisen kehittämisen blogi



Yläkuva: “Porin Eteläranta” / Jukka Peura / CC BY 2.0

Kirjoittaja

Mika Suominen

Board Member
Better UX with React
08.02.2017

Sulava käyttökokemus uudella teknologialla

Lääkärikeskus Aava on yksi asiakkaistamme, jolla on erittäin korkeat vaatimukset palveluidensa käyttäjäkokemukselle. Pystyäksemme vastaamaan näihin odotuksiin kustannustehokkaasti, on tärkeää että käytössämme on palveluiden rakennusvaiheessa moderneimmat mahdolliset työkalut. Onneksemme Aava on ollut koko yhteistyömme ajan sitoutunut päivittämään teknologiaa uudempaan. Näin Aavallekaan ei ole aiheutunut turhan suuria kertakustannuksia järjestelmien päivittämisestä. 

Tavoitteena yhtenäinen käyttökokemus

Loppuvuodesta 2016 asetimme Aavan kanssa tavoitteeksi yhdistää heidän eri palveluidensa frontend-ratkaisut, jotka on toteutettu eri taustajärjestelmillä. Nykytilanteessa kaikissa järjestelmissä on perinteiseen tapaan oma käyttöliittymänsä, mikä on järjestelmien kasvamisen myötä tehnyt ylläpidosta haastavampaa. Siitä huolimatta, että olemme hyödyntäneet moderneja työkaluja nykyisten järjestelmien rakentamiseen, työ joudutaan käytännössä aloittamaan aina alusta joka järjestelmässä. Palveluiden käyttökokemuksen kehittäminen ei myöskään ole mahdollista äärettömiin, koska järjestelmät näyttävät keskenään hyvinkin erilaisilta.

Lähdimme liikkeelle Aavan Terveytesi-palvelun rakentamisesta. Projektin tavoitteena oli luoda nopeasti uusi palvelu, josta asiakas pystyy helposti hakemaan tietoja terveydestään, kuten vaikkapa diagnooseja ja ajanvarauksia.

Miksi päädyimme Reactiin?

Palvelun rakentaminen edellytti muutoksia olemassa olevaan arkkitehtuuriin. Jotta kehitystyö olisi pitkällä tähtäimellä kustannustehokasta, päätimme, että kaikkien ennen arkkitehtuuriuudistusta tehtävien toiminnallisuuksien on oltava käytettäviä uudessakin arkkitehtuurissa. Tämän vuoksi päädyimme keskittämään suurimman osan ajasta toimivien rajapintojen muodostamiseen. Tässä projektissa oli luonnollista luoda selaimessa toimiva sovellus, koska palvelu ei vaatinut paljoa business-logiikkaa rajapintojen ulkopuolella.

Ember.js sekä React.js valikoituivat arvioitaviksemme, koska näistä tiimiläisillä oli aikaisempia hyviä kokemuksia. Aluksi pyrimme arvioimaan, kumman järjestelmän tuominen nykyiseen arkkitehtuuriin olisi helpointa, mutta totesimme vertailun olevan melko hankalaa, sillä kumpikaan ei tuntunut täyttävän vaatimuksia, jotka alkuvaiheessa asetimme. Niinpä päädyimme vertailemaan yhteisöjen kokoja ja millä tavoin järjestelmiä on käytetty. Lopulta valitsimme Reactin, koska uskoimme sen olevan pitkällä tähtäimellä paremmin tuettu.

Miten projekti sujui?

Uuden teknologian käyttöönotto tuo aina mukanaan haasteita. Tässä projektissa haasteena oli ennen kaikkea se, miten moderni teknologia yhdistetään Aavan jo olemassa olevaan infrastruktuuriin sekä ohjelmistoihin, vaikka kokonaisuus sinänsä olikin jo ennestään moderni. Lisäksi kaikilla tiimimme jäsenillä ei ollut aiempaa kokemusta modernista JavaScriptistä (es2016+). Mutta mehän pidämme haasteista, joten huolehdimme projektin aikana siitä, että kaikki tiimiläiset saivat yhtäläiset valmiudet kehittää projektia.

Aavan olemassa olevaa infrastruktuuria on pidetty ajan tasalla koko yhteistyömme ajan, mutta siitäkin huolimatta kehitystyö tuntui alussa etenevän hitaasti, koska jouduimme keskittymään paljon infrastruktuurin kehittämiseen – pohjatyö vaati oman aikansa. Tähän oli syynä pääosin se, ettei Aavalla aiemmin ollut käytössä vastaavia JavaScript-toteutuksia.

Koska halusimme nopeuttaa projektin alkua, otimme paljon mallia boilerplate-tyyppisistä ratkaisuista. Tämä kuitenkin myöhemmässä vaiheessa kostautui, kun jouduimme selvittämään kopioituihin osiin liittyviä bugeja. Selvittäminen oli haasteellista, koska emme täysin ymmärtäneet kaikkia valintoja tai heikkouksia, joita koodissa oli.

Kun saimme ensimmäiset komponentit valmiiksi, vauhti alkoi kiihtyä ja uusien toiminnallisuuksien teko sujua erittäin nopeasti. Koko projektiin meni lopulta noin kaksi kuukautta, ja noin puolet tästä ajasta käytettiin vanhan infrastruktuurin kehittämiseen. Sovellus on parhaillaan sisäisessä testauksessa ja se julkaistaan helmikuun aikana. 

Tekniset valinnat

Koska edelleenkin laajasti käytetty PHP 5.6 alkaa Aavan korkeiden standardien mukaan vedellä viimeisiään, päätimme tässä yhteydessä myös päivittää palvelun PHP 7.1:een, jotta saimme siihen lisää nopeutta ja uusia ominaisuuksia käyttöön. Monet PHP-kirjastot ovat jo lopettaneet tuen PHP 5 -versioille, mikä omalta osaltaan hankaloittaa uusien asioiden kehittämistä PHP 5 -versioiden päälle. Aava oli ensimmäinen asiakkaamme, joka otti PHP 7.1 -version käyttöön olemassa olevaan projektiin. Tämä herätti myös paljon kiinnostusta Druidin ulkopuolella.

Taustajärjestelmänä sovellukselle toimii tällä hetkellä Drupal 7. Suunnittelemamme API on tehty niin, että frontend-sovellus on tulevaisuudessa helppo siirtää minkä tahansa alustan päälle. Näin Aavan ei tarvitse rajoittaa teknisiä valintojaan meidän teknisten valintojemme vuoksi. Tähän ratkaisuun päädyttiin, koska Drupalin päälle on rakennettu merkittävä määrä olemassa olevia toiminnallisuuksia, jotka nopeuttivat sovelluksen kehittämistä.

API-dokumentaatioiden tekemiseen käytimme Swagger-työkalua. Swagger-dokumentaatio on koostettu JSON-datasta. Samaa tiedostoa käytetään myös rajapintojen generoimiseen.

Yhteenveto

Projekti kokonaisuudessaan oli erittäin mielenkiintoinen. Etenkin jatkuva uusien teknologioiden hyödyntäminen pitää mielen virkeänä ja motivoituneena. Tämä myös varmistaa Aavan järjestelmille pitkän käyttöiän, ja mahdollisimman matalat kustannukset rakennusvaiheessa.

Drupal Magic
25.10.2016

Drupal-magiaa druidien opissa

Oli loppuvuosi 2014 Helsinki Business Collegessa, jossa tuolloin opiskelin. Ryhdyimme työstämään kurssityönä lounaslistahärpäkettä, josta kukaan ei ollut mitenkään innoissaan, mutta pakkohan sitä oli tehdä, jotta pääsisi kurssista läpi. Sitten tapahtuikin ihmeitä: koulu otti yhteyttä Druidiin ja sai järjestettyä meille druidien vetämän Drupal-koulutuksen tylsän kurssimme sijaan. Kuulosti tosi hyvältä!

Aloimme opetella Drupal 7:n perustoimintoja ennen koulutusta: miten järjestelmä asennetaan laitteelle, miten ladataan ja otetaan käyttöön moduuleja ja teemoja, myös hieman gitin käyttöä. Rakensimme pienryhmissä sivustoja, jotta saimme perusteet käytännössä suurin piirtein haltuun.

Drupal-koulutus

Koulutuspäivä ei alkanut kovin vahvasti, sillä druidit eksyivät jonnekin koulumme syövereihin. Lopulta he kuitenkin löysivät paikalle ja pääsimme vauhtiin. Alkuun he kertoivat mitä firmassaan tekevät, miten he käyttävät ketterää työmenetelmää projekteissa ja miten he panostavat kovasti työympäristöön ja sen mukavuuteen.

Krisse aloitti koulutuksen selittämällä mitä ketterä kehitys on ja miten se toimii. Ronin osuus oli näyttää, miten Drupal-sivusto pystytetään ja kuinka Drushia käytetään – valitettavasti emme kuitenkaan päässeet Drushin kanssa leikkimään, koska koululla joku blokkasi sen käytön. Tero puolestaan puhui teemoittamisesta, eli miten luodaan oma teema ja leiskataan sivua.

Koulutuksen aikana Drupal alkoi kiinnostaa minua yhä enemmän ja halusin oppia lisää, joten päätin hakea Druidilta työharjoittelupaikkaa koulutuksen loputtua. Pääsin työhaastatteluun, ja Druidin toimistolla vieraillessani puheet työympäristöön panostamisesta konkretisoituivat. Toimistolla tuli fiilis, että tänne on pakko päästä töihin. Vuoden 2015 lopulla viimein pääsinkin aloittamaan työharjoittelun Druidilla.

Työharjoittelusta työsuhteeseen

Ensimmäisenä päivänä tutustuin taloon ja ihmisiin sekä pystytin työpisteeni. Tehtäväkseni sain druid.fi-sivuston uusimisen upouudella Drupal 8 -järjestelmällä. Se oli haaste, sillä olin siihen mennessä opetellut vain Drupal 7:ää. Uusittu sivusto saatiin kuitenkin julkaisukuntoon ja se näki päivänvalon eräänä helmikuisena perjantai-iltapäivä. Sen jälkeen oli hyvä mieli lähteä viettämään viikonloppua! 

Ajan myötä Drupal 8:sta tuli mukava käyttää ja opin tekemään sillä itsenäisesti töitä. Ilokseni druidit olivat tyytyväisiä tekemääni työhön ja päättivät palkata minut töihin loppuvuodeksi.

Elokuun lopulla alkoi DrupalCon Dublin -matkan järjestely ja sain tietää pääseväni mukaan reissuun. Olin tosi innoissani: uusi matkakohde, ensimmäinen DrupalCon, ja pääsin matkailemaan ensimmäistä kertaa yksin! Matkasta tulikin tähänastisen työsuhteeni kohokohta. Viikon aikana tuli käytyä monella kiinnostavalla luennolla, perinteisessä pubissa ja tietenkin pakollisella vierailulla Guinness-tehtaalla. 

Ympyrä sulkeutuu

Tämän vuoden lopulla Druid järjestää taas Drupal-koulutuksen Helsinki Business Collegen opiskelijoille, ja tällä kertaa olen mukana yhtenä opettajista. Olen oppinut kuluneen vuoden aikana Druidilla valtavasti, ja on mahtavaa päästä nyt jakamaan osaamistani entiseen opinahjooni! 

Mitä tästä opimme? Kannattaa kysyä meitä kouluttamaan, sillä teemme sitä mielellämme aina kun asiakasprojekteiltamme ehdimme. Kannattaa myös hakea meille työharjoitteluun, jos motivaatiosi on kova, Drupalin perusteet on hallussa ja haluat päästä sen kanssa tositoimiin.

DrupalCon Dublin
24.08.2016

DrupalCon lähestyy – nähdäänkö Dublinissa?

Jokavuotinen pyhiinvaellusmatkamme DrupalConiin on enää kuukauden päässä ja ilmassa on jo kihelmöivää odotusta. Ilmoittautumiset Euroopan suurimpaan Drupal-tapahtumaan, 26-30.9. järjestettävään DrupalCon Dubliniin, ovat hyvässä vauhdissa. Druid on ollut mukana tapahtumassa lähes koko henkilöstönsä voimin aina perustamisestaan lähtien. Tällä kertaa kuitenkin valmistaudumme reissuun aivan erityisen innostuneissa tunnelmissa, sillä päätimme nostaa panoksia: olemme yksi DrupalCon Dublinin pääsponsoreista!

Mikä DrupalCon?

Drupal-yhteisö on yksi maailman suurimmista avoimen lähdekoodin yhteisöistä, ja kolme kertaa vuodessa ympäri maailmaa järjestettävä DrupalCon on sen sydän. Siellä verkostoidutaan, jaetaan osaamista ja ideoita, opitaan uutta ja kehitetään Drupal-projektia ja -alustaa entistä paremmiksi.

Toisin kuin voisi kuvitella, DrupalCon ei ole ainoastaan kehittäjien temmellyskenttä, vaan mukana on myös paljon Drupalia käyttävien asiakasyritysten edustajia. Jos siis olet jollain tavoin Drupalin kanssa tekemisissä, voit tulla DrupalConiin oppimaan siitä lisää ja tutkailemaan, mitä muut yritykset maailmalla Drupalin kanssa puuhaavat. Business caseista voit saada uusia ideoita projekteihisi.

Sponsorina haluamme tuoda suomalaista Drupal-osaamista positiivisesti esille, Druidin toimintatavoista ja asenteesta tinkimättä. Monessa ulkomaisessa asiantuntijatalossa ketteryys on käytännön tasolla vielä lapsenkengissä, mutta meillä se on Drupal-osaamisemme ohella yksi toimintamme kulmakivistä. Levitämme siis mielellämme agiilisanomaa kollegoillemme.

Mitä on ohjelmassa?

Tapahtuma koostuu suurelta osin sessioista, joita tällä kertaa on mukana 13 eri aihepiirin tiimoilta. Yli 600 ehdotuksen joukosta 130 hyväksyttiin mukaan ohjelmaan, joukossa myös muutama sessio druideilta: Bart Feenstran Cautionary tale for defensive programmers ja Restel.fi: built by humans, for humans, sekä Lauri Eskolan Drupal 8 theming in depth ja Create new user-facing core theme initiative. Restel.fi-showcasen esittelyssä on mukana myös projektin tuoteomistajana toiminut Jonna Tiainen.

Toki ohjelmassa on myös paljon muuta: useampi keynote (johtotähtenä luonnollisesti Drupalin perustaja Dries Buytaert), vapaamuotoisia birds of a feather -keskusteluja eri aiheista sekä kehityssprinttejä. Iltatilaisuudet tarjoavat loistavan mahdollisuuden verkostoitua ja tutustua Drupal-toimijoihin.

Kiinnostuitko?

Jos pomosi tarvitsee vakuutteluja tapahtuman hyödyllisyydestä, saat siihen apua täältä. Asiakkaamme ja yhteistyökumppanimme saavat liput meidän kauttamme aavistuksen halvemmalla. Ota siis yhteyttä, jos alennuskupongille on tarvetta! Liput kannattaa hankkia kiireen vilkkaa, sillä perjantain 26.8. jälkeen niiden hinnat nousevat. 

Toivomme, että näemme Dublinissa paljon tuttuja ja luomme uusia tuttavuuksia!

Bannerikuva taustalla:
Dublin (Ireland) At Night – Grand Canal Square Viewed From a Barge” / William MurphyCC BY-SA 2.0

Kirjoittaja