Hyppää sisältöön

EverTalk: Timon opit devaajille

Mitä yhteistä on arkkitehtuurilla ja koodaamisella? Miten varmistaa, että koodi ei ainoastaan toimi teknisesti, vaan myös palvelee liiketoiminnan ja käyttäjien tarpeita? Tässä EverTalk-jaksossa syvennymme koodauksen filosofiaan yhdessä johtavan UI-kehittäjämme, Timo Sundvikin, kanssa.

By Evermade, 17.09.2025

Timo jakaa vuosikymmenten kokemuksensa ja haastaa perinteisiä koodausperiaatteita. Keskustelemme, miksi ”Don’t Repeat Yourself” ei ehkä olekaan aina paras lähestymistapa ja miksi ”Repeat Until Good” voisi olla toimivampi malli. Pohdimme myös, onko liiketoiminta- ja design-ongelmien ratkaiseminen tärkeämpää kuin teknisten haasteiden taklaaminen. Lisäksi käsittelyssä ovat tekoälyn rooli, vanhan koodipohjan kanssa eläminen ja se, miten devaaja voi kehittää ”design-silmäänsä”.

Timon lisäksi studiossa ovat mukana teknologiajohtaja Jaakko Alajoki ja senior developer Timi Wahalahti.

Jakson tekstiversio

Jakson tekstiversio on tuotettu tekoälyllä ja saattaa sisältää virheitä.

Timi: Moikka moi ja tervetuloa tämän EverTalk-jakson pariin. Meikäläinen on täällä Evermadella vanhempana kehittäjänä ja yhteisökoordinaattorina. Sitten meillä on myös Jaakko, meidän teknologiajohtaja, täällä mukana vieraana.

Jaakko: Kiva olla taas täällä, tota, lämpimässä studiossa. [naurua]

Timi: Kyllä vaan. Ja tänne lämpimään studioon on raahattu myös Timo. Timo on meillä johtava UI-kehittäjä, luova voima ja henkilö, jolla on todella paljon oppeja sekä mielipiteitä siitä, että miten kehittämistä pitäisi tehdä. Tänään puhutaan vähän Timon ajatusmaailmasta.

Timo: Joo, paljon kantapään kautta opittuja asioita.

Timi: Kyllä. Ennen kuin päästään sinne kantapäähän, niin kertoisitko sä vähän, että miten sä olet päätynyt Evermadelle ja minkälainen sun taustasi on, koska se on aika pitkä.

Timo: Se on pitkä, joo. Valitettavasti, joo. Ikää on tullut. Tota, no jos lähdetään ihan ala-asteelta saakka. No, sen verran on pakko sanoa, että se ehkä vähän pohjustaa tätä, että mä niinku saman tien koulussa innostuin matematiikasta ja kuvaamataidosta. Ja mä mietin, että musta tulee arkkitehti, mutta sitten mä vähän niinku kasvoin webin mukaan. Mä en siihen ehkä ihan ekaan web-aaltoon päässyt, mutta todella lähelle sitä. Ja mä tota, niin kuin just tuossa ennen, ennen tätä puhuttiinkin, niin mä aloin tekemään saitteja ennen kuin oli CSS:ää edes olemassa. Ja Microsoft FrontPagella väänsin, väänsin pelkkää HTML:ää ja tota, siitä sitten niinku oikeastaan kasvanut sitten koko, koko tota, se on ollut mulla aina harrastus. Ja sitten vaan jossain vaiheessa mulla alettiin yhtäkkiä maksaa rahaa siitä. Ja tota, mutta edelleen kyllä tuntuu niinku, että joka päivä kun saa tehdä vaan sitä työtä, niin tuntuu niinku harrastaisi. Ja tota, öö, mä olen opintotaustaltani graafinen suunnittelija, elikkä mä olen hybridi. Mä olen tehnyt sekä design- että devaustyötä, että niinku viralliselta koulutukselta olen graafinen suunnittelija, mutta veri veti kyllä tosi voimakkaasti devaus-, devauspuolelle. Ja ehkä tuossa niinkun oikeastaan vasta muutama vuosi sitten niinku oikein voimakkaasti käännyin devipuolelle, että sitä ennen mä olin täällä Evermadellakin tehnyt aika fifty-fifty kumpaakin työtä ja vähän mainostoimistossa ja pelifirmoissa pyörin ennen kuin tulin sitten. Itse asiassa pelifirmakytköksen kautta sitten päädyin Evermadellekin, että mä olin Roviolla tekemässä saitteja ja Evermade oli tehnyt about kaikkien muiden suomalaisten pelifirmojen saitit, niin me oltiin, kuulin myöhemmin, että me oltiin ihailtu toistemme työtä jonkin aikaa jo ja tota, kopioitu vähän toisiltamme ja otettu inspistä ja tota, päädyin, itse asiassa toin sitten Rovion mukana, niin meillä Rovion kanssa yhteistyö on jatkununut siitä asti. Edelleenkin tehdään heidän saittejansa.

Timi: Ja sinne on tehty aika paljon kaikkea hienoa, just niinku käyttöliittymäpuolella ja tämmöistä UI- ja front-end-kikkailua.

Timo: Kyllä joo, se on, eihän tosiaan niinku ihan joka, joka brändiin ei välttämättä… no, ei sitä tiedä, mutta välttämättä joka brändiin ei semmoinen hassuttelu sovi, mutta, mutta Roviolla ja Angry Birdsillä se kyllä ehdottomasti sopii ja on meillä kyllä muitakin, joissa on sitä saanut tehdä, mutta… Mutta näin.

Timi: Eli kokemusta tosiaan löytyy.

Jaakko: Eikä tota, eikä tunnu ainakin, että vanhemmiten olisi silleen vauhti hidastunut, tai siis silleen, että et edelleen niinku ihan heittämällä yksi meidän taitavimmista tekijöistä. Ja sitten aika paljon, tosta saa sitten korvat punottaa, mutta, mutta että aika paljon niinku meidän siitä, minkälainen meidän WordPressin käyttökokemus on, niin on niinku sun kynästä. Että tosi silleen syvällä, syvällä koodissa ja näet muiden koodia paljon ja silleen.

Timo: Mä olen siis, mä edelleen, mä joka päivä odotan sitä hetkeä, kun mä katson vanhaa koodia, niin totean, että vitsi, tämä on kyllä fiksusti koodattu. Koska sitten, sitten mä tiedän, että nyt on aika, nyt on aika vaihtaa proikkariksi. Nyt ei enää niinku, nyt on devipiikki saavutettu ja ja tota, näin. Että, mutta sitä ei ole vielä onneksi… No, sitä on vähän niinku alkanut tulemaan semmoisia. Kun mä yhtä, yhtä projektia katsoin oikein, että ”ai vitsi, se on kyllä ollut tulessa, kun se on tätä tehnyt.” Mutta tota, öö, mutta ei, kyllä mä niinku edelleen kehityn ja ja… näin. Mutta joo, tosiaan, meidän paljon siitä WP-käyttöliittymäkokemuksesta on mun… Yleensä se prosessi menee silleen, että mä niinku omaan projektiini tarvitsen jonkun hilavitkut… mä tarviin jotain parempaa sinne, kun meillä on sillä hetkellä. Ja sitten se hiljalleen siitä sitten jalostuu meidän tuohon base stackiin ja menee muidenkin käyttöön.

