“Full stack webbidevaaja” on epäterveellinen fantasia

Perttu Tolvanen

Evermaden teknologiajohtaja Jaakko Alajoki avautui LinkedInissä full stack -devaajilta vaadittavasta osaamisesta modernissa web-kehityksessä. Viime vuosinahan full stack -vaatimuksesta on tullut todella yleinen alan rekryilmoittelussa, ja etenkin ostajapuolelle haetaan paljon tällaisia tekijöitä kehittämään erilaisia web-sovelluksia.

Myös monet pienet toimistot, esimerkiksi mainostoimistot, hakevat mielellään full stack -osaajia, koska ajattelevat mieluummin maksavansa vähän enemmän palkkaa yhdelle tekijälle kuin joutuvansa palkkaamaan useamman eri profiilin kehittäjän. Moni tällainen rekryilmoitus on kuitenkin lähes hupaisa, kun yhdeltä ihmiseltä saatetaan vaatia samantyyppistä kokemusta ja teknologiakirjoa kuin kokonaiselta tiimiltä.

Vierityspalkinkin rekrypalstalla näkee tällaisia todella laveita työpaikkailmoituksia säännöllisesti. Joskus näitä jopa otsikoidaan jollain tapaa ”tech lead” -tyyppisesti, tai suoraan jonkinlaisella johtajatittelillä, kun ostajapuolella yritetään houkutella superosaajia töihin hienolla tittelillä ja kovalla palkalla – vaikka duuni olisi käytännössä koodata iso sovellus yksinään kasaan.

Ehkä tätä rekrytoijien haaveilua voi hieman ymmärtääkin. Web-ala kehittyy vauhdilla, koko ajan tulee paljon erilaisia saas-sovelluksia ja frameworkkeja, ja isot pilvialustat laajenevat jatkuvasti. Jos ei tunne käytännön työtä kovin hyvin, voi ajatella, että web-teknologia menee helpompaan ja yksinkertaisempaan suuntaan. Näin ei kuitenkaan käytännössä ole, etenkin jos puhutaan vähänkin isommista ja monimutkaisemmista web-palveluista.

Toki jos tilannetta vertaa riittävästi taaksepäin, vaikkapa 15-20 vuoden takaiseen maailmaan, on tietysti valtavasti asioita mennyt helpompaan suuntaan, ja nykyisin on mahdollista rakentaa asioita tehokkaasti ilman että ymmärtää syvällisesti jokaista osa-aluetta. Tässä keskustelussa on kuitenkin näkökulmana ollut sellainen tilanne, jossa tekijältä odotetaan nimenomaan käytännön tason ymmärrystä ja kykyä toteuttaa ja muokata asioita laadukkaasti kaikissa ohjelmistokehityksen alueissa.

Vierityspalkki pyysi Jaakkoa avaamaan hieman ajatteluaan ja kokemuksiaan tämän hetken full stack -hullutuksesta.

1) Miksi full stack -devaaja ei ole todellisuudessa mahdollinen/järkevä vaatimus?

Mun mielestä ei ole realistista odottaa nykypäivänä, että yksi ihminen voisi osata syvällisesti sekä backend- että frontend-teknogiat. Eri osa-alueet syvenee ja lavenee jatkuvasti. Lisäksi eri frameworkit ja työkalut kehittyy jatkuvasti ja vaatii paljon työtä pysyä kärryillä jatkuvasti kaikilla osa-alueilla.

Toki on ihmisiä, jotka siihen pystyy ja jotka on oikeasti kaikki alueet hallitsevia full stack -osaajia, mutta kyllä ne on aika harvassa.

Esimerkiksi hyvältä fronttidevaajalta vaaditaan nykypäivänä paljon. Ihan perustason HTML ja CSS -osaamista. Ja Javascript-osaamista, joka nykyään tarkoittaa myös enenevissä määrin Reactia. Rajapinnoista pitää olla ymmärrystä. Pitää hallita saavutettavuusasiat, selainten suorituskykyvaatimukset ja hakukoneiden vaatimukset. Suunnitteluohjelmia kuten Figmaa pitää osata käyttää. Leiskat ei ole koskaan lopullisia, joten visuaalisesta silmästä on iloa. Käytettävyyttäkin pitää ymmärtää, koska suunnitteluratkaisuja pitää joskus tehdä ihan itse. Animointitaidoistakin on hyötyä. Fronttikoodin pitää toimia myös toimia erikokoisilla näytöillä, eri selaimilla ja eri laitteilla.

Pelkästään hyvässä frontendissä on niin paljon eri osa-alueita, että jo sen kaiken hallitseminen yksinään vaatii laajaa ammattitaitoa.

