Codento Goes FooConf 2023 – kohokohtia ja oppimista

Codento Goes FooConf 2023 – kohokohtia ja oppimista

 

Kirjoittaja: Andy Valjakka, Full Stack -kehittäjä ja arkkitehtikokelas, Codento

 

Johdanto

Me Codentossa käytämme suurimman osan ajastamme asiakkaidemme konsultointiin. Silloin tällöin syntyy kuitenkin erinomainen tilaisuus saada inspiraatiota laadukkaista konferensseista. Tällä kertaa ryhmä koodaavia konsulttejamme päätti viettää jännittävän päivän fooConf 2023 -tapahtumassa muiden organisaatioiden kollegoiden kanssa.

 

FooConf 2023: Konferenssi kehittäjiltä kehittäjille

Ensimmäinen fooConf on päättynyt, ja se on tarjonnut osallistujilleen runsaasti tietoa työkaluista, teknologioista ja menetelmistä sekä inspiroivia puheenvuoroja. Saimme kokea erilaisia esityksiä, joissa lähestyttiin kuulijoita eri tavoin: oli ajatuksia herättäviä esityksiä, joissa osallistujille tarjottiin uusia näkökulmia sekä erittäin käytännönläheisiä casejä, jotka havainnollistivat, kuinka oppiminen tapahtuu tekemällä.

Mutta mikä tarkalleen on fooConf? Kuten heidän verkkosivustollaan todetaan, se on konferenssi, joka on ”by Developers by Developers” eli kehittäjien luoma ja kehittäjille tarkoitettu. Toisin sanoen kaikki esitykset on räätälöity ohjelmistoalalla työskenteleville: hyödyllistä sekä käytännöllistä tietoa, jota voidaan soveltaa juuri nyt.

Yleisesti ottaen esitykset jakautuivat kahteen luokkaan:

  • Eri työkalujen käyttötarkoituksien ja etujen havainnollistamista sekä
  • tapoja sekä lähestyä ongelmia käytännössä että ajatella niitä uudella tavalla.

Lisäksi pääpuheenvuorot muodostivat oman kolmannen kategoriansa henkilökohtaisesta kasvusta ja itsereflektiosta alan jatkuvasti muuttuvassa turbulenssissa.

Tutustutaan tarkemmin jokaiseen kategoriaan ja katsotaan, mitä niistä löytyy!

 

Työkalujen loputon valikoima

Ammatissamme ei todellakaan ole pulaa työkaluista, jotka vaihtelevat suhteellisen yksinkertaisista IDE-laajennuksista älykkäisiin avustajiin, kuten GitHub Copilot. Kokemukseni mukaan ammattilaisilla on tapana valita joitain ja tottua niihin, mikä voi vaikeuttaa näkemyksen laajentamista asian suhteen. Ehkä jotkut esitellyistä työkaluista ovat juuri niitä, joita tarvitset nykyiseen projektiisi.

Koska esimerkiksi kontit ja palvelimettomuus ovat tämän hetken trendejä, on meillä paljon opittavaa tällaisten ympäristöjen oikeanlaisesta käytöstä. Abdellfetah Sghiouarin esityksessä The Hitchhiker’s Guide to container security on Kubernetes oli paljon tarjottavaa siitä, miten voidaan varmistaa, etteivät klusterit vaarannu sellaisten uhkien takia kuin suojaamattomat kuvat ja käyttäjät, joilla on liian laajat oikeudet. Erityisesti gVisorin käyttäminen pienten, eristettyjen kernelien luomiseen kontteja varten oli idea, jolle näimme heti käyttöä tosielämässä.

Muita merkittäviä kohokohtia ovat seuraavat:

  • Erityisesti Java-kehittäjille on tarjolla OpenLiberty – pilvipohjainen mikropalvelukehys, joka on MicroProfilen ajoympäristö. (Cloud-Native Dev Tools: Bringing the cloud back to earth, Grace Jansen.)
  • GitHub Actions – tapa tehdä DevOpsia kerralla oikein käyttämällä jännittävää matriisistrategiaa, jonka avulla voit määrittää helposti samanlaisia töitä pienillä muunnelmilla. (A Call to (GitHub) Actions!, Justin Lee.)
  • Palvelimettoman arkkitehtuurin yhteistoiminta vanhan järjestelmän kanssa voidaan tehdä nokkelasti muuntamalla järjestelmän tietoja tapahtumiksi Debeziumin avulla. (A Legacy App enters a Serverless Bar, Sébastien Blanc.)

 