Timi: Se onkin ehkä se paras tapa tehdä asioita silleen, että on oikeasti niinku joku konkreettinen käyttökohde ja käyttötarkoitus, eikä vaan niin, että niinku tekemisen ilosta lähdetään kreaamaan jotain.

Timo: Kyllä, ja sillä pysyy myös niinkun se scope aika hyvin kasassa, että se on, se on aika fokusoitua. Koska jos sä niinku vaan ideoit, että ”tällainen olisi kiva, tällainen olisi kiva näin”, niin se äkkiä lähtee käsistä. Mutta se, kun sulla on hyperfokus, että mä tarviin nyt, mä tarviin jonkun responsiivisen ratkaisun tässä, niin sitten se on niinku that’s it ja näin.

Timi: Ja myöhemmin päästään sitten ehkä laajentamaan sitä, kun tulee uusia käyttökohteita ja just näin. Jep. Mutta hei, jos hypätään, Timo, tuonne syvään päätyyn. Sä uskot, että koodiongelmat on toissijaisia ja ne on niitä viimeisiä, jotka tulisi ratkaista. Toi saattaa ehkä kuulostaa vähän radikaalille joidenkin korvaan, varsinkin kun puhutaan devaajien kanssa. Niin mistä toi sun ajattelumalli kumpuaa?

Timo: Se nyt ei… pieni klausuli, että se ei tietenkään kaikkia, kaikkia asioita koske. Jo tietyt asiat on ensisijaisesti koodiongelmia, mutta ne on niinku pääsääntöisesti tässä mitä mä teen ja tässä meidän työssä, niin, niin tota, ehkä tässä näkyy pikkasen se, että mä olen ehkä sielultani enemmän suunnittelija kuin devaaja. Että tota, mä näen niinkun ensin, ensin… Priority yksi on bisnesongelmat. Sitten tulee suunnitteluongelmat ja sitten vasta ihan lopussa tulee ne devi-ongelmat. Että, mä usein sanonkin, että ”siis maailma on täynnä… minä, mutta monet sanoo, niin tota, että maailma on täynnä upeasti kirjoitettua koodia, jota kukaan ei käytä.” Että siis niinku se ihan… se, se on aika paljon siihen mun työskentelyfilosofiaan kanssa liittyy, että mä, mä esim. tykkään tosi nopeasta protoilusta ja iteratiivisesta työskentelytavasta, koska mä haluun, mä haluan epäonnistua mahdollisimman nopeasti. Että ehkä liian usein näkee sitä, että devaaja saattaa tosi pitkään hinkata vaikka jotain kansiorakennetta tai jotain, joka räjähtää sitten taivaan tuuliin, kun tuleekin bisnes-, uusi bisnesongelma.

Timi: Niin ja joka on ehkä aika toissijaista siihen sitten taas, että niinku saadaan jotain valmistettua ja shipattua. Että eihän se näy sille niinku loppukäyttäjälle, että mikä on kansiorakenne tai mikä joku nimeäminen vaikka on taustalla.

Timo: Ja, ja etenkin niin kun, etenkin se niin kun liiallinen ajankäyttö siihen on mun mielestä hassua. Että siis, mä niinku, mun mielestä on tosi hyvä, että on nättiä koodia ja nättiä, nätisti rakenneltu. Se arkkitehtuurissa on tosi tärkeätä niinku pitkäkestoisuuden kannalta, mutta, mutta se on mun mielestä hyvä tehdä vasta sitten, kun ollaan varmoja, mitä ollaan tekemässä.

Jaakko: Niin ja mä itse aina ajattelen silleen, että koodaaminen on niinku hidasta, eli kallista. Niinku tavallaan, että… ja niinku, ja sitten tehdään paljon virheitä, kun koodataan. Että silleen, lopulta pitäisi niinku, aina kun voidaan devata mahdollisimman vähän, niin se on niinku positiivista. Koska siellä rupee sitten yleensä asiat niinku maksamaan ja eskaloitumaan ja niinku kaikkea muuta.

Timo: Kyllä. Ja tosi usein niinkun, tosi usein tosi paljon devityötä johtuu väärinymmärretystä design- tai bisnesongelmasta. Että on niinku epäselvä speksi, niin sitten on lähdetty tekemään jotain ihan älytöntä. Voisi olla, että on muutamalla kysymyksellä selventää sitä ja tehdä paljon simppelimpi ratkaisu.

Timi: Just näin. Totta. Vähän kuulostaa siltä, että viekö tekoäly meidän devaajien työt jossain kohtaa, jos ei olekaan enää väliä kansiorakenteilla ja nimeämisellä ja jossain kohtaa myöhemmin vasta tulee koodin laadulla ehkä enemmän merkitystä ja on tärkeätä vaan niinku nopeasti prototyyppailla ja saada asioita aikaan.

Timo: No, siis mekin täällä puhutaan paljon siitä ja se on… mä, mä en kyllä ihan suoraan sanottuna… en ole ihan varma, mihin tämä on menossa. Öö… Kyllä se tietyllä tasolla varmaan jotain, jotain hommia se vie, tulee viemään. Ja kyllä mä… mä en esim. niinku, kyllä, mulla on, mulla on se… Mulla on aina tekoälyssä ollut se iso huoli, että mitä jos tästä lähtee se mun rakastama osa tätä työtä pois. Mutta mä oon, kun mä oon jonkin verran leikkinyt noilla AI-design-työkaluilla ja muilla, niin tota, kyllä mä edelleen löydän sieltä sen saman kipinän. Se on ehkä vähän eri lähestymiskulma. Että tota, mutta… mua, mua ei niinku henkkohtaisesti esim. haittaa yhtään se, että semmoinen niin kun yltiöpäinen devihifistely jää pois. Että, mulla tosiaan taustasta johtuen, niin mulle kuitenkin devaamisen ensisijainen funktio on aina ollut designin realisaatio. Eli minä, minä saan jonkun designin eloon sillä. Ja sitten, niinku se… se hifistelypuoli on sitten, se on ehkä tullut mullakin vähän myöhemmällä, myöhemmällä iällä mukaan, että on siitä innostunut, mutta tota, se on kuitenkin toissijaista. Ja sitä, niin kuin… mua ei henkkohtaisesti haittaa, jos AI nopeuttaa prototyyppaamista. Että se, se on vaan niin kun, se on samaa meininkiä, mutta tehokkaammin kuin ennen.

Jaakko: Just AI:sta tuli mieleen, että mä tein pari viikonloppua sitten, tein vaan silleen, mä oon halunnut tehdä semmoisen pyöräily-appin. Mä vaan silleen, että mä niinku white-codean ja promptaan sen viikonlopussa. Sitten mulla oli silleen valmis appi. Mä en koodannut mitään. Sitten mä olen silleen, että, mutta en mä tee tällä vielä niinku mitään. Siis tavallaan, että eihän, eihän tällä vielä mitään arvoa ole. Nyt tänne pitäisi saada käyttäjiä. Ja sitten yhtäkkiä se ongelma ei niinku olekaan se, että saa jonkun jutun valmiiksi, vaan se, että miten mä saan itse asiassa… Miten mä niinku teen tällä? Kuka tästä hyötyy? Mistä mä saan ne käyttäjät sisään? Ja sitten tavallaan… itse asiassa se devaaminen ei ollut niinku ollenkaan se ongelma.

