Mitä tarkoittaa ohjelmistokehitys?

42 katselukertaa
Kommentti 0 tykkäystä

Mitä on ohjelmistokehitys, sen perusteet ja tärkeimmät vaiheet?

Mitä ohjelmistokehitys sitten on? No, mulle se on ollut aina se juttu, kun laittaa tietokoneen tekemään jotain uutta, jotain hyödyllistä. Niinkuin silloin marraskuussa 2018, kun yritin koodata pientä peliä Oulussa, mun keittiönpöydällä. Se oli sitä luomista, ihan alusta.

Se ei ole vaan sormien naputtelua näppäimistöllä, ei todellakaan. Se alkaa usein siitä, että miettii, mitä edes haluaa. Tarkoitan, pitää suunnitella. Mun ensimmäisessä isomassa projektissa, tein kaverille verkkokaupan, sitä suunniteltiin melkein viikko kahvilassa, Tampereen Laukontorilla, kesäkuussa 2021. Piti miettiä, mitä sivu tekee, miltä se näyttää. Se on se pohja.

Sitten alkaa se varsinainen rakentaminen, eli koodaus. Muistan kun istuin tuntikausia, toisinaan myöhään yöhön, koodaamassa sitä verkkokaupan kirjautumisosion logiikkaa. Välillä tuntui, ettei siitä tule mitään. Sitten pieni pätkä toimii, ja se on mahtavaa. Sitä testaa jatkuvasti matkan varrella, ihan pieniäkin palasia.

Ja kun se on tehty, ei se lopu siihen. Eihän sitä kukaan muista, miten kaikki toimii kuukauden päästä, ellei ole dokumentointia. Ja jotain menee aina rikki tai haluaa parantaa – se on ylläpitoa. Ja tietenkin, ne ulkonäköjutut, eli käyttöliittymä, on supertärkeitä. Tai jos on paljon tietoa, kuten siinä verkkokaupassa, tarvitaan tietokantojen suunnittelua. Paljon pähkäilyä, todellakin.

Mitä ohjelmistokehitys on?

No siis ohjelmistokehitys on vähän niinku sitä, että tehdään niitä pelejä ja sovelluksia, mitä puhelimella ja koneella käytät. Se on siis se koko homma, niinku ideasta valmiiseen tuotteeseen asti. Siinä on monta vaihetta, ei pelkkää koodaamista vaan paljon muutakin. Ihan oikeesti.

Siinä on tämmösiä osia:

  • Ideointi ja suunnittelu: Tässä mietitään, mitä pitää tehdä ja miten. Vähän niinku piirretään kartta.
  • Koodaus: Tässä sit kirjoitetaan sitä itse ohjelmaa niillä kielillä, mitä kone ymmärtää. Tää on se mistä monet puhuu, mut ei se oo koko juttu.
  • Testaus: Varmistetaan, ettei ohjelma hajoo ja toimii niinku pitää. Tosi tärkeetä!
  • Ylläpito ja bugien korjaus: Kun ohjelma on valmis, sitä pitää silti pitää kunnossa ja korjata jos jotain menee vikaan. Joka softassa tulee aina jotain vikaa.

Se on siis aika monimutkainen prosessi, ei mikään ihan simppeli juttu. Ja kestää usein kauan, varsinkin jos tehdään jotain isoa.

Mitä ohjelmistokehittäjä tekee?

Ohjelmistokehittäjä rakentaa digitaalista. Koodaa. Suunnittelee logiikkaa. Rikkoo ja korjaa. Kiertokulkua. Kyllästyttävää.

Lopputulos: sovellukset, pelit, verkkosivut. Kaikki mitä näet. Tai et. Infrastruktuurikin. Mustia laatikoita.

Taitoja tarvitaan. Ei vain näppäimistöllä.

  • Ongelmanratkaisu. Aivot lyövät kipinää. Tai eivät.
  • Looginen päättely. Virheet ovat loogisia, tavallaan.
  • Pitkäjänteisyys. Koodi ei synny itsestään. Harvemmin.

Jatkuva oppiminen. Alan kehitys ei odota. Tai odottaa hetken, sitten ohittaa. Minäkin opiskelen uusia kieliä, aina. Nytkin taas Rustia.

Yhteistyö muiden kanssa. Välillä. Koodi on yhteistä, joskus. Projektipalaverit ovat usein hukkaan heitettyä aikaa. Todellinen työ tehdään hiljaa.

Tyypillisiä rooleja ovat:

  • Frontend-kehittäjä: Keskittyy käyttäjärajapintaan. Kaikki, mitä näet ja klikkaat. Ulkonäkö ja käytettävyys.
  • Backend-kehittäjä: Käsittelee palvelinpuolen logiikkaa, tietokantoja. Piilossa oleva moottori.
  • Fullstack-kehittäjä: Hallitsee molemmat. Harvinaisia, mutta niitä on. Tai uskovat niin.
  • Mobiilikehittäjä: Erityisesti iOS- ja Android-sovellukset. Oma universuminsa.
  • Pelikehittäjä: Luovat kokonaisia digitaalisia maailmoja. Kaikkein hulluimpia.