Mun mielestä full stack -devaaja olisi järkevä vaatimus, jos se ymmärretään generalistina. Eli sellaisena ihmisenä, joka ymmärtää lainalaisuuden bäkistä fronttiin ja osaa keskustella erilaisten ammattilaisten kanssa ja kiinnittää huomioita oikeisiin asioihin. Mutta sellaiset yksisarviset on aika harvassa, jotka pistää verkkopalvelun kaikki osa-alueet laadukkaasti yksin kasaan.

2) Mitä full stack -devaajista haaveilemisen sijasta pitäisi toimistojen tai asiakkaiden hakea, jos ajatuksena on vahvistaa omaa osaamista web-kehityksessä? Montako eri profiilia pitää rekrytoida, jos haluaa saada oman tekkitiimin kasaan?

Mun mielestä full stack -osaajia voi hakea sellaisiin rooleihin, joissa heiltä ei edellytetä kaiken koodaamista itse. Full stack -osaamisesta on hyötyä esimerkiksi teknisessä projektinhallinnassa tai arkkitehtuurisuunittelussa. Muutoin mun mielestä tarvitaan erikseen backend- ja frontend-ihmisiä. Lisäksi ylläpitoinfrasta vastaavat devops-ihmiset on sitten vielä erikseen. Ja projektien vetäjät, joilla teknisissä hankkeissa soisi olevan teknistä taustaa.

3) Eikö pilvisiirtymän ja saas-kehityksen pitäisi helpottaa full stack -tekijöiden saatavuutta, kun kaikkea ei enää tarvitse itse tehdä? Vai eikö tämä ole totta?

Riippuu tosi paljon toki palveluista. Integraatiot ja taustalogiikat pitää tehdä riippumatta siitä, että onko käytössä SaaS-palvelu vai ei. Otetaan esimerkiksi HubSpot, joka tarjoaa “backendin valmiina”. Jos HubSpottiin halutaan integroida sisältöjä vaikkapa tuotehallinnasta, tarvitaan:

– Ymmärrys HubSpotin rajapinnoista ja HubDB:stä
– Jokin ulkopuolinen palvelu, joka siirtää dataa (backend)
– Jokin ympäristö, missä koodia ajetaan
– Monitorointia, logitusta, manuaalisia integraatiotyökaluja

Eli lopulta tarvitaan kuitenkin backend-osaamista.

Sitten haluisin vielä nostaa esille erilaisten pilviympäristöjen nousun. Toki “palvelintyypit” on aina olleet oma lukunsa, mutta tuolla saralla on tapahtunut paljon viime vuosina. Azuren, Google Cloudin tai Amazonin kattava hallitseminen on nykyään ihan oma hommansa.

Lisää kommentteja ja keskustelua löytyy runsaasti Jaakon aloittamasta LinkedIn-ketjusta.

Web-alan kehitys ei siis näytä vieläkään menevän yksinkertaisempaan suuntaan, vaan moni trendi toimii jopa päinvastoin. Esimerkiksi isojen pilvialustojen koko ajan laajentuva tarjonta vaatii niihin erikoistuneita osaajia, eikä näiden käyttö välttämättä vähennä yksittäiseltä ”superdevaajalta” vaadittavaa osaamista. Kenties joitain asioita voi saada aikaiseksi nykyisin vähemmällä ymmärryksellä, mutta se ei ole sama asia kuin ymmärtää eri osa-alueiden toimintaa syvällisesti.

Saas-palveluiden kehitys tuottaa myös yllättäviä kuiluja tai seiniä, kun jollakin saas-työkalulla, vaikkapa Hubspotilla, voi saada yksinkertaisen sivuston lomakkeineen aikaiseksi hyvinkin nopeasti ja kohtuullisella teknisellä osaamisella, mutta tuon saman sivuston laajentaminen Jaakon mainitsemalla tuotetieto-integraatiolla saattaa olla viikkojen urakka, jonka onnistunut toteutus vaatii todella osaavan ja kokeneen ohjelmistokehittäjän.

Tällaisten asioiden hahmottaminen ennakkoon onkin yhä kriittisempi taito, ja tähän tarvitaan laajaa ymmärrystä eri osa-alueista.

Full stack -osaaminen on siis todella tarpeellinen asia, mutta sitä ei ehkä kannata ajatella yhden hengen toteutustiiminä, vaan enemmänkin kokemuspohjana, joka auttaa arkkitehtuurisuunnittelussa, teknisessä projektinhallinnassa ja ylipäätään järkevien kokonaisuuksien suunnittelussa. Varsinaiseen tekniseen toteutukseen tarvitsemme edelleen tiimin, jossa on useita eri alueiden osaajia.