Timo: Niin. Niin, ehkä se on niinku vähän tässä alalla… Musta tuntuu, että nyt on ollut alalla vähän niinku shokki muutenkin, että ensimmäistä kertaa ikinä niin devaaja ei olekaan niinku halutuin. Siis me ollaan eletty vuosia semmoisessa omassa pienessä kuplassamme, että joka ikinen devaaja, siitä taistellaan, firmat taistelee siitä. Niin, öö, kyllä niinku karmasimmat projektit mun mielestä on niitä, jotka on devijohtoisia. Että kyllä, kyllä niistä usein eniten ongelmia tulee. Että ja niistä tulee semmoisia helkkarin kalliita virityksiä, jotka ei palvele sitä. Me ollaan monia sellaisia tahoja pelastettukin tässä vuosien saatossa, koska…

Jaakko: Tai, tai vajottu suohon, sen takia.

Timi: Mumpaakin pitää olla tasapainossa.

Jaakko: IT löysi projektin ja sitten se ei koskaan valmistunut.

Timo: Me voitaisiin koko loppuaika käyttää siihen, että meikäläinen ränttää Headlessista, niin en, ei lähdetä nyt siihen, mutta tota, kyllähän tässä niinku ollaan joitain vuosia tehty aika devivetoisesti näitä projekteja ja mun mielestä on kyllä ihan tervetullutta, että siihen tulee se… Devi menee takaisin omalle paikalleen, niin sanotusti. Mutta, mutta siis, että se on se, ne on ne bisnes- ja ne design-ongelmat, joita tässä ratkotaan, eikä ne devi-ongelmat.

Timi: Joo, mutta totta kai välttämättä niinku toi ajattelumallin muutos vaatii myös devaajilta niinku jonkunlaista ajattelumallin muutosta. Niin niin, miten sä ajattelet, että niinku mitä toi lähestymistapa tarkoittaa sitten niinku konkreettisesti devaajille?

Timo: No ehkä, ehkä tässä niinkun, sen tästä ehkä jotenkin aistikin, mutta mä olen miettinyt nyt kun alkaa tätä ikää tulemaan, niin miettinyt, että mitä oppeja sitä haluaisi nuorille tota, antaa, niin kyllä, jos haluat todella erottua devauskentässä, niin kehittää toleranssiaan speksien muutoksiin. Se on niin kun… Että ne, ne erottuu tosi voimakkaasti joukosta, jotka, kun tulee speksimuutos, okei, ja toteuttaa sen. Kun se, mitä siinä aika usein käy, on, että, että menee vähän niinku pasmat sekaisin. Minä olen, minä olen nyt rakentanut tämän upean abstraktion ja upean kansiorakenteen ja nyt minun yhtäkkiä pitääkin, sinä sanoit, että minun pitää se tuonne toiseen paikkaan. Minullahan menee nyt kaikki aika siihen, että minä revin tämän kaiken, mitä minä olen rakentanut tästä alas ja… että siis… ja se on semmoinen, mikä on… Ja sitten… Että, että niinkun ja se muokvautumiskyky niinku uusiin tilanteisiin ja sitten just se, että niinku, että ei pidetä niitä kuitenkaan… Designeja ei pidetä erehtymättöminä tai bisnes-, bisnessuunnittelua ei pidetä erehtymättömänä, että se ei saisi muuttua, että se pitää tehdä kerralla oikein. Että mä olen, mä olen itse niinku paljon täyttelen, täyttelen semmoisia välejä, mitkä on designereilta jäänyt huomaamatta. Koska kun sen Figmassa pyörittelet, niin et sä niinku näe sitä kokonaiskuvaa. Niin tota, mä sanoisin, että se on kyllä yksi arvokkaimmista asioista, mitä voi… Mä, mä tiedän, että designerit arvostaa sitä ihan hulluna, että sä autat niinkun täyttää niitä välejä ja näin. Ja sitten… Ei kukaan, ei kukaan tykkää työskennellä sellaisen ihmisen kanssa, joka sanoo, että ”ei, ei onnistu, ei, ei voi, se on näin sovittu, ei, ei, ei”. Että kyllä se niinku… kaikki niinku kohtuudella tietenkin, mutta että… niin.

Timi: Eli niinku muovautumiskyky, mutta sitten ajattelit, että sä, että devajalla pitäisi ehkä myös jollain muodolla olla niinku designerin kyvykkyyksiä tai jotain niinku semmoista vähän silmää siihen puoleen.

Timo: No joo, se on, se on itse asiassa… Mä olen, mulla on ollut vähän haasteena koko uran ajan oikeastaan niinku noi titteli-asiat, koska tota, mun käsitys esim. niinku front-end-kehittämisessä ei ole ehkä sitä, mitä se nykyään… Että me ollaan alana, ja musta tuntuu, että AI vähän tuo tätä takaisin toiseen suuntaan, että me ollaan alana hyperspesialisoitunut tiettyihin alueisiin. Ja musta tuntuu, että esim. niinku nykyään front-end-devaja on aika pitkälti niinku back-end-devaja, joka käyttää Reactia tai silleen, että se on niinku samanlainen. Että, että aika paljon on niinku sellaista perus… On, on sellaisia perusdesign-sääntöjä, mitkä olisi mun mielestä tosi hyvä… Se, se vähentää ihan hirveästi niinku ylimääräisen kommunikaatiota. Kommunikaatio on aina hyvä, mutta jos niinku joka pikkuasiaan tarvitaan kommunikaatiota, niin se tekee siitä aika raskaan siitä prosessista. Niin tota, kuka, kuka tahansa devaja, joka on tekemisissä jonkun asian kanssa, joka näkyy loppukäyttäjälle, niin mun mielestä olisi hyvä kehittää sitä design-silmää.

Timi: Vähän kykyä ehkä sitten niinku myös tehdä silleen lennosta joitain ratkaisuja ja vaan niinku ehkä hyväksyttää ne sitten siellä design-puolella, että ”hei, että ajattelin, että tämä voisikin näyttää paremmalta” tai että ”tämä ei ollut leiskattu ja mä tein tähän tämmöisen ratkaisun. Onko niinku ok?”

