Ei vain koodia

Ohjelmoijan työ mielletään usein pelkäksi tietokoneen näpyttelyksi ja näyttöpäätteen ääressä istumiseksi. Sitä myöten ohjelmoijien ei ajatella tietävän tuon taivaallista ympäröivästä maailmasta. Menestyvän ohjelmoijan on kuitenkin ymmärrettävä maailmaa paljon laajemmin, kuin pelkän ohjelmakoodin kautta.

Tosiasia on, että ohjelmoijan päivät kuluvat suurimmaksi osaksi oman näyttöpäätteen ääressä ohjelmakoodia näpytellen. Ohjelmistokehittäjä joutuu kuitenkin tekemään jatkuvasti ratkaisuja tekemänsä ohjelman teknisestä rakenteesta ja monesti myös käyttäjälle näkyvästä käyttöliittymästä. Ratkaisunsa koodari tekee oman kokemuksensa ja tietämyksensä perusteella. Siksi on tärkeää, että ohjelmoija tuntee ohjelmistotekniikan lisäksi myös tulevan ohjelmiston tilaajan ja käyttäjän (jotka ovat varsin usein eri henkilöt) tarpeet. Lisäksi ohjelmoijan on tunnettava myös kaikki fyysisen maailman ohjelmalle asettamat rajoitteet.

Ajatellaanpa esimerkkinä vaikkapa lämpöpumpun etäohjausta. Ohjelmoijan ydintehtävä on tehdä ohjelma, jolla voidaan ohjata lämpöpumpun toimintaa. Ohjelmakoodin tuottaminen sujuu koodarilta mennen tullen, kunhan vain tietää mitä pitää koodata. Lämpöpumpun käyttäjän tärkein tavoite lienee riittävän lämpimän veden tuottaminen ja asunnon pitäminen sopivan lämpöisenä. Ohjelman tilaajana on mitä todennäköisimmin lämpöpumpun valmistaja tai maahantuoja, joka haluaa taata laitteen parhaan mahdollisen toiminnan ja pitkän käyttöiän.

Loppukäyttäjälle ohjelmoijan on toteutettava selkeä käyttöliittymä, josta käyttäjä voi asettaa halutun lämpötilan. Jotta lämpötila myös muuttuisi käyttäjän tekemien asetusten mukaan on ohjelmoijan kirjoitettava ohjelmakoodi, joka ohjaa joukkoa erilaisia venttiileitä, pumppuja ja kompressoreita ja muita laitteita. Tämä edellyttää jo hieman LVI-tekniikan ymmärtämistä. Jotta laite kestäisi mahdollisimman pitkään, on ohjelmoijan lisäksi huomioitava joukko erilaisia laitteen kuluvien osien rasitukseen liittyviä viiveitä ja varmistuksia ettei ohjelmakoodi vahingoita laitetta.

Ohjelmoinnissa menestyminen edellyttää siis  myös syvällistä ohjelmoitavan asian tuntemusta. Hyvä koodari käyttääkin paljon aikaa selvittääkseen mitä loppukäyttäjä ja ohjelman tilaaja tarvitsevat ja miten maailma tietokoneen ulkopuolella toimii. Harva koodari kun on koulutukseltaan esimerkiksi LVI-asentaja. Ohjelmoijan tärkeimpänä tiedon lähteenä onkin työn tilaaja, jolle ohjelmoija voi esittää tarkentavat kysymyksensä. Hyvän koodarin tunnistaa siitä, että hän kyselee paljon ja näin hankkii tietämystä siitä miten maailma toimii. Kun ohjelmoija kyselee paljon, ei se ole merkki siitä, että hän olisi tyhmä tai ettei hän ymmärtäisi asioita. Päin vastoin, tämä osoittaa, että ohjelmoija hankkii riittävästi tietoa tehdäkseen parhaan mahdollisen ohjelman.

Ohjelmointia ei kannata tehdä pelkästään ohjelmoinnin vuoksi vaan siksi, että ohjelman avulla ratkaistaan jokin olemassa oleva ongelma tai parannetaan toimintaa. Koodarin on ohjelmoinnin lisäksi hankittava asiantuntemus useilta eri toimialoilta voidakseen tehdä työnsä hyvin. Vaikka LVI-asentajan ammattitaitoa koodari tuskin saavuttaa ilman ammatillista koulutusta, on hänestä tultava ammatillinen moniosaaja.