Ratkottavaa on runsaasti

Ohjelmistojen kanssa työskentely vaatii pohjimmiltaan ongelmanratkaisutaitoja, mikä puolestaan vaatii ideoita, uusia näkökulmia ja toisinaan myös ripauksen hulluutta. Muiden kokemuksista oppiminen on korvaamatonta, sillä se on paras tapa lähestyä aiheita ilman, että niihin tarvitsee sukeltaa syvälle. Lisäetuna on se, että saa kuulla, mitä kaltaisesi ihmiset oikeasti ajattelevat niistä. Onneksi fooConfilla oli enemmän kuin tarpeeksi tarjottavaa tämän tiimoilta.

Esimerkiksi Daniel Deogunin Security by design -esitys muistutti kaikkia siitä, että turvallisuusongelmat ovat aina läsnä. Ohjelmistoja tulee rakentaa ”Defense in Depth” -tyylillä käyttämällä turvallisia suunnittelumalleja jokaiselle osa-alueelle – varsinkin, jos rakentaa julkisia rajapintoja. Merkittävä nosto tästä esityksestä liittyy suhteellisen tuoreeseen Log4Shell-haavoittuvuuteen: lokien kirjoittaminen tulisi nähdä erillisenä järjestelmänä ja näin ollen käsitellä sellaisena. Esitys kehotti muun muassa pohtimaan, mitkä kaikki ohjelmistosi osat ovat todellisuudessa erillisiä ja mahdollisesti haavoittuvaisia järjestelmiä.

Muita kohokohtia:

  • JavaScriptin tulevaisuudessa palvelimen ja asiakaspuolen renderöinnin välinen kuilu pyritään kuromaan umpeen jättämällä mahdollisimman vähän JavaScriptiä loppukäyttäjän suoritettavaksi. (JavaScript frameworks of tomorrow, Juho Vepsäläinen.)
  • Jokaisella on velvollisuus testata, vaikka tiimillä olisikin nimetty testaaja. Testaajat voivat löytää ainutlaatuisia näkökulmia tutkimuksen avulla, mutta 77 % tuotannon häiriöistä voidaan havaita yksikkötesteillä. (Let’s do a Thing and Call it Foo, Maaret Pyhäjärvi.)
  • Muilla aloilla käytettävien ratkaisujen kokeileminen saattaa jopa onnistua, kuten Supermetrics oppi lainattuaan mallin autentikoinnin tekevästä keskuspalvelimesta MMORPG-videopeleistä. (Journeying towards hybridization across clouds and regions, Duleepa Wijayawardhana.)

Aivan kuten muiden kokemuksista oppiminen on sinulle tärkeää, myös muiden on yhtä arvokasta kuulla sinun kokemuksistasi. Älä pelkää jakaa tietämystäsi ja yritä saada aikaa tiimisi kalenterista, jotta voitte jakaa ajatuksianne mistä tahansa aiheesta. Riman asettaminen matalalle on tärkeää; ajatus, joka vaikuttaa sinusta satunnaiselta, voi olla vain jollekulle toiselle suuri oivallus.

 

Ajaton inspiraatio

Tom Coolsin avauspuhe Learning Through Tinkering oli matka, jossa oppimisen prosessin käytiin läpi tekemällä, ja se kehotti kaikkia olemaan tietoisia siitä, mitä he oppivat ja miten. Monissa tilanteissa on arvokasta olla tietoinen ”proksimaalisen kehityksen vyöhykkeestä”: tietoalueesta, jolle oppija pääsee ohjattuna. Tämä on arvokas ajatus muistaa paitsi itsellesi myös tiimillesi, varsinkin jos satut olemaan johtaja: tiimisi rajojen ymmärtäminen voi auttaa sinua auttamaan toisiasi eteenpäin. Lisäksi on liian helppoa kompastua kaikkiin mahdollisuuksiin, jotka kohtaavat polkusi. Siksi on tärkeää valita yksi saavutettavissa oleva tavoite kerrallaan ja olla tietoinen oppimisen tavoitteista.