Timo: Ja tosi, ja tosi paljon, siis mekin saadaan nykyään Figmasta vaikka mitä suoraan CSS:ää ulos, mutta kyllä siinä loppu-, lopputuotteessa on niin paljon semmoisia muuttujia, joita me ei niinku voida hallita. Että tota, että se, että niinku, on semmoisia ihan perussääntöjä, että tekstin kuuluu olla lähempänä sitä kuvaa, mihin se liittyy, ja tällaisia niinku ihan, ettei tarvi niinku olla mitään… En mäkään ole missään nimessä koskaan ollut mikään brändidisainer tai sellainen. Mä oon ollut semmoinen niinku design-työn jatkajadisainer. Niin tota, mutta että se on niinku ollut aika arvokasta tässä työ-, työuran aikana. Ja se on semmoinen… Mä hyvin varhaisessa vaiheessa, kun mulla oli vähän sitä design-taustaa, mutta mä tajusin jossain vaiheessa, että mulla ei ole luonnostaan hirveän hyvä design-silmä. Että tuntuu, että jotkut tulee suoraan, joilla on upea maku ja upea design-silmä. Mulla ei ollut mitään makua. Että mä, mä tein ihan siellä graafisen suunnittelun koulussa ihan karsinnan näköisiä saitteja. Että tota, mutta että sitten mä otin semmoisen niinku… mä niinku päätin, että ”okei, mä en tajua näitä designeja.” ”Tässä on nyt jotain, tämä on nyt jotain korkeampaa.” Että mä en tajua. Ja mä rupesin niinku vuosien aikana vaan niinku suhtautumaan siihen silleen, että ”okei, mä en tajua, mutta ehkä tämä ei nyt ole ihan täysdille tämä designer, että ehkä se nyt tietää, se on nyt jotain, mitä mä en näe.” Ja se on ehkä just siinä design-silmässä haasteellisinta, että kun ne on asioita, joita sä et tiedä olevan ennen kuin sä näet niitä. Ja, ja se hyvä design ja hyvin toteutettu design on… on niinku yleisesti väestölle, kuitenkin aika harva on niin voimakkaasti visuaalinen, niin se on niin kuin enemmän semmoista alitajuista, että tuntuu, että tämä on hyvin tehty ja… ja niinku tulee semmoinen luottavainen olo. Mun mielestä se on luotettavuus verkkosivuissa on tosi tärkeätä, että sen pitää näyttää luotettavalta. Ja silloin se ei voi sojottaa asiat sinne tänne.

Timi: Itse asiassa just puhuttiin Slackissa tästä vähän aikaa sitten ja mä sanoin esimerkkinä, että mä tykkään siitä, että kaikki on niinku viidellä jaollista. Että niinku joka puolella vaikka viisi pikseliä marginia. Ja sitten sain silleen… [naurua]

Timo: No siis mä, mä laitoin esimerkin, että siis valitettavan usein fontit ei rendaudu selaimessa ihan just silleen kuin pitäisi. Niin, että jos vaikka sä laitat, niinku sä teet napin, sä laitat sinne jonkun hienon custom fontin, line height yksi, kaiken pitäisi olla ihan jiirissä, niin se on hintsun verran ylempänä, sitten lähempänä sitä yläreunaa. Niin tota, mä… Tämäkin, ja tämä kesti mun, mäkin olin tosi pitkään viidellä jaollisessa jengissä. Että sitten jossain vaiheessa mä yhtäkkiä niinku luovutin, ja mä… ”No mitä jos mä pistän vähän enemmän sitä paddingia?” Mä pistän pikselin lisää sitä paddingia sinne ylös. Mikään järjestelmä ei ole koskaan romahtanut sen takia, että se ei ollutkaan viidellä jaollinen se pikselimäärä. Että siis tosiasiahan on se, että niinku, jos se tuntuu hirveältä synniltä, mutta ei se oikeasti niinku…

Timi: Ja sitten se näyttää… näyttää ihmiselle paljon paremmalta.

Timo: Se näyttää, että se on oikein, kun taas, sulla voi olla se matikka oikein, mutta se näyttää virheeltä.

Jaakko: Tuo on semmoinen, mitä me ollaan puhuttu ihan tässä viime aikoina aika paljon, että jos ei ole design-silmää niin sanotusti, niinku devaajilla, niin voidaanko me jotenkin opettaa design-silmää, vai onko se vaan joku kyky, mikä ihmisellä niinku on?

Timo: Ei, se on… Mä olen… ennen kaikkea juuri korostaisin sitä, että se on niinku asenne-, asennekysymys. Että joo, tosi, tosi paljon itsekin kohtaa sitä, että niinkun ei ole design-silmää. Se on vähän semmoinen niinku…

Jaakko: Voisin taakse voi mennä, että ”en minä mikään suunnittelija ole.”

Timo: Niin, että kyllä se… kyllä jokainen sitä voi oppia näkemään. Kun sen, mä olen myös huomannut sen, että ihmiset, jotka on sanonut, että niillä ei ole design-silmää, kun ne vähän avaa sitä mieltään, niin yhtäkkiä sieltä alkaakin tulemaan vähän skarpeamman näköistä fronttia.

Jaakko: Niin, ja sitten kuitenkin on olemassa aika paljon lainalaisuuksia, niinku sääntöjä.

Timo: Ja sitten kun sä opit ne, niin sä alat yhtäkkiä näkemään niitä kaikkialla. Ja sitten sä näet, kun…

Jaakko: Tai jos ne ei ole niitä…

Timo: Niin just näin. Se oikein pomppaa sieltä.

Timi: Ja varmaan aika paljon tulee just siitä, että ei ota sitä leiskaa vaan silleen annettuna, että nyt koodataan niinku tämmöinen, kun leiskassa on, vaan että sitten käydään sitä vuoropuhelua kanssa sen suunnittelijan kanssa ja siinä prosessissa tulee kanssa opittua sitten niitä asioita ja sitä, se silmä harjaantuu.

Timo: Itse asiassa, ja mä allekirjoitan 100-prosenttisesti tuon. Jos mä oikein väännän vähän sun sanoja, niin tota, itse asiassa hyvä harjoite on se, että tehdään just se, mikä leiskassa on. Että siis, näin niinkun, ei, nyt sä puhut tästä kanssakäymisestä enemmän, mutta siis niinkun design-silmän harjoitteena. Että se kuulostaa vähän tyhmältä, mutta koita tehdä siitä just sen näköinen, kun siinä designissa on. Niin sitten yhtäkkiä sä huomaat… Se on hyvin old school tekniikka, joka edelleen toimii. Otat screenshotin sun saitista, otat screenshotin leiskasta, pistät ne fotarissa läpinäkyvänä päällekkäin, niin sitten sä yhtäkkiä huomaat, että sä et nähnyt, että sulla oli niinku reippaasti liian iso white space vaikka tuossa välissä. Ja tota, sitten se on tosi hyvä oppimistyökalu.

Timi: Joo, joo. Mielenkiintoista. Nyt ollaan puhuttu aika paljon myös tuosta suunnitteluhommasta. Jaakon lempilapsi on taas nykyään numerot ja myynti ja kaikki se.

Jaakko: Kyllä. Totta, joo, nimenomaan.

Timi: Kulujen karsiminen ja… [naurua] Jep. Niin miten sitten niinku, kun puhuttiin siitä, että myös ne bisnesongelmat on tavallaan niinku semmoisia, jotka ajaa, ajaa teknologiaongelmien ja sen teknologian ratkaisujen yli ehkä jossain kohtaa. Niin mitä siellä niinku sitten devaajan kannalta siellä bisnespuolella pitäisi ehkä oppia ottaa huomioon?