Muiden osa-alueiden ymmärtämisestä ei ole myöskään ohjelmistokehityksessä varsinaisesti haittaa, ja siksi alalla puhutaan esimerkiksi T-tyyppisistä osaajaprofiileista, joilla on osaamista jostain alueesta syvällisesti, mutta myös poikittaisymmärrystä muista osa-alueista. Tämä on kuitenkin varsin eri asia kuin full stack -haaveilu, koska tässä ajatuksessa tunnustetaan se, että muista osa-alueista riittää yleistasoisempi ymmärrys, koska tiimissä tulee olemaan muitakin osaajia.

Full stack -haaveilu ei välttämättä ole myöskään alan kannalta terveellinen kehityskulku. IT-ala on niin valtava kokonaisuus, että edes keskustelu tällaisten superdevaajien realistisuudesta tuntuu oudolta. Yleensähän näissä keskusteluissa esimerkiksi unohdetaan lähes täysin se todellisuus, että esimerkiksi backend-maailma jakautuu hyvin erilaisiin ekosysteemeihin. Suomessa isoja sektoreita ovat Microsoftin .Net-maailma, PHP-maailma ja Java-kehittämisen maailma. Nykyisin myös Javascript-maailma on varsin oma kokonaisuutensa. Nämä ovat aivan omia ekosysteemeitään, joiden välillä ei hypi uskottavasti edes se kaikkein kovin full stack -tyyppi. Täten paraskin full stack -osaaja on vain tietyn alueen erikoisosaaja, jolla on hyvin tietynlainen työkalupakki käytössään.

Alalla myös puhutaan nykyisin yhä enemmän junioreiden vaikeuksista päästä sisään alalle, ja on vaikea nähdä miten tämä rekrytoijien ja kilpailuttajien full stack -fantasiointi edistäisi junioreiden asiaa. Työnantajien olisi järkevämpää pyrkiä kasaamaan monimuotoisia tiimejä, joissa on yhtälailla kokeneita yleisosaajia, erikoistuneita osaajia ja junioreita, eikä aina yritettäisi palkata sitä mahdollisimman monipuolista gurua, joka voisi tehdä sen kaiken yksin.

Full stack -ymmärrys on yhä tärkeämpää, mutta koko ketjun laadukas käytännön osaaminen ei ehkä ole mikään erityisen terveellinen tavoite. Alan kannattaisi kannustaa enemmän eri osa-alueiden syväosaamiseen, ja tukea myös junioreiden urapolkuja ilman, että luodaan full stack -ihannoinnilla epärealistisia odotuksia.

PS. Tilaa Vierityspalkin kerran kuukaudessa ilmestyvä uutiskirje, joka koostaa artikkelit, linkkivinkit, työpaikat ja julkaisut (uutiskirjeellä on jo yli 900 tilaajaa).

Aiemmin samasta aiheesta kirjoitettua:

  1. Marjut Pietarlehto says:

    Ehkä seuraavaksi katsaus siihen, miten nykyisen palvelumuotoilija-tittelin alle voi niinikään kasautua koko joukko odotuksia, joita ennen hoiti ainakin kolme eri roolia..?

  2. Perttu Tolvanen says:

    Hyvä idea, Marjut. Kieltämättä tällainen yksisarvisista haaveilu on juuri nyt trendissä myös suunnittelupuolella.

    Valtionhallinnon puitesopimuskisoissa on ilman muuta myös tuo ”tarjotkaa palvelumuotoilijoita, joilla on vähintään 10 vuotta kokemusta pamuttamisesta ja jotka pystyvät myös hoitamaan palveluiden käytännönläheisen konseptoinnin, sisältösuunnittelun, käyttöliittymäsuunnittelun, vaatimusmäärittelyn, teknologiakonsultoinnin, visuaalisen designin, hankesuunnittelun ja tarvittaessa jatkamaan toteutusvaiheessa projektipäällikkönä” -ilmiö.

    Ja tän seurauksena kyllä on myös se ilmiö, jossa myyntimiehet valehtelee korvat punaisena niistä ihmisistä tarjouksissa, jotta pääsisivät mukaan puittareihin. Tai näin ainakin oletan, koska silti ne hulluimmatkin puitesopimuskisat tuntuvat aina löytävän joitakin voittajia, vaikka itse ei niihin kehtaa tarjotakaan.

    Et ilman muuta alalla on myös kova kysyntä sellaisille pamu+design+tiesmitä-yksisarvisille, joiden CV:llä voi väittää yhden henkilön hoitavan koko suunnitteluprosessin, speksaavan ja designaavankin kaiken suoraan koodareille valmiiksi.

  3. Matti Uusitalo says:

    Oman kokemukseni mukaan full-stack-developer on hakemuksissa käytännössä back-end-developer. Eli kun kysyy mitä oikeasti halutaan niin back osaaminen on etusijalla ja jos osaat paiskata kasaan huonosti toimivan UI:n niin se on se loppu. Sitten ihmetellään että mistä näitä ei niin loogisia palveluita pukkaa.