Blogi 17.4.2013

Ohjelmistoala ohjaa erikoistumaan

Gofore

Kiva kun löysit tämän artikkelin! Se sisältää varmasti hyvää tietoa, mutta pidäthän mielessä, että se on kirjoitettu 11 vuotta sitten.

Nopea tapa erottaa laadukas ravintola keskinkertaisesta on verrata keskenään ravintoloiden ruokalistoja. Hyvässä ravintolassa on vain muutama hyvin suunniteltu ateriakokonaisuus, kun keskinkertaisessa ravintolan ruokalistassa voi löytyä useita kymmeniä ruokavaihtoehtoja. Ohjelmistokehittäjälle toimivat samat lainalaisuudet: erikoistu päästäksesi huipulle.
Teknologioiden kehitys
Teknologioiden nopea kehittyminen on ehkä suurin syy erikoistumistarpeelle. Vielä muutamia vuosia sitten Java-kehittäjälle riitti osaaminen HTML-merkintäkielestä sekä tietämys muutamista kehyksistä ja suunnittelumalleista. Nykypäivänä ohjelmistoala on paljon pirstaloituneempi. Erilaisia ohjelmistokieliä, kehyksiä ja arkkitehtuurimalleja kehitetään kiihtyvällä tahdilla. Hyvänä esimerkkinä Java source -sivusto, joka listaa sivullaan vajaat seitsemänkymmentä käytössä olevaa Java-pohjaista web-kehystä.
Teknologioiden kehittyminen on ollut erityisen nopeaa esityskerroksella. Työpöytäsovellusten ja aiemman sukupolven selainsovellusten korvautuessa moderneilla verkkopalveluillakäyttöliittymien vaatimustaso on noussut. Esimerkiksi Rich Internet Techologies (RIA) ja responsiivisyys lisäävät esityskerroksen älyä ja kompleksisuutta. JavaScript-kehykset ja -kirjastot sekä HTML5 vastaavat osaltaan kasvaviin vaatimuksiin, mutta vaativat myös ohjelmistokehittäjältä aiempaa suurempaa osaamista ja erikoistumista vain selainpuolen teknologioihin.
Myös arkkitehtuurisuunnittelu on murroksessa. Monoliittiset järjestelmät ovat korvautumassa palvelupohjaisilla arkkitehtuurilla, jotka vaativat kehittäjältä sekä toimintaprosessien että teknologioiden tuntemista. Toteutettaville järjestelmille asetetaan myös entistä korkeampia suorituskyky- ja skaalautumisvaatimuksia. Lisäksi ymmärrys esimerkiksi NoSQL-tietokannoista, funktionaalisesta ohjelmoinnista ja kehitysympäristön virtualisoinnin pystyttämisestä poikkeaa perinteisestä ohjelmistokehittäjän työnkuvasta. Kehittäjän omaksuessa näitä taitoja, ei aika välttämättä riitä kehittymään hyväksi käyttöliittymien suunnittelijaksi.
Asiakkaan vaatimustason kasvu
Toinen syy erikoistumistarpeelle on asiakkaiden kasvanut vaatimustaso. Aiemmin ohjelmistokehittäjä hurmasi asiakkaan esittelemällä lomakepohjaisen verkkosovelluksen, joka toimi suunnilleen määrittelyjen mukaisesti. Verkkopalveluiden arkipäiväistyessä asiakas osaa vaatia enemmän. Sovelluksen pitää tuntua ammattilaisten tekemältä, niin käyttökokemukseltaan että ulkoasultaan. Asiakas osaa edellyttää esimerkiksi pieniä vasteaikoja, avoimen lähdekoodin palveluja, laajaa selain- ja päätelaitetukea, automatisoitua CI-ympäristöä ja laadukasta dokumentaatiota.
Ohjelmistoalan luonne on myös muuttumassa. Nykypäivänä ollaan siirtymässä kokonaistoimituksista konsultoivaan IT-työhön. Tämä tarkoittaa luopumista massiivista määrittelyprojekteista ja kiinteähintaisista sopimuksista. Tuntipohjainen hinnoittelu yhdistettynä ketterin menetelmiin siirtää projektien painopistettä entistä nopeampiin kehityssykleihin. Projektin aikana ei kehittäjällä välttämättä ole viikkoja aikaa tutustua jokaiseen teknologiaan ja paradigmaan, vaan asiakas olettaa saavansa käyttöön asiantuntemusta projektin jokaisena tuntina. Tämä ohjaa kehittäjiä suuntautumaan samantyyppisten tehtävien toteuttajaksi.
Erikoistumisen riskit
Erikoistumisen riskit ovat ilmeisiä. Asiantuntijaorganisaatiossa erikoistuminen vaikeuttaa projektitiimien muodostamista ja töiden allokointia, joilla on vahva korrelaatio käyttöasteen kanssa. Pahimmassa tapauksessa organisaatio voi luopua mielenkiintoisesta tarjouspyynnöstä, koska kaikki vapaat henkilöresurssit ovat osaamisprofiililtaan vääränlaisia.
Kehittäjien erikoistuminen vaikuttaa myös yksittäiseen projektiin. Tällöin jokaisen tehtävän voi toteuttaa aina vain osa tiimiläisistä. Tämä aiheuttaa projektiin pullonkauloja ja töiden kasautumista. Tiimijäsenten vaihtuvuus on myös projektissa kriittisempää, koska tiimiläiset tuntevat sovelluksen aina vain tietyiltä osin.
Yksilötasolla profiloitumisessa vain tietyn teknologian osaajaksi on vaaransa. Teknologian vanhentuessa kehittäjän ammattitaidolle ei välttämättä ole tarvetta ilman uudelleenkoulutusta. Oman työuran kannalta oikean erikoistumistason löytäminen onkin kriittistä.
Lähteet / luettavaa
http://java-source.net/open-source/web-frameworks
http://www.graphicdesignblender.com/specialization-a-designers-key-to-success-in-the-future
http://dilbert.com/strips/comic/1997-11-04/
 

Takaisin ylös