Timo: No mun mielestä ihan niin kuin perusjuttuna niinku projektityössä, niin ollaan lähtökohtaisesti kiinnostunut siitä puolesta ja ja ehkä jopa saamaan jo luotua jonkinlaista suhdetta niihin ihmisiin asiakkaan puolella, esim. tässä meidän työssä, jotka tekee niitä päätöksiä. Että, että tota, se, se usein, jos, jos devaaja vaan saa sen Figma-filun, niin siinä on niinku tuntien ajatustyö, jota monet eri ihmiset on käynyt läpi, josta sä et tiedä mitään, jotka katoaa siinä. Siihenkin on niinku kyllä varmasti teknologisia, teknologisiakin, miten se voi ratkaista, että ne pysyisi paremmin, mutta näin niinku lähtökohtaisesti perustyössä, niin se, että osallistuu aktiivisesti projektiin hyvin alkuvaiheessa. Ei tarvitse olla joka palaverissa mukana, mutta vähän kyselee, miten meni ja seuraa keskustelua ja on vähän kartalla, että millaisia ominaisuuksia siinä on, niin kyllä niinku hyvin äkkiä huomaa, että se tekee myös sitä devityöstä aika paljon helpompaa, kun sä olet perillä, että, että tota… Joo, se voi olla niinku siinä design-vaiheessakin on unohtunut joku, mutta sä muistat, että silloin keskusteltiin, että ”hei, siinä pitää olla joku tällainen juttu”. Niin, niin niinku näin.

Jaakko: Tuo oli semmoinen, mitä mä meinasin äsken sanoa, että mitä devaajalta vaaditaan tai mitkä on tärkeät kyvyt, niin on jotenkin mun mielestä se, että innostuu siitä niinku oikeasta ongelmasta, mitä ollaan ratkaisemassa, eikä siitä, että sisäistin jonkun filen oikein. Että tavallaan… Tai siis, kyllä mäkin olen joskus kirjoittanut funktioita, joita mä katson silleen, ”vitsi, kun tuli hyvä funktio”. Totta kai siitäkin saa kiinnostua, mutta, mutta tavallaan se oikeasti se kiksi pitäisi saada siitä, että ”me tehtiin tämmöinen palvelu ja tästä on tämmöistä ja tämmöistä hyötyä”. Ja kyllähän se joskus unohtuu. Siis mä olen tehnyt monta kertaa työurallani sen, että mä niinku lopetan ja silleen kuvainnollisesti astun kaksi askelta taaksepäin ja silleen katson, että mitäs nyt tässä tässä niinku kokonaisuudessa ollaan tekemässä ja mitä on saatu aikaan. Ja tavallaan mikä tämän vaikutus on meidän asiakkaille tai loppuasiakkaille tai jopa joskus yhteiskunnallisesti. Ja sitten se onkin yhtäkkiä aika kiinnostavaa.

Timo: Kyllä. Ja ei, ja siis se on, toikin on mun mielestä tosi tärkeä aihe. Mun mielestä, mä oon kanssa, edelleen koitan innostua joka asiakkaasta, vaikka se ala itsessään ei vaikka kiinnostaisi mua. Niin, mä sekin on semmoinen asia, mitä mä oon huomannut, että se tekee siitä paljon mielekkäämpää siitä tekemisestä. Kun sä niinku… vähän sama kuin sanoillaan, että sä feikkihymyilöt peilin edessä, niin sitten tulee kropalle hyvä olo, lähtee sellainen signaali, että jos sä olet feikki… niin no joo. Tän voi leikata.

Timi: Me ei oikeasti hymyillä täällä.

Timo: Ollaan vaan luolassa ja koodataan menemään. Mutta se itse asiassa, mitä sä sanoit, tuosta tuli aika hyvä toi… Devi on itse asiassa siitä uniikki, että siinä mennään semmoiseen tosi syvään flow-tilaan, kun sitä tehdään. Että tota, mäkin oon tosi, tosi monta iltapäivää niinku hakannut päätäni seinään jonkun typerän ongelman kanssa. Ja sitten mä käyn kävelyllä, nukun yön yli. Mä yhtäkkiä tajuan, että se ei ole ollenkaan devi-ongelma, vaan nyt mä astun taaksepäin ja meenkin tuolta, tehdään pieni bisnes-, bisnesongelma, design-ongelman muutos, niin se onkin ihan helppo päästä ohi. Mä olin niinku täysin jumissa siinä, että ”tämä on nyt devi-ongelma, miten helkkarissa… Aikaan ei auta ja kukaan ei keksi tätä.” Niin sitten, ja sitten, ja sitten itse asiassa aika usein selviää, kun on sitä hyvää kommunikaatiota suunnittelupuoleen ja asiakkaaseen, että se voi olla asia, joka niinku, jota kukaan ei kiinnosta. ”Ei kun vaihdetaan vaan.” Että jos, jos sä otat sen niinku lakina, että ”mun on saatava tämä nyt toimimaan”. Mutta että siis sä voit… se on mahdollista, että sä istut, tai astut vähän taaksepäin, meet vähän eri reittiä, niin säästyy kymmeniä tunteja yhtäkkiä projektista.

Timi: Miten me ollaan, Jaakko? Vähän, ottaa semmoinen pieni, pieni niinku detour tässä kohtaa. Mä tiedän, että me ollaan ratkottu noita ongelmia meidän projekteissa ja meidän prosesseissa, niin niin miten me ollaan lähestytty tota, että me vältettäisiin noita, vältettäisiin noita ongelmilta. Ja ja niinku miten tavallaan… kun toihan pitää myös myydä asiakkaalle jossain kohtaa, päästään taas siihen Jaakon rakastamaan rahaan. Koska se maksaa, että devaaja on mukana siellä alkuvaiheessa ja muuta. Niin tavallaan, miten me ollaan onnistuttu myymään tän, tän lähestymismallin lisäarvoa?

Jaakko: Tota, no siis tavallaan kyllähän se, se lisäarvo on se, että päästään menemään nopeammin oikeaan suuntaan. Eli tavallaan ”okei, että nyt tulee kaksi tuntia tai neljä tuntia lisälaskutusta siitä, että joku devaaja on mukana liian aikaisessa vaiheessa lainausmerkeissä.” Mutta että sitten se säästää sieltä projektin loppuvaiheessa aikaa. Että tokihan dokumentaatio on yksi vaihtoehto, että ”okei, devaaja ei ole mukana, dokumentoidaan”, mutta se on niinku aika työlästä ja kukaan ei lue sitä ja se ymmärretään väärin ja… Että niinku, että mun mielestä paras on se, että oikeasti ollaan puheissa, plus niinku sanoit, että se on ollut vaikea innostua jostain jutusta silleen lukemalla jotain speksiä versus se, että sä puhut sille asiakkaalle, ehkä käytät itse tiloissa. Sehän on oikeasti parasta, että sä käyt jossain niinku asiakkaan tiloissa, näet silleen, että ”tossa toi valssaa nyt toi kone jotain juttua” tai ”tossa noi laivat menee” ja, ja tota, sitten sä niinku oikeasti olet inessä siinä projektissa, niin, niin se on vaan, sillä on arvo, joka voidaan perustella.