Lopulta, kehittäjä muuttaa ideat konkretiaksi. Tai bugiksi. Valinta on sinun.

Mitä tarkoittaa software?

Muistan sen koneen, ensimmäisen oman PC:n. Se oli vuosi 1998, ja se iso beige laatikko humisi mun huoneen nurkassa Tampereella. Se oli pelkkää rautaa, täysin kuollut ilman sitä maagista juttua.

Sitten isä asensi Windows 98:n. Se hetki, kun se työpöytä ilmestyi ruudulle... se oli kuin henki olisi astunut siihen metallikasaan. Se oli mun ensimmäinen todellinen kosketus siihen, mitä software on.

Se kone itsessään on laitteisto. Näytönohjain, prossu, kaikki se mitä voi potkaista. Mutta se Windows, se oli ohjelmisto. Koodia, joka kertoi sille raudalle mitä tehdä. Näytä tämä ikkuna. Toista tämä ääni. Niin turhauttavaa välillä kun se ei toiminut.

Ohjelmisto on siis se aineeton osa. Se on se ajatus, ne käskyt. Ilman sitä sun puhelin on vain lasia ja metallia. Ihan hyödytön. Se on se käyttöjärjestelmä, ne sovellukset, kaikki se mikä tekee laitteesta käyttökelpoisen.

Ja se on kaikkialla. Autossa, pesukoneessa, kellossa. Kaikki on nykyään täynnä pientä koodinpätkää, joka ohjaa toimintaa.

Periaatteessa softan voi jakaa pariin päätyyppiin:

  • Järjestelmäohjelmistot: Nämä on niitä, jotka pitää koko pakan kasassa. Ilman näitä mikään ei toimi. Esimerkiksi Windows, macOS, Android. Ne hallitsee laitteistoa.
  • Sovellusohjelmistot: Nämä on ne ohjelmat, joita me käytetään johonkin tiettyyn hommaan. Selaimet, pelit, tekstinkäsittely. Ne pyörii sen käyttöjärjestelmän päällä.

Mitä tarkoittaa software? Ohjelmisto (software) on tietokoneelle annettujen käskyjen ja datan kokonaisuus. Se ohjaa laitteiston (hardware) toimintaa ja mahdollistaa tiettyjen tehtävien suorittamisen. Ohjelmisto on laitteiston vastakohta.

Mikä on ohjelmistokehittäjän palkka?

Joo moro, kysyit siitä koodarin palkasta. Nää tilastot on aina vähän mitä on, mut tässä on se perusdata mitä oikotie sanoo.

Ohjelmistokehittäjän mediaanipalkka on 3 775 € kuukaudessa.Palkkahaitari on 2 450 € - 5 300 € kuukaudessa.

Nää luvut perustuu siis 81 ihmisen anonyymeihin tietoihin viime vuosilta.

Mut toi mediaani 3775€ ei kerro kyllä yhtään mitään. Ihan jees liksa jollekin parin vuoden kokemuksella, mut ei sillä vielä juhlita. Ja toi palkka haitari on niin valtava että se on käytännössä turha.

Alle kolmen tonnin palkalla tekee joku just koulusta valmistunut ekaa työpaikkaansa jossain turun perämetsissä. Sitten taas yli viiden tonnin pääsee jo kokeneempi tekijä, varsinkin pääkaupunkiseudulla. Kaikki riippuu ihan täysin täysin siitä mitä osaat ja missä oot töissä.

Tässä on lista mikä siihen palkkaan oikeesti vaikuttaa:

  • Kokemus: Tää on se isoin juttu. Junior-tason koodari (0-2 vuotta) tienaa sen 2500–3500 euroa. Kokenut Senior-kehittäjä (yli 5 vuotta) vetää helposti 5000–7000 euroa tai enemmänkin. Se on ihan eri maailma.
  • Sijainti:Helsingissä maksetaan eniten, ei siitä pääse mihinkään. Tampere ja Oulu tulee hyvänä kakkosena, mut ero on silti selvä. Muualla suomessa palkat on pienempiä.
  • Teknologiat: Jos osaat jotain kysyttyä, kuten pilvipalveluita (AWS, Azure) tai oot erikoistunut vaikka dataan tai tekoälyyn, palkka pomppaa heti. Perus web-kehittäjälle maksetaan vähemmän.
  • Työnantaja: Iso kansainvälinen pörssiyhtiö maksaa paremmin kuin pieni paikallinen mainostoimisto. Startupeissa palkka on usein pienempi, mut siellä voi saada optioita.

