FCG Talent Jfokus2019
15.02.2019 Petri Tuomaala Tuotekehitys

Tuotekehityksen kuulumiset Jfokus 2019-konferenssista

Konferenssit Osaamisen kehittäminen Prosessi Teknologia Trendit

JFokus on Tukholmassa vuosittain järjestettävä kehittäjäkonferenssi, joka keskittyy pääasiassa Java-ohjelmointikielen ympärille. Konferenssi on hyvin järjestetty: agenda on laadukas ja siinä riittää vaihtoehtoja, tapahtumapaikka on hyvä ja nälästä ei tarvitse murehtia. Hyvän maineensa ansiosta JFokus saa puhujiksi isojakin nimiä kehittäjäskenestä. Osallistuin itse nyt jo kuudetta kertaa tapahtumaan. Jokaisena vuonna olen kokenut oppineeni jotain uutta ja saaneeni ideoita sekä innostusta työhöni. Voiko konferenssilta muuta toivoa?

Tänä vuonna agendaa ei ohjannut mikään erillinen hype tai trendi, mitä esim. AI/IoT/Reaktiivisuus/NoSQL ovat aikaisempina vuosina olleet. Toki sessioita näistä oli nytkin tarjolla, mutta tämän vuoden teema juontui isolta osin Javan muuttuneen releasointimallin ympäriltä. Vaikka kyseessä on lähinnä releasointi ja lisenssiasia, niin silti se asiakokonaisuutena on sellainen, johon jokaisen Java talon tulee miettiä strategia. Tai strategia tulisi olla jo, koska viimeisin Java 8 versio on julkaistu tammikuussa 2019 ja siihen ei ilmaiseksi ole tulossa enää korjauksia.

Jfokus2019

Muutoksia Javan releasoinnissa

Käytännössä Javaa julkaistaan jatkossa 6kk release sykleissä. Tavaraa tulee jatkossa ulos siis nopeammin ja siinä syklissä mukana olemiseen pitää sopeutua. Käytännössä tämä vaikuttaa epäsuorasti myös omien tuotteidemme versiointiin. Asiakkaiden JDK versiot pitää pitää ajan tasalla, mutta vanhoja tuoteversioita ei ole järkeä testata uusiksi uudelle JDK versiolla. Tämä johtaa siihen, että asiakkaille pitää synnyttää halu ottaa tuoteversioita vastaan aiempaa tiheämmin. SaaS lähtöisessä toiminnassa tämä ei ole haaste, mutta asiakaskohtaisissa toimituksissa vastaavasti on.

Mitä Javan releaseputkessa on sitten tulossa? Paljon pieniä, mutta ah niin merkittäviä parannuksia itse kieleen (esim. JEP 326: Raw String literals, JEP 325: Switch Expressions) kuin lupauksia isommistakin muutoksista (Project Valhalla, Project Loom). Erityisesti Loomissa mukana oleva Fiber voi merkittävästi muuttaa tapaa, joilla serverit saadaan vastaamaan kuormaan nykyistä Thread pohjaista ratkaisua paremmin/tasaisemmin.

Olemmeko monitoroineet vasteaikoja aina väärin?

Javan tulevaisuuden lisäksi mieleen tämän vuotisista sessioista jäi aloitus- ja lopetuskeynotet. Aloituskeynotessa Gil Tene käsitteli tuotannon vasteaikojen monitorointia ja miten kaikki tekee sen käytännössä väärin keskittymällä keskiarvoihin, mediaaneihin tai tutkimalla 75/90/95 percentile graafeja. Tämä piilottaa näkyvistä todelliset ongelmatilanteet. Hänen mukaansa tulisi sen sijaan keskittyä 99 percentilen ja sitä ylemmän tason seuraamiseen, koska täällä korostuvat asiat ovat niitä, jotka vaikuttavat epäsuorasti kaikille käyttäjille (koska yksittäinen sivu tekee keskimäärin niin paljon taustakutsuja, jolloin pakostakin jokin niistä kokee 99+ percentilen ongelmia). Sinällään tästä näkemyksestä oli helppo olla samaa mieltä. Aiemmin tuotantoa olemme monitoroineet New Relicin tuotteilla ja emme itse ole pystyneet selvittämään kaikkia ongelmatilanteita sen kautta, koska dataa tulee niin paljon, että yksittäiset asiat piilottuvat. Olemme nyt siirtymässä Plumbr nimiseen sovellustason monitorointisoftaan, jolla keskiarvojen sijaan seurataan käyttäjille eniten vaikuttavia pullonkauloja, niiden ydinsyitä ja yksittäisiä hitaita/epäonnistuneita pyyntöjä. Tällöin korostetaan ongelmatilanteita, eikä ne huku onnistuneiden tilanteiden taustakohinaksi. Seuraavan JFokuksen aikoihin olemme varmaan viisaampia sen suhteen nopeuttiko Plumbr ongelmatilanteissa vikojen paikantamista vai ei. Tähän asti kaikki näyttää kuitenkin lupaavalta.

Teknologia valitaan ratkaistavan ongelman mukaan

Lopetuskeynotessa Oraclen Brian Goetz piti puhuttelevan esityksen funktionaalisen ohjelmoinnin ja oliopohjaisen ohjelmoinnin vastakkainasettelusta. Mielestäni hän oikein nosti esille sen, että erityisesti kehittäjät ovat herkkiä nostamaan oman mielipiteensä alustalle ja ainoaksi oikeaksi ratkaisuksi ongelmaan kuin ongelmaan. Olkoon asia sitten FP vs OOP, JS vs Java/Python/... niin aina löytyy ääripäät ja haluttomuus edes katsoa toiseen suuntaan. Sen sijaan meidän varmaankin pitäisi yrittää ratkaista käsillä oleva ongelma parhaalla mahdollisella tavalla? Tällöin työkalut, teknologiat ja paradigmat tulisi valita tätä ongelmaratkaisua tukevaksi ja palvelevaksi, eikä tehdä valintaa vain omien mielipiteidensä tai vallalla olevan trendin pohjalta. Java ei ole ratkaisu kaikkeen, niin kuin ei ole funktionaalinen tai oliopohjainen ohjelmointikaan. Puhutteleva keynote, johon oli helppo samaistua.

Mikäli et ole vielä osallistunut JFokukseen, kannattaa se ehdottomasti tehdä. Vaikka tänä vuonna lumisade teki haasteelliseksi päästä Tukholmaan ja sieltä pois, on olo silti virkistynyt ja innostunut. Nähdääpä siis helmikuun ensimmäisellä viikolla 2020 JFokuksessa.
 

Lisää tuotekehitystiimin tunnelmia löydät blogeistamme

Kuvia tapahtumasta

Jfokustaukokoodaus
Tauot voi hyödyntää testaamalla uusia opittuja taitoja
Jfokus2019
Konferenssin jälkeen olo on virkistynyt ja innostunut