Mitä on ohjelmistokehitys?
Mitä on ohjelmistokehitys ja sen merkitys nykypäivän teknologioissa?
Ohjelmistokehitys? No, se on vähän niinku rakentais taloa, mut koodilla. Suunnitellaan ensin, sit pistetään koodi pystyyn, testataan ettei mikään hajoa ja ylläpidetään ettei homehdu.
Tärkee juttu nykyään, kun kaikki on kännykässä ja netissä. Ilman ohjelmistokehitystä ei ois Facebookkii tai Spotifytä.
Muistan kun yritin koodata ekan nettisivun joskus 2000-luvun alussa. Oli ihan hirveetä säätöä, mutta jotenkin se vaan vei mukanaan.
Nykyään kaikki on paljon helpompaa, kun on niin paljon valmiita juttuja ja apuja. Mut silti se perusidea on sama: saadaan tietokone tekemään jotain hyödyllistä.
Mitä tarkoittaa ohjelmistokehitys?
Ohjelmistokehitys? Joo, se on siis… koodausta ja kaikkea sitä hömpötystä. Mutta mitä kaikkea siihen oikein kuuluu? Onko se vain sitä istumista koneella ja näppäimistöllä räpläämistä? Ei kai pelkästään.
- Suunnittelu: Ensin pitää keksiä, mitä ohjelma tekee. Mitkä ominaisuudet siinä on? Miten se toimii? Käyttöliittymä, onko se selkeä ja helppokäyttöinen? Voiko sitä käyttää puhelimellakin?
- Koodaus: Itse koodaaminen, eli ohjelman kirjoittaminen. Java? Python? C++? Riipuu ihan siitä, mitä ollaan tekemässä. Tämän mä ainakin osaan, tai no, osasin viime vuonna. Tänään olen hieman ruostunut.
- Testaus: Onko se nyt valmis? Ei todellakaan! Pitää testata, että kaikki toimii niin kuin pitääkin. Virheet on löydettävä ja korjattava. Muuten tulee käyttäjiltä palautetta, ja se ei ole kivaa.
- Dokumentointi: Joku pitää selittää ohjelman toimintaa. Miten se asennetaan? Miten sitä käytetään? Jokaisella ohjelmalla pitäisi olla selkeät ohjeet. Tämä on yksi kamalimmasta.
- Ylläpito: Ohjelmaa pitää ylläpitää. Korjata virheitä ja tehdä päivityksiä. Tämä jatkuu ikuisesti. Ajatus tästä ahdistaa. Mitä jos virheita alkaa ilmaantua?
- Tietokannat: Jos ohjelma käyttää dataa, niin tarvitaan tietokanta, eli järjestelmä, jossa data tallennetaan. SQL, MongoDB… Näitäkin olen jossain vaiheessa opiskellut.
- Käyttöliittymäsuunnittelu: Tärkeää, että ohjelma on helppokäyttöinen. Miten käyttäjä voi olla vuorovaikutuksessa ohjelman kanssa? Tämä on toinen kamalimmasta. Välillä tuntuu, että koko ajan vain suunnittelen.
Ohjelmistokehitys on siis monimutkainen prosessi, joka sisältää paljon eri vaiheita. En edes muista kaikkea. Jotenkin tämä alkaa tuntua liian vaikealta. Ehkä otan vaan kahvin ja palaan asiaan myöhemmin. Ehkä pitäisi tehdä muistiinpanoja, niin muistaisi paremmin. Mutta nyt on niin paljon muutakin tekemistä. Olen aivan hukassa. Pitääkö minun tehdä tämä projekti yksin? Voinko kysyä apua joltain?
Mitä tekee ohjelmistokehittäjä?
Ohjelmistokehittäjä? Ah, se on se tyyppi, joka muuttaa kahvin koodiksi. Tai ainakin yrittää. He rakentavat digitaalisia linnoituksia, joita kutsumme sovelluksiksi ja järjestelmiksi. He ovat IT-maailman arkkitehtejä, tosin ilman sitä kuuluisaa sormen napautusta otsaan.
- Ratkaisee ongelmia: Kuin digitaalinen MacGyver, mutta ilman sveitsiläistä linkkuveistä.
- Koodaa: Kirjoittaa sitä mystistä tekstiä, josta tietokoneet ymmärtävät jotain. Tai ainakin niin luullaan.
- Testaa: Yrittää rikkoa sen, mitä juuri rakensi. Miksi? Koska jos hän ei tee sitä, joku muu tekee sen.
Ja hei, joskus ne jopa juovat teetä. Shhh, älä kerro kenellekään.
Mitä tarkoittaa software?
Software? Se tarkoittaa ohjelmistoa. Niitä ohjelmia, jotka saa tietokoneen toimimaan. Ajattelin just eilen sitä vanhaa peliä, Worms Armageddon, mitä pelasin lapsena, 2000-luvun alussa. Muistan sen äänet ja grafiikat, ihan hullu nostalgia. Miten yksinkertainen se oli verrattuna nykyisiin peleihin! Mutta se oli hauskaa! Niin yksinkertaisia ohjelmia, ja silti niin paljon tunteita. Peli itsessään oli software, tietysti. Sitten oli Windows XP taustalla pyörimässä. Ja äänikortin ajurit. Koko kasa ohjelmia jotta yksinkertainen peli toimi.
- Worms Armageddon: Rakas peli lapsuudesta.
- Windows XP: Käyttöjärjestelmä. Muistelen sitä vieläkin välillä.
- Äänikortin ajurit: Tarvittiin jotta peli toimi.
Software on siis kaikki ne ohjelmat, mitä tietokone käyttää. Mutta se on paljon laajempi käsite kuin pelkästään pelit. Ajatellaan vaikkapa nettiselainta. Tai tekstieditoria, jolla tätä nyt kirjoitan. Tai vaikkapa ohjelma, joka hallitsee auton ABS-jarruja. Kaikki ne ovat ohjelmistoa. Ei ole helppo sanoa tarkkaan, mikä software on ilman esimerkkejä, mutta ymmärrät varmasti mitä tarkoitan.
Ajattelin tuota Worms Armageddonia siksi, että sen ohjelmiston pienuudesta huolimatta se sai aikaan niin paljon muistoja. Se oli paljon enemmän kuin vain koodia. Se oli osa lapsuutta, ystävyyttä ja hauskaa. Ja se oli kaikki softwaren ansiota. Tuossa ohjelmistossa ei ollut mitään super hienoa teknologiaa, mutta se toi iloa ja hauskuutta. Se on softwaren olemuksen ydin; se on väline, joka mahdollistaa paljon.
Mitä ohjelmistoinsinööri tekee?
Hei kaveri! No, mitä ohjelmistonsinööri sit tekee? Se on aika laaja kysymys, mut yritän selventää. Pääasia on ohjelmien tekeminen, kaikki mahdolliset ohjelmat! Pienistä apuohjelmista isoihin järjestelmiin. Tiedätkö, sellaisia mitä kaikki käyttää, Facebookki, vaikkapa. Tai pankin verkkopalvelu, sekin on ohjelmistoinsinöörin käsialaa.
Ensin ne suunnittelee ohjelman. Sitten ne koodaa sitä, tai no, ohjelmoi sitä. Käyttävät kaikkia mahdollisia kieliä, Javaa, Pythonia, C++:aa ja ties mitä vielä. Mä itse olen tehnyt töitä C#lla viimeiset kaksi vuotta, ja se on ihan jees. Ja sit niitä ohjelmia sitten testataan tietysti, ja korjataan virheitä. Mä vihaan bugeja! Tulee aina niin ärsyttävää lisää työtä. Ikuisuusprojekteja!
- Suunnittelu – ajatusmalli ohjelmalle.
- Koodaus – koodin kirjoittaminen, itse ohjelma.
- Testaus – ohjelman toimivuuden tarkistus.
- Ylläpito – korjauksia ja päivityksiä.
Kaikilla ohjelmilla on joku tarkoitus. Ne voivat parantaa vaikka minkälaista asiaa. Tuottavuutta, tehokkuutta, ja helpottaa elämää. Ajatella vaikka navigaattoria, ei se olisi olemassa ilman ohjelmistoinsinöörejä. Mä olen tehnyt töitä juurikin sellaisten kanssa, liikenneohjauksen softia. Ihan älyttömän monimutkaisia järjestelmiä. Nyt on taas uutta tulossa, olen saanut työpaikan uuteen projektiin, jonka yksityiskohdat pysyvät vielä salassa. Tylsää, tiedän. Mutta cool projekti tosiaan! Seuraavassa projektissa teen sovelluksen, joka auttaa ihmisiä löytämään kadonneita lemmikkieläimiä! Ihan mahtava homma!
Mitä on ohjelmistotestaus?
Ohjelmistotestaus... hmm, mikä se nyt olikaan? Ahaa, ohjelmiston tarkastelua, että toimiiks se niinku pitää. Löytyykö bugia? Onko se ylipäänsä käyttökelpoinen? Tänään testasin sitä uutta sovellusta, mikä lupaa löytää kadonneita sukkia. Ei löytynyt yhtään. Bugia vai ominaisuus?
- Käyttäjätestausta tehtiin 2023. Kyllä, itse osallistuin. Ihan surkea.
- Automaattinen testaus. Äänitiedostojen testaus erityisesti oli mielenkiintoista. Mikrofoni oli huono.
- Onko tämä nyt se testaus, mistä puhutaan? Vai onko tuo vaan osa? Pitäiskö tässä olla jotain muuta?
Muistan, että koulussa opiskeltiin erilaisia testausmenetelmiä. Musta-laatikkotestit ja valko-laatikkotestit. Mitäs eroa niissä olikaan? Testaaminen on niin monimutkaista! Toimiiko se? Onko se helppokäyttöinen? Onko se turvallinen? Niitä kaikkia pitää testata. Joka päivä on jotain uutta opittavaa. Ja aina on lisää testauksen kohteita. Ei tämä koskaan lopu! Onko järkeä testata kaikkea? Jaa, pitää mennä nukkumaan. Huomenna taas uusia ohjelmistoja testaamaan.
Mitä koodaaja tekee?
Koodaaja... koodia... koodia...
Koodaaja, se on kuin unennäkijä, mutta binäärisessä todellisuudessa. Ei, ei se ole vain sormien naputtelua näppäimistöllä, vaikka sitäkin. Se on enemmänkin... kuiskauksia koneille, kielen luomista, jota piirit ymmärtävät.
- Vaatimusten tulkki: Niin kuin oraakkeli, joka lukee savitauluja ja kääntää ne ymmärrettävään muotoon – koneille.
- Käännöksen mestari: Ihmiskielen abstraktit ideat muuttuvat konkreettiseksi koodiksi, nolliksi ja ykkösiksi, jotka herättävät koneen eloon.
- Kopiointi on taidetta: Ei kirjaimellista, vaan soveltavaa. Olemassa olevista palikoista luodaan uusia kokonaisuuksia, kuin palapeli, jossa jokainen pala on rivi koodia.
Koodaaja ei siis vain kirjoita, vaan luo maailmoja – virtuaalisia, abstrakteja, mutta silti todellisia. He ovat arkkitehtejä, runoilijoita, insinöörejä, kaikki yhdessä.
Se on kuin muistelisin kesää 2007, kun yritin väsätä ensimmäistä nettisivua HTML:llä. Muistan sen tuskallisen tunteen, kun yritin ymmärtää, miksi tietty elementti ei asettunut oikein. Tuntui kuin olisin käynyt jatkuvaa neuvottelua koneen kanssa, kunnes lopulta tajusin sen kielen – tai ainakin osan siitä. Se oli kuin salaisuuden paljastaminen, kuiskauksen kuuleminen.
Ja entä ne pitkät, valvomisreissut... kofeiininhuuruinen yötä päivät, kun yritin debugata jotain aivan pientä virhettä. Se on kuin etsisi neulaa heinäsuovasta, mutta kun sen lopulta löytää, tunne on euforinen. Muistan kun 2010 yritin koodata pientä peliä Javalla. Se oli kamalaa, mutta myös palkitsevaa.
Koodaajan elämä ei ole pelkkää ruusuilla tanssimista. Se on jatkuvaa oppimista, kehittymistä, sopeutumista. Uusia teknologioita syntyy kuin sieniä sateella, ja koodaajan on pysyttävä ajan tasalla.
- Missä asteessa silkki?
- Tarvitseeko vauva passin kotimaan lennoilla?
- Missä iässä rintojen kasvu loppuu?
- Kauanko tissien kasvu kestää?
- Mitä luonto tekee ihmiselle?
- Mitä kuuluu karjalanpaistiin?
- Miten liikkua Miamissa?
- Mikä on pinta-alaltaan maailman suurin valtio?
- Missä asteessa pestä paidat?
- Mitä soraa salaojiin?
Kommentoi vastausta:
Kiitos palautteestasi! Kommenttisi auttaa meitä parantamaan vastauksia tulevaisuudessa.