Ohjelmiston sisäinen ja ulkoinen kauneus

On helppo ymmärtää mitä taloa suunnitteleva arkkitehti tekee. Sen sijaan on paljon hankalampi ymmärtää mitä ohjelmistoarkkitehti tekee, koska ohjelmiston mallinnuksen lopputulos ei näy käyttäjälle. Ohjelmistosta näkyy pelkkä käyttöliittymä.

Ohjelmistojen suunnittelu ja toteutus poikkeaa monesta muusta toimialasta siinä, että varsinaisen koneelle tuotettavan koodin ymmärtää melko harva. Vielä harvempi ymmärtää koodiin liittyvää estetiikkaa tai kauneuskäsityksiä.

Moni asia voi olla sisäisesti kaunis ja ulkoisesti ruma. Asia voi ymmärrettävästi olla myös toisinpäin. On helppo ymmärtää kumpi kuvan verkkopiuhojen kytkennöistä miellyttää enemmän ihmistä. Toisaalta jos käytät näitä piuhoja hyödyntävää järjestelmää, kiinnostaako sinua käyttäjänä miten letkut on kytketty? Oletko valmis maksamaan enemmän sisäisestä kauneudesta?


On varsin tyypillistä, että koodia ymmärtämätön tuskastelee ohjelmiston lopputuloksen olevan käyttökelvoton vaikka toteuttaja on mielestään tehnyt upean ohjelmiston. Tällöin ohjelman tekijä ei ymmärrä asiayhteyttä jossa käyttäjä toimii.

Ohjelmiston tehnyt katselee tuotosta tavallaan kellarista symmetrisien piuhojen kautta. Järjestelmän käyttäjä puolestaan tarkastelee ohjelmistoa maan pinnalta aivan eri kulmasta. Käyttäjä ei näe kellariin ja kellarista ei aina näe maan päälle.

On myös tyypillistä, että ohjelmistohankkeissa käytetään mittavasti aikaa "refaktorointiin." Tällöin käytännössä koitetaan päästä kuvan vasemmasta laidasta oikeaan: sekavuudesta ihmisen paremmin ymmärtävään kokonaisuuteen. Joskus refaktoroinnin tarve saattaa tosin kummuta siitä, että edellinen tekijä hahmotti ratkaisun eri tavalla ja uusi tekijä näkee asian toisin.

Ulkoisesti kaunis ohjelmisto ratkaisee näppärästi ne käyttötapaukset, joita varten ohjelma on olemassa. Jos kaksi ohjelmistoa on ulkoisesti yhtä kauniita ja näppäriä, periaatteessa pätevämmät ohjelmoijat olivat he, jotka käyttivät tuotokseen vähiten aikaa. Käyttäjää ei kiinnota onko kellarissa metri vai kilometri kaapelia.

Ohjelmoijien mielestä ohjelmistoja kohtaan esitetään joskus kohtuuttomia muutostarpeita. On esitetty ettei ole olemassa mitään yhtä hopealuotia jonka avulla ohjelmisto tulisi toteutettua kertaluokkaa tehokkaammin. Eräs tuttu aikanaan totesi: "Yritimme luoda quick and dirty ratkaisun, siitä tuli pelkkä dirty."

Lopulta kyse on siitä, että harva haluaa elää sotkun tai ruman keskellä vaan kaikki etsivät jonkinlaista esteettisesti miellyttävää ympäristöä. Niin koodimaailmassa viettävät ohjelmoinnin ammattilaiset, kuin ohjelmistoa käyttävät käyttäjätkin. Tänä päivänä erilaisilla ketterillä menetelmillä koitetaan paloittain kulkea kohti lopputulosta, joitta ei kohdattaisi ylitsepääsemätöntä johtojen viidakkoa.

Kommentit