Epäilemättä jokainen meistä ammatinharjoittajista on kokenut, että opittavien asioiden määrälle ei näy loppua. Jopa itse konferenssi tarjosi liikaa yhdelle ihmiselle täysin käsitettäväksi. Nate Schuttan päätöspuhe Thinking Architecturally toimi lempeänä muistutuksena siitä, että aina ei ole tarve ratsastaa teknologian aallonharjalla. Teknologiat tulevat ja menevät aaltoina, jotka tuppaavat noudattamaan kaavoja pitkällä aikavälillä, joten mikään tieto ei ole koskaan täysin vanhentunutta. Sen sijaan tulee olla strateginen sen suhteen, mihin huomion kohdentaa, sillä kukaan meistä ei voi olla edes yhden aiheen täydellisiä tietäjiä. Tärkeintä on olla ennakkoluuloton ja haalia laaja-alaisesti tietoa monista asioista sekä syvempää tietoa kapeammin määritellyltä alueelta – eli olla ”T-kirjaimen muotoinen generalisti”.

(Lisäksi avauspuheenvuorossa esiteltiin koko konferenssin henkilökohtainen suosikkikohokohtani, Teachable Machine. Se tekee koneoppimisen käytöstä niin helppoa, että on melkein hölmöä olla rakentamatta heti jotain sen avulla. Todella inspiroivaa!)

 

Haasta itseäsi tänään

Kaiken kaikkiaan konferenssi oli ehdottomasti menestys, ja se piti lupauksensa olla kehittäjiä varten. Jokaisella esityksellä oli paljon tarjottavaa, ja voi olla vaikeaa yrittää valita, mitä ottaa mukaansa kaikkien ideoiden joukosta. Pidä siis mielessä aloituspuheessa esitetyt neuvot: älä liioittele, on täysin ookoo valita vain yksi aihe, josta haluat oppia lisää, ja aloittaa siitä. Pidä mielessä myös proksimaalisen kehityksen vyöhyke: et tiedä mitä et tiedä, joten askel taaksepäin voi auttaa sinua ottamaan kaksi askelta eteenpäin.

Itselleni koneoppiminen on yleensä vaikeasti ymmärrettävä aihe. Olen muusikko, ja minulla oli projekti-idea, että voisin ohjelmoida rumpukoneen ymmärtämään käsieleitä. Esimerkiksi avoimen käden näyttäminen tarkoittaisi, että soiton tulee loppua. Luovuin projektista tajuttuani, ettei osaamisena koneoppimisen alueella ollut riittävän hyvällä tasolla. Nyt kun tiedän, että Teachable Machine on olemassa, projekti-idea nousi uudelleen esille, koska vaikea osa ideasta on selvitetty.

Jos osallistuit, olemme kiinnostuneita kuulemaan, mistä aiheista olet päättänyt oppia enemmän. Vaikka et osallistunutkaan tai et kokenut mitään esitellyistä aiheista juuri sinulle oikeaksi, olet varmasti törmännyt johonkin mielenkiintoiseen asiaan, jonka opettelemista olet lykännyt. Pyydämme sinua tekemään tietoisen valinnan, että aloitat nyt!

Tiedon puoliintumisaika voi olla lyhyt, mutta oppiminen tuo mukanaan viisautta ja kokemusta, jotka pysyvät matkassasi koko eliniän.

Hyvää oppimista ja nähdään fooConf 2024 -tapahtumassa!

Tietoja kirjoittajasta: Andy Valjakka on full stack -kehittäjä ja tuleva arkkitehti, joka liittyi Codentoon vuonna 2022. Andy aloitti uransa vuonna 2018 tarttumalla monimutkaisiin haasteisiin käyttämällä systemaattista lähestymistapaa, mikä johti hänen pro gradu -tutkielmaan käyttöliittymäkehysten vaihtamisesta 2019. Nykyään hän on sertifioitu Professional Google Cloud Architect, jonka erikoisalaa on löytää ne palapelin palat, joiden avulla mitä tahansa saa sopimaan yhteen.