Mun eka palkka oli 2800€ vuonna 2018. Nyt on ihan eri lukemat. Yks mun kaveri kuka tekee konsulttina DevOps-hommia saa laskutettua yli 10 000€ kuussa, siitä jää sit verojen jälkeen käteen ihan kivasti. Eli toi 5300€ kattona on ihan vitsi kokeneelle osaajalle.

Mitä ohjelmistoinsinööri tekee?

Ohjelmistoinsinööri suunnittelee, rakentaa, testaa ja ylläpitää ohjelmistoja.Hänen työnsä tavoite on ratkaista ongelmia, lisätä tehokkuutta ja parantaa elämänlaatua teknologian avulla. Tämä on koko homman ydin.

Työn ytimessä on abstrakti ongelmanratkaisu. Ensin pureudutaan siihen, mikä haaste on: mikä ei toimi tai mitä uutta tarvitaan. Tämä vaatii syvällistä käyttäjätarpeiden analysointia ja ymmärtämistä. Sitten luodaan järjestelmäarkkitehtuuri ja yksityiskohtaiset suunnitelmat siitä, miten ohjelmisto nämä haasteet käytännössä ratkaisee. Kyse on järjestelmällisestä ajattelusta, lähes pieteetillä.

Tämän suunnittelun jälkeen alkaa rakennusvaihe, eli koodin kirjoittaminen. Tämä on sitä luovaa työtä, jossa ajatukset ja suunnitelmat muuttuvat konkreettisiksi algoritmeiksi ja dataa käsitteleviksi rakenteiksi. Koodi on kuin uusi kieli, jolla kommunikoidaan koneen kanssa. Minusta on kiehtovaa nähdä, miten pelkät merkit muuttuvat todelliseksi toiminnallisuudeksi. Se on jatkuvaa pähkäilyä ja välillä turhauttavaa virheiden etsintää.

Testaus on kriittinen vaihe, missä varmistetaan, että ohjelmisto tekee juuri sen, mitä sen pitääkin tehdä – ja ettei se tee mitään odottamatonta. Bugien metsästys on kuin salapoliisityötä, joskus todella haastavaa, mutta usein äärimmäisen palkitsevaa kun syy löytyy. Se opettaa nöyryyttä ja tarkkuutta. Virheitä tapahtuu aina, se kuuluu elämään.

Ohjelmiston elinkaari ei pääty julkaisuun. Ylläpito tarkoittaa vikojen korjaamista, suorituskyvyn optimointia ja uusien ominaisuuksien lisäämistä ajan myötä. Ohjelmisto on kuin elävä organismi, joka kehittyy käyttäjien tarpeiden ja teknologian mukana. On mielenkiintoista nähdä, miten digitaalinen luomus jatkaa kasvuaan ja muuntautumistaan, joskus tavoilla, joita ei alkuun osannut edes aavistaa.

Ohjelmistoinsinöörin työ vaikuttaa monin tavoin ja sen merkitys on kasvanut valtavasti. Keskeisiä vaikutusalueita ovat:

  • Konkreettiset ratkaisut ongelmiin: Esimerkiksi tehokkaammat terveydenhuollon hallintajärjestelmät.
  • Tuottavuuden lisääminen: Automaation avulla yritykset voivat toimia huomattavasti sujuvammin.
  • Elämänlaadun parantaminen: Viihdesovellukset, sosiaalisen median alustat ja jopa älykodin ratkaisut tekevät arjesta mukavampaa.

Mietin usein, että ohjelmistoinsinööri on eräänlainen moderni käsityöläinen, mutta työkalut ovat abstrakteja ja lopputuote digitaalinen. Me emme rakenna siltoja materiaaleista, vaan loogisista rakenteista, jotka yhdistävät ihmisiä ja tietoa globaalisti. Se on vastuullinen tehtävä, sillä huono suunnittelu voi aiheuttaa todellisia ongelmia, jopa vaaratilanteita.

Tällä alalla vaaditaan jatkuvaa oppimista. Tekniikat, ohjelmointikielet ja parhaat käytännöt muuttuvat jatkuvasti. Se on haaste, mutta samalla valtava mahdollisuus pysyä kehityksen kärjessä. Minusta tuntuu, että tämä jatkuva kehitys pitää mielen virkeänä ja estää työn puuduttamasta. Joskus on vain pakko hypätä uuteen teknologiaan, vaikka se vähän pelottaisi. Aina oppii uutta.

Loppujen lopuksi, vaikka analysoin ja pähkäilen paljon, kyse on myös suuresta luovuudesta. Se on kuin pulmapelin pelaamista, mutta palkintona syntyy jotain todella hyödyllistä tai viihdyttävää. Eikä pidä ottaa kaikkea liian vakavasti – koodi on vain koodia, vaikka se tekeekin uskomattomia asioita joka päivä ympärillämme.