Timi: Mä halusin ottaa tämän kiertotien, koska sitten mä halusin tulla takaisin siihen, että Timo, sä olet ollut tekemässä projekteja pitkään ja sä olet tehnyt projekteja myös silleen, missä ei ole ehkä niinku noudatettu tämmöistä ajatusmallia, että devaaja on mukana alusta lähtien ja devaaja tekee tiivistä yhteistyötä, tai tiiviimmin yhteistyötä suunnittelijan kanssa. Mua kiinnostaa, että miten sä olet kokenut sen loppupään taas sitten tälleen niinku ehkä vanhalla tavalla tehtyihin projektiin versus sitten tähän malliin, missä sä oot mukana heti sieltä alusta ja pääset tavallaan ratkomaan ongelmia. Että onko siinä loppupäässä tapahtunut jonkunlaista… tai niin, miltä, miltä ne projektit näyttävät siinä loppupäässä?

Timo: Mun on niinku… mun on vähän vaikea… Mä koitan miettiä niinku projektia, jossa mulla olisi ollut sellainen terve etäisyys siihen projektiin tai jotain, niin mä en kyllä itse asiassa muista oikeastaan sellaista. Ehkä se niinku, miten mulla projektissa voi olla erona on se, että on, on… mä oon tehnyt aika paljon niinku, että meillä on ulkoinen suunnittelutoimisto esim. niin siinä ehkä sitten on voimakkaampi se vaihtuminen, että ”okei, nyt se on mun vastuulla”. Että, että tota, että ollaan nyt ulkoinen toimisto hoitanut juttunsa, nyt se on mun vastuulla. Ehkä se on… tota noin niin… Ehkä se on vähän osa mun skillsettiä myös, että niinkun auttaa, mä niinku viihdyn kaaoksessa tietyllä tavalla, että autan niinku järjestelee sitä ja on ne vähän semmoista ehkä proikkarin virkaakin tietyllä… ainakin oman työni ohella ja tällaista. Että, että tota, ja ehkä se kokemuksen myötä kanssa… mulla niinku… mulla hälytysvalot alkaa vilkkua, jos joku projekti on tulossa mulle silleen, että mä en tiedä siitä jotain. Niin mä alan niinku, vaikka ei olisi tolleen perinteisesti, että mua on myyty istumaan palavereissa, siis, mun mielestä mitä vähemmän palavereja, niin aina kun palaveri peruuntuu, niin enkeli saa siivet. Että, että siis se on ehkä niinku, ehkä se mukanaolo on mulle muutenkin erilaista, että se on ehkä semmoista henkistä mukanaoloa, että seuraa sitä keskus-, kyllä se kuitenkin pääset niihin Slack-kanaviin ja tälleen, että seuraa sitä, että, että mun on ehkä vähän vaikea jotenkin… öö… On, on tietenkin joitain projekteja, missä mulla on ollut hyvin etäinen. Mä oon tehnyt ehkä jonkun pienen osan vaan siitä. Ei ole ehkä ollut suoraa yhteyttä asiakkaaseen. Niin kyllä, kyllä se mun mielestä, niin kuin, tuo, mun mielestä se ainakin on tuntunut, ne on vähän tuntunut ontolta tietyllä tavalla. Vaikka se on niinku ollut ylpeä siitä työstä ja tehnyt mielestään hyvää työtä, mutta se on jotenkin tuntunut vähän ontolta.

Jaakko: Ja tuokin on siis pitkällä varmasti asennekysymys. Että siis silleen, vaikka ei olekaan mukana alusta alkaen, mutta sitten kun tulee projektiin mukaan, niin miten ottaa selvää, mitä ollaan tekemässä. Kysyy ja selvittää ja kaivaa ja tota tälleen.

Timi: Jep. Mua kiinnosti tämä niinku sen takia, että mä voisin kuvitella, että siellä loppupäässä tavallaan se testaaminen on niinku jotenkin mennyt helpommaksi, tulee vähemmän silleen ehkä bugeja ja korjattavia asioita ja vähemmän semmoista niinku, mitä asiakas, asiakaskaan raportoi, että niinku ”tämähän on eri tavalla, kuin me ollaan ajateltu.”

Timo: Joo, siis ehdottomasti. Joo, joo. Nyt sain kiinni, mitä hait. Tota, siis, öö… joo, mun mielestä on, mun mielestä on tosi ikävää, jos QA-vaiheessa tulee hirveä kasa niin kuin design-tason fiksejä. Että tavallaan mun mielestä QA-vaihe pitäisi olla niinku aitoihin bugi-, bugifikseihin ja sellaisen löytämiseen. Mutta valitettavan usein se on sitä, että se, jos, jos se kommunikaatio ei ole pelannut, niin kyllä se tota, kyllä se näkyy, näkyy siellä loppupäässä. Vähän, vähän asiaan liittyen, mutta tota, mun, mun on ehkä muutenkin semmoinen työtapa, että mä panikoidun alussa. Ja tän, tän takia tota, jotkut on sanonutkin, että ”Timo, sun kanssa niin smoothisti menee niinku se loppu, miten sä… Ei kukaan ei sekoile ja kaikki vaan luikahtaa liveksi.” Mutta se tosiasia on se, että ei, siis kyllä se niinku sama panikoinnin määrä on tapahtunut, mutta mä oon tehnyt sen siellä projektin… silloin kun mä kuulen, että mulle on tulossa tällainen projekti, niin mä panikoin siellä alussa. Mä selvitän kaikki asiat, mietin kaikki asiat, mitkä voi mennä pieleen ja tota… mä en nyt tiedä, mä en välttämättä suosittele kaikille. Mä en tiedä, onko se hirveän… että se ehkä myös terapeuten kanssa vähän puhua lisää asiasta, mutta tota, mutta se nyt on mun työskentelytapa, että mä en vaan siis niinkun, mä en vaan niinku pysty antamaan niiden asioiden luisua. Niin tota, ainakin nyt kun meilläkään nyt ei… meillä oli aika monta vuotta oli se QA-prosessi, oli niin kuin täysin devaajan vastuulla ja se oli vähän sellaista epävirallista. Nyt meillä on ihan dedikoidut QA-testerit ja muuta, niin kyllä, kyllä mä olen, mun mielestä, ainakin viimeisistä projekteista niin aika sutjakkaasti mennyt se QA-vaihe, just kun siellä on niin kun kommunikoitu ajoissa. Ei, ehkä sekin on semmoinen, öö… siitä palavereihin osallistumisesta, niin ehkä sekin on semmoinen, joka kokemus tuo sitten sellaista tiettyä itsevarmuutta ja muuta, mutta että siellä, siellä ei, eihän missään palavereissa kannata olla ketään, joka vaan istuu siellä tuppisuuna. Että tota, että mä niinku nostan niitä asioita pöydälle ajoissa, huomauttelen niistä ja… Meillä oli just tosi hyvä onnistunut projekti tota, ulkoisen design-toimiston kanssa ja se, se jotenkin, niinku siinä varsinkin olisi tosi helppoa vetäytyä sellaiseen, että ”ei puutu nyt heidän työhön, kun me ollaan vähän niinku alihankkijana tässä”. Mutta siellä mä olen niinku… ja sen kanssa, tosi hyvin sujui, sujui yhteistyö ulkoisen toimiston designerin kanssa ja saatiin tosi hyvä lopputulos aikaan ja, ja tota, niin.

Timi: Kyllä, uskon. Mutta puhu… puhuessa näistä niinku työtavoista ja näistä, niin mä myös olen kuullut huhua, että sä et ehkä tykkää DRY-lähestymistavasta, mikä liittyy taas sitten vahvasti työtapoihin.

Timo: Tää, ja tämäkin on mulle siis… no, täällä nyt saadaan aitoa dev- [naurua] devi-konsaa tässä nyt. Mutta siis tämä, joo, tämä on mullekin aika uusi löydös öö, itsestäni ja mä, mä en, mä en usko, että mä tulen koskaan saamaan tätä ominaisuutta pois itsestäni. Öö, ja mä tarvin koko ajan muiden rohkaisua, että mä pysyn tässä. Mutta mun mielestä joo, siis, ja tämä ei ole nyt enää onneksi niin kontroversiaali mielipide, että tätä on niinku, joita YouTube-koodarivaikuttajatkin on alkanut nyt hokea tätä mantraa, että tota, DRY eli Don’t Repeat Yourself on yksi huonoimmista koodifilosofioista, mitä on. Ja siis se ongelma, mikä siinä on, se on, se on niinku ensimmäinen asia, joka meille opetetaan. Ihan, ihan kun sä meet kattoo ekoja tutoriaaleja, niin sä kirjoitat ensin, ”nyt tässä console.log(’Hello World’)”. ”Nyt jos et halua toistaa itseäsi, niin tee tämmöinen funktio.” Just näin. ”Että hello.” Ja sitten sä laitat sinne funktion sisään sen ja sitten sä alat käyttää sitä funktiota. Ja tota, ja nyt kun katsoo uraa taaksepäin, niin kyllä varmaan siis niinku 80-90% devausajasta on ihan vaan sitä, että tekee tyhmiä abstraktioita tai sitten purkaa itsensä tai muiden tekemiä tyhmiä abstraktioita. Että tota, itse just YouTubesta joku päivä kuulin paremman uuden, tota noin niin, tällaisen lyhenteen kuin RUG, eli Repeat Until Good. Niin sitä mä olen niinku koittanut nyt. Ja mä olen siis huomannut, että tämän, mäkin olen tätä nyt täällä julistanut tätä ilosanomaa, niin se on kyllä, se ei mene helposti devailta alas. Että mä olen niinku, mä olen huomannut sen, että mä niinku, mä sanon, että ”hei, kopioi, tee sitä vaan kopio.” ”Älä yritä nyt tunkkaa sitä nyt jo aivan liian monimutkaista abstraktiota. Tee kopio.” Niin se jotenkin, mieli ei vaan suostu. ”Ei voi tehdä kopiota, kun sitten minä toistan itseäni.”

Timi: Koodipohja paisuu ja…

Timo: Kaksi funktiota vierekkäin täällä ja, ja tota… ja mun mielestä se perusajatus siinä on se, että me ihmiset ollaan… mun mielestä itse asiassa AI on jopa aika hyvä tässä, koska se ei ole niin niinku… mä olen huomannut, että kun mä pyydän sitä abstraktoimaan, mutta mun pitää niinku erikseen pyytää sitä abstraktoimaan. Ja sitten se abstraktoi ihan suht fiksusti. Niin tota, me ihmiset ollaan tosi huonoja abstraktoimaan. Ja ehkä niinku tällaisena aasinsiltana tästä, mistä aloitettiin keskustelu, niin se, se miksi me ollaan huonoja abstraktoimaan, on se, että me ei tunneta niitä bisnes- ja design-ongelmia, vaan me ratkaistaan sitä koodiongelmaa. Että tota, mä koitan niinku tehdä aina silleen, että mä en ainakaan missään nimessä aloita abstraktiolla. Tai tästäkin mua pitää just joku päivä joku muistutti mua, että ”Timo, älä, älä aloita abstraktiolla.” Että tota, tee ensin, mä teen yleensä toisen kerran saman ja sitten ehkä kun mä teen kolmannen tai neljännen kerran saman asian, niin sitten mä abstraktoin sen. Sitten mä, koska sitten mä tiedän tasan tarkkaan, mitkä näistä kolmesta asioista on se, josta mä haluan tehdä sen abstraktion ja mistä en. Ja tota, ja ehkä tähän, mä olen… tähän miksi se on niinku meille niin vaikeata meille devaajille, niin on kanssa se, että meille on myyty semmoinen fantasia niin kun speksien muutoksesta, joka ei pidä paikkaansa. Ja mä olen vaan siis nyt todennut sen, että mä en ole urallani koskaan törmännyt tilanteeseen, missä multa pyydettäisiin, että ”hei, voitko, voitko vaihtaa koko sivuston kaikkien karusellien välistyksen viidestä pikselistä kymmeneen pikseliin?” ”Oi, minulla on juuri tämä abstraktio täällä! Vaihdan tätä yhtä paikkaa ja vrum, vau, se vaihtuu kaikkialla.” Mutta se on se, mihin me aina pyritään. Se on se meidän niinku fantasia. Mutta se ei ole se, mitä tapahtuu. Ja varsinkin kun meillä tässä projektit on kasvanut, niin mitä isommaksi se koodi, code base, mikä se nyt onkaan suomeksi…

Jaakko: Koodikanta, ehkä.

Timo: Koodikanta. Mitä isommaksi se koodikanta muuttuu, niin sitä vähemmän sua murehdittaa se, että ”miten mä saan vaihdettua kaikki nämä synkronoidusti kerrallaan?” Ja sitä suuremmaksi murheeksi muuttuu se, että ”miten mä saan vaihdettua vaan tätä yhtä paikkaa ilman, että mä rikon 20 muuta paikkaa ympäri appiä tai saittia, josta mä en tiennyt edes, että tämä vaikuttaa siihen.” Ja se on niinku se mun ykköshuolenaihe nykyään. Se ei ole se, että mä saisin tälleen maagisesti vrum, päivitettyä kaiken, vaan mä haluan rikkoa mahdollisimman vähän asioita. Mielellään en mitään.

Jaakko: Kyllä niinku pahimpia koodiasioita, mitä itse on elämässä tullut vastaan, on semmoset, että joku epätoivoisesti yrittää abstraktoida, mutta ei niinku, osaaminen ei vaan riitä. Siis abstraktointi on lopulta aika vaikeata, koska sun pitää oikeasti ymmärtää laaja kokonaisuus ja oikeasti poimia sieltä juttuja. Ja sitten semmoisia tapauksia, että joku on lähtenyt niinku projektin alussa abstraktoimaan jotain silleen ”get post” -funktio, joka sisältää ”get post” -tyyppisiä juttuja. Tai sitten tehty jotain semmoisia rakenteita, joille ei ole mitään hyötyä, mutta sulla on vaan niinku neljä classia ja kahdeksan filea ja, ja sitten silleen toi lopulta ei tee vielä niinku mitään.

Timi: Mä luulen, että moni koodaaja kanssa niinku on semmoisessa mindsetissä, että jahdataan sitä, että otetaan kaikki keissit huomioon, mitä koskaan tulevaisuudessa voi tulla vastaan. Ja sitten ollaan silleen, että ”no, eipäs näitä käyttötapauksia nyt tullutkaan, kun se yksi tai kaksi, mutta hei, meillä on täällä valmiina koodi niin miten kymmeneen.”

Jaakko: Koska tahansa.

Timi: Niin.

Timo: Ja mun mielestä oleellisinta on se… oleellisinta on tiedostaa se, että sinä et tiedä, mitä ne speksimuutokset tulevat olemaan. Se, se edistää kanssa sitä speksien henkistä kestävy… muutoksen kestämistä, että sä et yritä arvata, mitä ne tulee olemaan. Ja tota, kun sen ymmärtää, niin, mä en osaa vielä ihan niinku verbalisoida, mitä se on, mitä minä teen nykyään, mutta tota, kyllä mun suhtautuminen koodaamiseen, koodaamiseen on muuttunut. Ja mulla on jotain tekniikoita, mitä mä käytän, jolla mä jätän vähän niinku ovia auki itselleni tulevaisuuden speksimuutoksia varten, mitä mä en tiedä, mitä ne tulevat olemaan.

Timi: Aika tyhjentävästi sanottu.

Jaakko: Tää on, mutta tää on jotenkin ihan sikatärkeä aihe, koska just, niinku sanoit aluksi, että toi on niin hakattu meille silleen siitä ensimmäisestä tutoriaalista lähtien, että ”tätä on hyvä koodaaminen”.

Timo: Mulla on, mulla on hyvä käytännön esimerkki. Kun itse paljon tehdään meillä appeja ja muutenkin Reactin kanssa pyörin, niin niinku TypeScript-maailmasta. Niin mun mielestä hyvä, tää niinku, hyvä flagi sille, että nyt on abstraktoitu liikaa, on se, että jos mä näen React-komponentin, jossa on pelkkiä valinnaisia propsia. Se on varmaan alkanut TypeScript-komponenttina, jossa on pelkästään pakollisia propsia ja silloin se TypeScript toimii just niin kuin pitää. Että sä voit vaan alkaa kirjoittaa sitä komponenttia, ja se näet siinä, ”mitä propsia tälle pitää lisätä, että se toimii?” Mutta sitten kun siellä on kolme, neljä eri asiaa, mitä se yksi komponentti-raukka tekee, niin yhtäkkiä ne onkin kaikki muutettu valinnaisiksi. Sitten sulla ei ole mitään hajua, ”mitä, mitä mä nyt käytän?” Sun pitää mennä lukemaan sitä komponentin lähdekoodia, että ”okei, jos mä syötän noi, niin sitten mä voin käyttää myös tuota toista propsia, joka on myös valinnainen, mutta se toimii vaan, jos mä olen syöttänyt tähän jotain” ja sitten niinku ja näin. Ja se niinku, voisi kuvitella, että se tapahtuu monessa muussakin koodikielessä, vaikka PHP:lla, että jos sulla alkaa olemaan niitä argumentteja…

Jaakko: Niin, pitkiä, pitkiä argumenttilistoja. Kyllä se on semmoinen… jos sä teet linkkuveitsifunktioita, niin sitten sä teet jotain väärää. Älä, älä tee.

Timo: Yleensä sä, sä kuvittelet tekeväsi nyt jollekin jotain hyvää abstraktiota, mutta yleensä sä vaan niinku asetat pommin.

Timi: Just näin. Pommeista puheen ollen… [naurua] Me ollaan nähty aika paljon pommeja. Ja ja just sitä, niinku Timo sanoit, että asiakkaat tulee meille myös silleen, että niillä on joku juttu, joka ei ehkä ihan toimi niinkun kauhean odotetusti tai hyvin tai joku, joku kuitenkin hiertää siinä hommassa. Niin miten sitä lähdetään tai miten semmoista niinku voisi lähestyä, että meillä on joku vanha koodipohja, mihin on rakennettu näitä pommeja, abstraktiotasoja ja ihan niinku todella järkyttävää tavallaan semmoista kokonaisuutta ja sitten sitä pitäisi lähteä jotenkin jatkokehittämään tai sen päälle niinku rakentamaan ja luomaan uutta.

Timo: Niin, se on, mun mielestä niinkun koskaan koodia ei kannata niinkun heittää, heittää pois vaan sen takia, että se ei nyt itseään miellytä. Jos se, jos se toimii, se hoitaa asiansa, niin siellä, siellä on niinku jotain. On, on olemassa tietenkin siedämättömiä tilanteita. Joskus on niinku revästävä se laastari. Mutta tota, mutta ehkä sekin on semmoinen, mihin devaaja voi, öö, harjoitella sietokykyä sille. Että vaikka se ei nyt miellytä itseään, sieltä voi oppia jotain ehkä. Se voi olla ihan mielenkiintoinen harjoite, että ”miten minä teen tästä paremman”, käyttää tätä niin sanottua boy scout -menetelmää, partiopoika-menetelmää. Että, että niinkun koittaa jättää joka komponentin, mihin koskee, niin vähän parempaan tilaan kuin mistä sen löysi. Ei tarvitse yrittää korjata kaikkea kerralla, vaan siivoaa pikkuhiljaa asioita sieltä. Ja tota, mulla on, mulla on muutamassa projektissa ollut niin onnekas tilanne, että mä olen saanut niinku myytyä asiakkaalle, että ”saanko mä korjata tämän oman sekamelskani täältä?” Ja sehän on siis tosi, se on tosi nautinnollista, kun pääsee, pääsee korjaamaan, mutta se on tosi harvinaista kyllä. Että siis se niinku pieniä iteratiivisia muutoksia, niin sillä sitä lähdetään viemään parempaan suuntaan.

Timi: Joo. Ehkä tähän on hyvä päättää. Jätetään me maailma vähän parempaan paikkaan, kun se oli tullessa, toivottavasti tämän keskustelun myötä. Tosi paljon kiitos Timo, että olit tässä mukana. Todella hyvin pointteja, hyvä keskustelu. Kiitos Jaakko. Kiitos myös sulle, joka olet kuuntelemassa siellä tai katsomassa. Heitä kommenttia, jos tämä herätti jotain ajatuksia, mielipiteitä. Meidät tavoittaa WP-Suomen Slackistä. Voi huudella LinkedInissä tai sitten voi laittaa ihan perinteistä sähköpostia. Tosi mielellään kuultaisi, jos, jos jotain ajatuksia heräsi.

Jaakko: Myös postikortteja voi lähettää.

Timi: Myös postikortteja voi lähettää, kyllä. Mutta lähettäkää niitä vasta ihan pikku napsun verran päästä, koska tämä on myös meidän viimeinen kerta tässä studiossa. Kohta ollaan, ollaan uudella toimistolla, uudessa studiossa vetämässä näitä. Ja uusista jutuista puheen ollen myös, niin nämä kaikki jaksot löytyy nykyään myös Spotifysta pelkkänä, pelkkänä audiona. Eli käykääpä kuikkamassa Spotifyta, jos, jos vaikka lenkkipolulla juostessa tai pyöräillessä haluatte, haluatte kuunnella vähän koodijuttuja meitä puhumassa. Mutta hei, vielä kerran kummallekin kiitos paljon tästä ja me nähdään seuraavassa jaksossa.

Jaakko: Kiitos.

Timo: Kiitos.

Haku